unpkg/modules/__tests__/browseDirectory-test.js

61 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

2019-07-10 06:50:00 +00:00
import request from 'supertest';
import createServer from '../createServer.js';
describe('A request to browse a directory', () => {
2019-07-10 06:50:00 +00:00
let server;
beforeEach(() => {
server = createServer();
});
2019-08-01 16:55:05 +00:00
describe('with no version specified', () => {
it('redirects to the latest version', done => {
request(server)
.get('/browse/react/')
.end((err, res) => {
expect(res.statusCode).toBe(302);
expect(res.headers.location).toMatch(
/\/browse\/react@\d+\.\d+\.\d+\//
);
done();
});
});
});
2019-07-10 06:50:00 +00:00
describe('when the directory exists', () => {
it('returns an HTML page', done => {
request(server)
.get('/browse/react@16.8.0/umd/')
2019-07-10 06:50:00 +00:00
.end((err, res) => {
expect(res.statusCode).toBe(200);
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
done();
});
});
});
describe('when the directory does not exist', () => {
it('returns a 404 HTML page', done => {
2019-07-10 06:50:00 +00:00
request(server)
.get('/browse/react@16.8.0/not-here/')
2019-07-10 06:50:00 +00:00
.end((err, res) => {
expect(res.statusCode).toBe(404);
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
2019-07-10 06:50:00 +00:00
done();
});
});
});
2019-08-08 16:46:12 +00:00
describe('with invalid query params', () => {
it('strips them from the query string', done => {
request(server)
.get('/browse/react@16.8.0/umd/?invalid')
.end((err, res) => {
expect(res.statusCode).toBe(302);
expect(res.headers.location).toEqual('/browse/react@16.8.0/umd/');
done();
});
});
});
2019-07-10 06:50:00 +00:00
});