68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
const request = require("supertest");
|
|
|
|
const createServer = require("../createServer");
|
|
|
|
const clearBlacklist = require("./utils/clearBlacklist");
|
|
const withBlacklist = require("./utils/withBlacklist");
|
|
|
|
describe("The server", () => {
|
|
let server;
|
|
beforeEach(() => {
|
|
server = createServer();
|
|
});
|
|
|
|
it("redirects /_meta to ?meta", done => {
|
|
request(server)
|
|
.get("/_meta/react")
|
|
.end((err, res) => {
|
|
expect(res.statusCode).toBe(301);
|
|
expect(res.headers.location).toBe("/react?meta");
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("redirects ?json to ?meta", done => {
|
|
request(server)
|
|
.get("/react?json")
|
|
.end((err, res) => {
|
|
expect(res.statusCode).toBe(301);
|
|
expect(res.headers.location).toBe("/react?meta");
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("redirects invalid query params", done => {
|
|
request(server)
|
|
.get("/react?main=index&invalid")
|
|
.end((err, res) => {
|
|
expect(res.statusCode).toBe(302);
|
|
expect(res.headers.location).toBe("/react?main=index");
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("rejects invalid package names", done => {
|
|
request(server)
|
|
.get("/_invalid/index.js")
|
|
.end((err, res) => {
|
|
expect(res.statusCode).toBe(403);
|
|
done();
|
|
});
|
|
});
|
|
|
|
describe("blacklisted packages", () => {
|
|
afterEach(clearBlacklist);
|
|
|
|
it("does not serve blacklisted packages", done => {
|
|
withBlacklist(["bad-package"], () => {
|
|
request(server)
|
|
.get("/bad-package/index.js")
|
|
.end((err, res) => {
|
|
expect(res.statusCode).toBe(403);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|