Skip to content

Commit a1b29d3

Browse files
authored
chore: use vitestover jest for code testing (#152)
1 parent 8d9808a commit a1b29d3

10 files changed

+5398
-6860
lines changed

package-lock.json

+5,134-6,592
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-8
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,28 @@
2727
"devDependencies": {
2828
"@apify/eslint-config-ts": "^0.3.0",
2929
"@apify/tsconfig": "^0.1.0",
30-
"@jest/globals": "^29.7.0",
3130
"@types/body-parser": "^1.19.3",
3231
"@types/express": "^4.17.18",
33-
"@types/jest": "^29.5.5",
3432
"@types/node": "^18.18.1",
3533
"@typescript-eslint/eslint-plugin": "^6.7.3",
3634
"@typescript-eslint/parser": "^6.7.3",
3735
"eslint": "^8.50.0",
3836
"express": "^4.18.2",
3937
"fs-extra": "^11.1.1",
4038
"get-stream": "^8.0.1",
41-
"jest": "^29.7.0",
42-
"jest-circus": "^29.7.0",
43-
"jest-extended": "^4.0.1",
4439
"jsdoc-to-markdown": "^8.0.0",
4540
"markdown-toc": "^1.2.0",
46-
"ts-jest": "^29.1.1",
4741
"ts-node": "^10.9.1",
4842
"tsup": "^7.2.0",
49-
"typescript": "^5.2.2"
43+
"typescript": "^5.2.2",
44+
"vitest": "^3.0.4"
5045
},
5146
"scripts": {
5247
"build": "tsc --noEmit && tsup && node ./scripts/es-fixes.mjs",
5348
"prepublishOnly": "npm run build",
5449
"lint": "eslint src test",
5550
"lint:fix": "eslint src test --fix",
56-
"test": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --coverage",
51+
"test": "npx vitest",
5752
"pretest:blocking": "npm run build",
5853
"test:blocking": "ts-node -T ./test/live-testing/index.js"
5954
},

test/agent.test.ts

+34-33
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { AddressInfo } from 'node:net';
22
import http, { Server } from 'node:http';
33
import getStream from 'get-stream';
4+
import { describe, beforeAll, afterAll, test } from 'vitest';
45
import { TransformHeadersAgent } from '../src/agent/transform-headers-agent.js';
56
import { startDummyServer } from './helpers/dummy-server.js';
67

@@ -23,14 +24,14 @@ describe('TransformHeadersAgent', () => {
2324
server.close();
2425
});
2526

26-
test('Pascal-Case', () => {
27+
test('Pascal-Case', (t) => {
2728
const transformAgent = new TransformHeadersAgent(agent);
2829

29-
expect(transformAgent.toPascalCase('connection')).toBe('Connection');
30-
expect(transformAgent.toPascalCase('user-agent')).toBe('User-Agent');
30+
t.expect(transformAgent.toPascalCase('connection')).toBe('Connection');
31+
t.expect(transformAgent.toPascalCase('user-agent')).toBe('User-Agent');
3132
});
3233

33-
test('transformRequest', (done) => {
34+
test('transformRequest', (t) => new Promise<void>((done) => {
3435
const requestHeaders = {
3536
cookie: 'test=1',
3637
'user-agent': 'not a chrome',
@@ -42,12 +43,12 @@ describe('TransformHeadersAgent', () => {
4243
const body = await getStream(response);
4344
const headers = JSON.parse(body);
4445

45-
expect(headers.Cookie).toBe(requestHeaders.cookie);
46-
expect(headers['User-Agent']).toBe(requestHeaders['user-agent']);
46+
t.expect(headers.Cookie).toBe(requestHeaders.cookie);
47+
t.expect(headers['User-Agent']).toBe(requestHeaders['user-agent']);
4748
if (NODE_MAJOR_VERSION >= 19) {
48-
expect(headers.Connection).toBe('keep-alive');
49+
t.expect(headers.Connection).toBe('keep-alive');
4950
} else {
50-
expect(headers.Connection).toBe('close');
51+
t.expect(headers.Connection).toBe('close');
5152
}
5253

5354
done();
@@ -57,9 +58,9 @@ describe('TransformHeadersAgent', () => {
5758
transformAgent.transformRequest(request, { sortHeaders: true });
5859

5960
request.end();
60-
});
61+
}));
6162

62-
test('leaves x-header as it is', (done) => {
63+
test('leaves x-header as it is', (t) => new Promise<void>((done) => {
6364
const request = http.request(`http://localhost:${port}/headers`, {
6465
headers: {
6566
'x-foo': 'bar',
@@ -69,8 +70,8 @@ describe('TransformHeadersAgent', () => {
6970
const body = await getStream(response);
7071
const headers = JSON.parse(body);
7172

72-
expect(headers['x-foo']).toBe('bar');
73-
expect(headers['x-this-doesnt-exist']).toBe('definitely');
73+
t.expect(headers['x-foo']).toBe('bar');
74+
t.expect(headers['x-this-doesnt-exist']).toBe('definitely');
7475

7576
done();
7677
});
@@ -79,9 +80,9 @@ describe('TransformHeadersAgent', () => {
7980
transformAgent.transformRequest(request, { sortHeaders: true });
8081

8182
request.end();
82-
});
83+
}));
8384

84-
test('http.request with agent', (done) => {
85+
test('http.request with agent', (t) => new Promise<void>((done) => {
8586
const transformAgent = new TransformHeadersAgent(new http.Agent({
8687
keepAlive: true,
8788
}));
@@ -92,17 +93,17 @@ describe('TransformHeadersAgent', () => {
9293
const body = await getStream(response);
9394
const headers = JSON.parse(body);
9495

95-
expect(headers.Connection).toBe('keep-alive');
96+
t.expect(headers.Connection).toBe('keep-alive');
9697

9798
transformAgent.destroy();
9899

99100
done();
100101
});
101102

102103
request.end();
103-
});
104+
}));
104105

105-
test('first header in sortedHeaders is always first', (done) => {
106+
test('first header in sortedHeaders is always first', (t) => new Promise<void>((done) => {
106107
const transformAgent = new TransformHeadersAgent(new http.Agent({
107108
keepAlive: true,
108109
}));
@@ -113,19 +114,19 @@ describe('TransformHeadersAgent', () => {
113114
const body = await getStream(response);
114115
const headers = JSON.parse(body);
115116

116-
expect(Object.keys(headers)[0]).toBe('Host');
117-
expect(headers.Host).toBe(`localhost:${port}`);
117+
t.expect(Object.keys(headers)[0]).toBe('Host');
118+
t.expect(headers.Host).toBe(`localhost:${port}`);
118119

119120
transformAgent.destroy();
120121

121122
done();
122123
});
123124

124125
request.end();
125-
});
126+
}));
126127

127128
describe('respects native behavior', () => {
128-
test('content-length removal', (done) => {
129+
test('content-length removal', (t) => new Promise<void>((done) => {
129130
const transformAgent = new TransformHeadersAgent(new http.Agent({
130131
keepAlive: true,
131132
}));
@@ -136,7 +137,7 @@ describe('TransformHeadersAgent', () => {
136137
const body = await getStream(response);
137138
const headers = JSON.parse(body);
138139

139-
expect(headers['Transfer-Encoding']).toBe('chunked');
140+
t.expect(headers['Transfer-Encoding']).toBe('chunked');
140141

141142
transformAgent.destroy();
142143

@@ -146,9 +147,9 @@ describe('TransformHeadersAgent', () => {
146147
request.removeHeader('content-length');
147148

148149
request.end();
149-
});
150+
}));
150151

151-
test('transfer-encoding removal', (done) => {
152+
test('transfer-encoding removal', (t) => new Promise<void>((done) => {
152153
const transformAgent = new TransformHeadersAgent(new http.Agent({
153154
keepAlive: true,
154155
}));
@@ -159,8 +160,8 @@ describe('TransformHeadersAgent', () => {
159160
const body = await getStream(response);
160161
const headers = JSON.parse(body);
161162

162-
expect(headers['Transfer-Encoding']).toBe(undefined);
163-
expect(headers['Content-Length']).toBe(undefined);
163+
t.expect(headers['Transfer-Encoding']).toBe(undefined);
164+
t.expect(headers['Content-Length']).toBe(undefined);
164165

165166
transformAgent.destroy();
166167

@@ -171,9 +172,9 @@ describe('TransformHeadersAgent', () => {
171172
request.removeHeader('transfer-encoding');
172173

173174
request.end();
174-
});
175+
}));
175176

176-
test('explicit content-length', (done) => {
177+
test('explicit content-length', (t) => new Promise<void>((done) => {
177178
const transformAgent = new TransformHeadersAgent(new http.Agent({
178179
keepAlive: true,
179180
}));
@@ -187,7 +188,7 @@ describe('TransformHeadersAgent', () => {
187188
const body = await getStream(response);
188189
const headers = JSON.parse(body);
189190

190-
expect(headers['Content-Length']).toBe('5');
191+
t.expect(headers['Content-Length']).toBe('5');
191192

192193
transformAgent.destroy();
193194

@@ -196,9 +197,9 @@ describe('TransformHeadersAgent', () => {
196197

197198
request.write('hello');
198199
request.end();
199-
});
200+
}));
200201

201-
test('explicit connection', (done) => {
202+
test('explicit connection', (t) => new Promise<void>((done) => {
202203
const transformAgent = new TransformHeadersAgent(new http.Agent({
203204
keepAlive: true,
204205
}));
@@ -212,14 +213,14 @@ describe('TransformHeadersAgent', () => {
212213
const body = await getStream(response);
213214
const headers = JSON.parse(body);
214215

215-
expect(headers.Connection).toBe('close');
216+
t.expect(headers.Connection).toBe('close');
216217

217218
transformAgent.destroy();
218219

219220
done();
220221
});
221222

222223
request.end();
223-
});
224+
}));
224225
});
225226
});

test/alpn.test.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import dns from 'node:dns';
2+
import { describe, test } from 'vitest';
23
import { gotScraping, type OptionsInit } from '../src/index.js';
34

45
describe('ALPN negotiation', () => {
5-
test('does not leak alpn', async () => {
6+
test('does not leak alpn', async (t) => {
67
const dnsQueries: string[] = [];
78
const { lookup } = dns;
89

@@ -24,7 +25,7 @@ describe('ALPN negotiation', () => {
2425

2526
// eslint-disable-next-line no-console
2627
console.log('dns', dnsQueries);
27-
expect(dnsQueries.includes('api.apify.com')).toBe(false);
28+
t.expect(dnsQueries.includes('api.apify.com')).toBe(false);
2829

2930
dns.lookup = lookup;
3031
});

0 commit comments

Comments
 (0)