Add tests for /browse redirects

This commit is contained in:
Michael Jackson 2019-08-01 09:55:05 -07:00
parent 51c351d834
commit e757febc33
3 changed files with 50 additions and 1 deletions

View File

@ -8,6 +8,20 @@ describe('A request to browse a directory', () => {
server = createServer();
});
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();
});
});
});
describe('when the directory exists', () => {
it('returns an HTML page', done => {
request(server)

View File

@ -0,0 +1,34 @@
import request from 'supertest';
import createServer from '../createServer.js';
describe('A request with a trailing slash', () => {
let server;
beforeEach(() => {
server = createServer();
});
describe('that does not include the version number', () => {
it('redirects to /browse', done => {
request(server)
.get('/react/')
.end((err, res) => {
expect(res.statusCode).toBe(302);
expect(res.headers.location).toEqual('/browse/react/');
done();
});
});
});
describe('that includes the version number', () => {
it('redirects to /browse', done => {
request(server)
.get('/react@16.8.0/')
.end((err, res) => {
expect(res.statusCode).toBe(302);
expect(res.headers.location).toEqual('/browse/react@16.8.0/');
done();
});
});
});
});

View File

@ -10,7 +10,8 @@ function semverRedirect(req, res, newVersion) {
})
.redirect(
302,
createPackageURL(req.packageName, newVersion, req.filename, req.search)
req.baseUrl +
createPackageURL(req.packageName, newVersion, req.filename, req.search)
);
}