unpkg/modules/__tests__/server-test.js

68 lines
1.6 KiB
JavaScript
Raw Normal View History

2018-12-17 17:38:05 +00:00
const request = require('supertest');
2018-05-19 15:34:36 +00:00
2018-12-17 17:38:05 +00:00
const createServer = require('../createServer');
2018-05-19 15:34:36 +00:00
2018-12-17 17:38:05 +00:00
const clearBlacklist = require('./utils/clearBlacklist');
const withBlacklist = require('./utils/withBlacklist');
2017-11-25 21:25:01 +00:00
2018-12-17 17:38:05 +00:00
describe('The server', () => {
2018-02-18 02:00:56 +00:00
let server;
2017-11-11 20:18:13 +00:00
beforeEach(() => {
2018-02-18 02:00:56 +00:00
server = createServer();
});
2017-11-11 20:18:13 +00:00
2018-12-17 17:38:05 +00:00
it('redirects /_meta to ?meta', done => {
2017-11-11 20:18:13 +00:00
request(server)
2018-12-17 17:38:05 +00:00
.get('/_meta/react')
2017-11-11 20:18:13 +00:00
.end((err, res) => {
2018-05-19 14:49:21 +00:00
expect(res.statusCode).toBe(301);
2018-12-17 17:38:05 +00:00
expect(res.headers.location).toBe('/react?meta');
2018-05-19 14:49:21 +00:00
done();
});
});
2018-12-17 17:38:05 +00:00
it('redirects ?json to ?meta', done => {
2018-05-19 14:49:21 +00:00
request(server)
2018-12-17 17:38:05 +00:00
.get('/react?json')
2018-05-19 14:49:21 +00:00
.end((err, res) => {
expect(res.statusCode).toBe(301);
2018-12-17 17:38:05 +00:00
expect(res.headers.location).toBe('/react?meta');
2018-02-18 02:00:56 +00:00
done();
});
});
2017-11-11 20:18:13 +00:00
2018-12-17 17:38:05 +00:00
it('redirects invalid query params', done => {
2017-11-11 20:18:13 +00:00
request(server)
2018-12-17 17:38:05 +00:00
.get('/react?main=index&invalid')
2017-11-11 20:18:13 +00:00
.end((err, res) => {
2018-02-18 02:00:56 +00:00
expect(res.statusCode).toBe(302);
2018-12-17 17:38:05 +00:00
expect(res.headers.location).toBe('/react?main=index');
2018-02-18 02:00:56 +00:00
done();
});
});
2017-11-11 20:18:13 +00:00
2018-12-17 17:38:05 +00:00
it('rejects invalid package names', done => {
2017-11-11 20:18:13 +00:00
request(server)
2018-12-17 17:38:05 +00:00
.get('/_invalid/index.js')
2017-11-11 20:18:13 +00:00
.end((err, res) => {
2018-05-19 14:49:21 +00:00
expect(res.statusCode).toBe(403);
2018-02-18 02:00:56 +00:00
done();
});
});
2017-11-11 20:18:13 +00:00
2018-12-17 17:38:05 +00:00
describe('blacklisted packages', () => {
2018-02-18 02:00:56 +00:00
afterEach(clearBlacklist);
2017-11-15 00:46:59 +00:00
2018-12-17 17:38:05 +00:00
it('does not serve blacklisted packages', done => {
withBlacklist(['bad-package'], () => {
2017-11-11 20:18:13 +00:00
request(server)
2018-12-17 17:38:05 +00:00
.get('/bad-package/index.js')
2017-11-11 20:18:13 +00:00
.end((err, res) => {
2018-02-18 02:00:56 +00:00
expect(res.statusCode).toBe(403);
done();
});
});
});
});
});