Skip to content

Commit e757feb

Browse files
committed
Add tests for /browse redirects
1 parent 51c351d commit e757feb

3 files changed

Lines changed: 50 additions & 1 deletion

File tree

modules/__tests__/browseDirectory-test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ describe('A request to browse a directory', () => {
88
server = createServer();
99
});
1010

11+
describe('with no version specified', () => {
12+
it('redirects to the latest version', done => {
13+
request(server)
14+
.get('/browse/react/')
15+
.end((err, res) => {
16+
expect(res.statusCode).toBe(302);
17+
expect(res.headers.location).toMatch(
18+
/\/browse\/react@\d+\.\d+\.\d+\//
19+
);
20+
done();
21+
});
22+
});
23+
});
24+
1125
describe('when the directory exists', () => {
1226
it('returns an HTML page', done => {
1327
request(server)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import request from 'supertest';
2+
3+
import createServer from '../createServer.js';
4+
5+
describe('A request with a trailing slash', () => {
6+
let server;
7+
beforeEach(() => {
8+
server = createServer();
9+
});
10+
11+
describe('that does not include the version number', () => {
12+
it('redirects to /browse', done => {
13+
request(server)
14+
.get('/react/')
15+
.end((err, res) => {
16+
expect(res.statusCode).toBe(302);
17+
expect(res.headers.location).toEqual('/browse/react/');
18+
done();
19+
});
20+
});
21+
});
22+
23+
describe('that includes the version number', () => {
24+
it('redirects to /browse', done => {
25+
request(server)
26+
27+
.end((err, res) => {
28+
expect(res.statusCode).toBe(302);
29+
expect(res.headers.location).toEqual('/browse/[email protected]/');
30+
done();
31+
});
32+
});
33+
});
34+
});

modules/middleware/validateVersion.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ function semverRedirect(req, res, newVersion) {
1010
})
1111
.redirect(
1212
302,
13-
createPackageURL(req.packageName, newVersion, req.filename, req.search)
13+
req.baseUrl +
14+
createPackageURL(req.packageName, newVersion, req.filename, req.search)
1415
);
1516
}
1617

0 commit comments

Comments
 (0)