New "browse" UI
Also, separated out browse, ?meta, and ?module request handlers. Fixes #82
This commit is contained in:
@ -2,7 +2,7 @@ import request from 'supertest';
|
||||
|
||||
import createServer from '../createServer.js';
|
||||
|
||||
describe('A request that targets a directory with a trailing slash', () => {
|
||||
describe('A request to browse a directory', () => {
|
||||
let server;
|
||||
beforeEach(() => {
|
||||
server = createServer();
|
||||
@ -11,7 +11,7 @@ describe('A request that targets a directory with a trailing slash', () => {
|
||||
describe('when the directory exists', () => {
|
||||
it('returns an HTML page', done => {
|
||||
request(server)
|
||||
.get('/react@16.8.0/umd/')
|
||||
.get('/browse/react@16.8.0/umd/')
|
||||
.end((err, res) => {
|
||||
expect(res.statusCode).toBe(200);
|
||||
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
|
||||
@ -21,12 +21,12 @@ describe('A request that targets a directory with a trailing slash', () => {
|
||||
});
|
||||
|
||||
describe('when the directory does not exist', () => {
|
||||
it('returns a 404 text error', done => {
|
||||
it('returns a 404 HTML page', done => {
|
||||
request(server)
|
||||
.get('/react@16.8.0/not-here/')
|
||||
.get('/browse/react@16.8.0/not-here/')
|
||||
.end((err, res) => {
|
||||
expect(res.statusCode).toBe(404);
|
||||
expect(res.headers['content-type']).toMatch(/\btext\/plain\b/);
|
||||
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
|
||||
done();
|
||||
});
|
||||
});
|
||||
34
modules/__tests__/browseFile-test.js
Normal file
34
modules/__tests__/browseFile-test.js
Normal file
@ -0,0 +1,34 @@
|
||||
import request from 'supertest';
|
||||
|
||||
import createServer from '../createServer.js';
|
||||
|
||||
describe('A request to browse a file', () => {
|
||||
let server;
|
||||
beforeEach(() => {
|
||||
server = createServer();
|
||||
});
|
||||
|
||||
describe('when the file exists', () => {
|
||||
it('returns an HTML page', done => {
|
||||
request(server)
|
||||
.get('/browse/react@16.8.0/umd/react.production.min.js')
|
||||
.end((err, res) => {
|
||||
expect(res.statusCode).toBe(200);
|
||||
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when the file does not exist', () => {
|
||||
it('returns a 404 HTML page', done => {
|
||||
request(server)
|
||||
.get('/browse/react@16.8.0/not-here.js')
|
||||
.end((err, res) => {
|
||||
expect(res.statusCode).toBe(404);
|
||||
expect(res.headers['content-type']).toMatch(/\btext\/html\b/);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -27,4 +27,14 @@ describe('Legacy URLs', () => {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('redirect */ to /browse/*/', done => {
|
||||
request(server)
|
||||
.get('/react@16.8.0/umd/')
|
||||
.end((err, res) => {
|
||||
expect(res.statusCode).toBe(302);
|
||||
expect(res.headers.location).toEqual('/browse/react@16.8.0/umd/');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user