/
index.test.ts
74 lines (63 loc) · 2.67 KB
/
index.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import connect from 'connect';
import request from 'supertest';
import { IncomingMessage, ServerResponse } from 'http';
import expectCt = require('..')
describe('expectCt', () => {
function app (middleware: ReturnType<typeof expectCt>): connect.Server {
const result = connect();
result.use(middleware);
result.use((_req: IncomingMessage, res: ServerResponse) => {
res.end('Hello world!');
});
return result;
}
it('sets the max-age to 0 when given no options', async () => {
await request(app(expectCt())).get('/')
.expect('Expect-CT', 'max-age=0');
});
it('sets the max-age to 0 when given an empty object', async () => {
await request(app(expectCt({}))).get('/')
.expect('Expect-CT', 'max-age=0');
});
it('can set the max-age to an integer', async () => {
await request(app(expectCt({ maxAge: 123 }))).get('/')
.expect('Expect-CT', 'max-age=123');
});
it('throws an error if max-age is not a positive integer', () => {
expect(expectCt.bind(null, { maxAge: -1 })).toThrow();
expect(expectCt.bind(null, { maxAge: -123 })).toThrow();
expect(expectCt.bind(null, { maxAge: 1.23 })).toThrow();
/* eslint-disable @typescript-eslint/no-explicit-any */
expect(expectCt.bind(null, { maxAge: undefined as any })).toThrow();
expect(expectCt.bind(null, { maxAge: null as any })).toThrow();
expect(expectCt.bind(null, { maxAge: true as any })).toThrow();
expect(expectCt.bind(null, { maxAge: false as any })).toThrow();
expect(expectCt.bind(null, { maxAge: '123' as any })).toThrow();
expect(expectCt.bind(null, { maxAge: [123] as any })).toThrow();
/* eslint-enable @typescript-eslint/no-explicit-any */
});
it('can enable enforcement', async () => {
await request(app(expectCt({ enforce: true }))).get('/')
.expect('Expect-CT', 'enforce, max-age=0');
});
it('can explicitly disable enforcement', async () => {
await request(app(expectCt({ enforce: false }))).get('/')
.expect('Expect-CT', 'max-age=0');
});
it('can set a report-uri', async () => {
await request(app(expectCt({ reportUri: 'https://example.com/report' }))).get('/')
.expect('Expect-CT', 'max-age=0, report-uri="https://example.com/report"');
});
it('can set enforcement, max-age, and a report-uri', async () => {
await request(app(expectCt({
enforce: true,
maxAge: 123,
reportUri: 'https://example.com/report',
}))).get('/')
.expect('Expect-CT', 'enforce, max-age=123, report-uri="https://example.com/report"');
});
it('names its function and middleware', () => {
expect(expectCt.name).toBe('expectCt');
expect(expectCt().name).toBe('expectCt');
});
});