Skip to content

Commit 805c14c

Browse files
committed
Make tests generic, so they run against _all_ interceptors
1 parent 6a19383 commit 805c14c

File tree

1 file changed

+53
-59
lines changed

1 file changed

+53
-59
lines changed

test/interceptors.spec.ts

Lines changed: 53 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,62 +7,56 @@ import { getLocal, CompletedRequest, generateCACertificate, Mockttp } from 'mock
77

88
import { buildInterceptors, Interceptor } from '../src/interceptors';
99

10-
describe('Fresh chrome interceptor', () => {
11-
12-
let server: Mockttp;
13-
let freshChrome: Interceptor;
14-
15-
before(function () {
16-
this.timeout(10000);
17-
18-
const configPath = tmp.dirSync({ unsafeCleanup: true }).name;
19-
20-
const keyPath = path.join(configPath, 'ca.key');
21-
const certPath = path.join(configPath, 'ca.pem');
22-
const newCertPair = generateCACertificate({ commonName: 'HTTP Toolkit CA - DO NOT TRUST' });
23-
fs.writeFileSync(keyPath, newCertPair.key);
24-
fs.writeFileSync(certPath, newCertPair.cert);
25-
26-
server = getLocal({ https: { certPath, keyPath } });
27-
const interceptors = buildInterceptors({ configPath });
28-
freshChrome = interceptors['fresh-chrome']
29-
});
30-
31-
beforeEach(() => server.start());
32-
afterEach(async () => {
33-
await freshChrome.deactivate(server.port);
34-
await server.stop();
35-
});
36-
37-
it('is available', async () => {
38-
expect(await freshChrome.isActivable()).to.equal(true);
39-
});
40-
41-
it('can be activated', async () => {
42-
expect(freshChrome.isActive(server.port)).to.equal(false);
43-
44-
await freshChrome.activate(server.port);
45-
expect(freshChrome.isActive(server.port)).to.equal(true);
46-
expect(freshChrome.isActive(server.port + 1)).to.equal(false);
47-
48-
await freshChrome.deactivate(server.port);
49-
expect(freshChrome.isActive(server.port)).to.equal(false);
50-
});
51-
52-
it('successfully makes requests', async () => {
53-
await server.anyRequest().thenPassThrough();
54-
55-
const exampleRequestReceived = new Promise<CompletedRequest>((resolve) =>
56-
server.on('request', (req) => {
57-
if (req.url.startsWith('https://example.com')) {
58-
resolve(req);
59-
}
60-
})
61-
);
62-
63-
await freshChrome.activate(server.port);
64-
65-
// Only resolves if example.com request is sent successfully
66-
await exampleRequestReceived;
67-
});
68-
});
10+
const configPath = tmp.dirSync({ unsafeCleanup: true }).name;
11+
12+
const keyPath = path.join(configPath, 'ca.key');
13+
const certPath = path.join(configPath, 'ca.pem');
14+
const newCertPair = generateCACertificate({ commonName: 'HTTP Toolkit CA - DO NOT TRUST' });
15+
fs.writeFileSync(keyPath, newCertPair.key);
16+
fs.writeFileSync(certPath, newCertPair.cert);
17+
18+
const server = getLocal({ https: { certPath, keyPath } });
19+
const interceptors = buildInterceptors({ configPath });
20+
21+
_.forEach(interceptors, (interceptor, name) =>
22+
describe(`${name} interceptor`, function () {
23+
24+
beforeEach(() => server.start());
25+
afterEach(async () => {
26+
await interceptor.deactivate(server.port);
27+
await server.stop();
28+
});
29+
30+
it('is available', async () => {
31+
expect(await interceptor.isActivable()).to.equal(true);
32+
});
33+
34+
it('can be activated', async () => {
35+
expect(interceptor.isActive(server.port)).to.equal(false);
36+
37+
await interceptor.activate(server.port);
38+
expect(interceptor.isActive(server.port)).to.equal(true);
39+
expect(interceptor.isActive(server.port + 1)).to.equal(false);
40+
41+
await interceptor.deactivate(server.port);
42+
expect(interceptor.isActive(server.port)).to.equal(false);
43+
});
44+
45+
it('successfully makes requests', async () => {
46+
await server.anyRequest().thenPassThrough();
47+
48+
const exampleRequestReceived = new Promise<CompletedRequest>((resolve) =>
49+
server.on('request', (req) => {
50+
if (req.url.startsWith('https://example.com')) {
51+
resolve(req);
52+
}
53+
})
54+
);
55+
56+
await interceptor.activate(server.port);
57+
58+
// Only resolves if example.com request is sent successfully
59+
await exampleRequestReceived;
60+
});
61+
})
62+
);

0 commit comments

Comments
 (0)