Skip to content

Commit 1bf6679

Browse files
sosukesuzukipull[bot]
authored andcommitted
feat: port abort-controller.js tests to node:test runner (nodejs#2564)
1 parent a7ec8cf commit 1bf6679

File tree

2 files changed

+65
-50
lines changed

2 files changed

+65
-50
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,13 @@
7575
"build:wasm": "node build/wasm.js --docker",
7676
"lint": "standard | snazzy",
7777
"lint:fix": "standard --fix | snazzy",
78-
"test": "node scripts/generate-pem && npm run test:tap && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:wpt && npm run test:websocket && npm run test:jest && npm run test:typescript",
78+
"test": "node scripts/generate-pem && npm run test:tap && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:wpt && npm run test:websocket && npm run test:jest && npm run test:typescript && npm run test:node-test",
7979
"test:cookies": "borp --coverage -p \"test/cookie/*.js\"",
8080
"test:node-fetch": "mocha --exit test/node-fetch",
8181
"test:fetch": "npm run build:node && tap --expose-gc test/fetch/*.js && borp --coverage -p \"test/webidl/*.js\"",
8282
"test:jest": "jest",
8383
"test:tap": "tap test/*.js test/diagnostics-channel/*.js",
84+
"test:node-test": "borp --coverage -p \"test/node-test/*.js\"",
8485
"test:tdd": "tap test/*.js test/diagnostics-channel/*.js -w",
8586
"test:typescript": "tsd && tsc --skipLibCheck test/imports/undici-import.ts",
8687
"test:websocket": "borp --coverage -p \"test/websocket/*.js\"",

test/abort-controller.js renamed to test/node-test/abort-controller.js

Lines changed: 63 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
'use strict'
22

3-
const { test } = require('tap')
3+
const { test } = require('node:test')
44
const { AbortController: NPMAbortController } = require('abort-controller')
5-
const { Client, errors } = require('..')
5+
const { Client, errors } = require('../..')
66
const { createServer } = require('http')
77
const { createReadStream } = require('fs')
8-
const { wrapWithAsyncIterable } = require('./utils/async-iterators')
8+
const { wrapWithAsyncIterable } = require('../utils/async-iterators')
9+
const { tspl } = require('@matteo.collina/tspl')
910

1011
const controllers = [{
1112
AbortControllerImpl: NPMAbortController,
@@ -19,87 +20,93 @@ if (global.AbortController) {
1920
})
2021
}
2122
for (const { AbortControllerImpl, controllerName } of controllers) {
22-
test(`Abort ${controllerName} before creating request`, (t) => {
23-
t.plan(1)
23+
test(`Abort ${controllerName} before creating request`, async (t) => {
24+
const p = tspl(t, { plan: 1 })
2425

2526
const server = createServer((req, res) => {
26-
t.fail()
27+
p.fail()
2728
})
28-
t.teardown(server.close.bind(server))
29+
t.after(server.close.bind(server))
2930

3031
server.listen(0, () => {
3132
const client = new Client(`http://localhost:${server.address().port}`)
3233
const abortController = new AbortControllerImpl()
33-
t.teardown(client.destroy.bind(client))
34+
t.after(client.destroy.bind(client))
3435

3536
abortController.abort()
3637

3738
client.request({ path: '/', method: 'GET', signal: abortController.signal }, (err, response) => {
38-
t.type(err, errors.RequestAbortedError)
39+
p.ok(err instanceof errors.RequestAbortedError)
3940
})
4041
})
42+
43+
await p.completed
4144
})
4245

43-
test(`Abort ${controllerName} before sending request (no body)`, (t) => {
44-
t.plan(3)
46+
test(`Abort ${controllerName} before sending request (no body)`, async (t) => {
47+
const p = tspl(t, { plan: 3 })
4548

4649
let count = 0
4750
const server = createServer((req, res) => {
4851
if (count === 1) {
49-
t.fail('The second request should never be executed')
52+
p.fail('The second request should never be executed')
5053
}
5154
count += 1
5255
res.end('hello')
5356
})
54-
t.teardown(server.close.bind(server))
57+
t.after(server.close.bind(server))
5558

5659
server.listen(0, () => {
5760
const client = new Client(`http://localhost:${server.address().port}`)
5861
const abortController = new AbortControllerImpl()
59-
t.teardown(client.destroy.bind(client))
62+
t.after(client.destroy.bind(client))
6063

6164
client.request({ path: '/', method: 'GET' }, (err, response) => {
62-
t.error(err)
65+
p.ifError(err)
6366
const bufs = []
6467
response.body.on('data', (buf) => {
6568
bufs.push(buf)
6669
})
6770
response.body.on('end', () => {
68-
t.equal('hello', Buffer.concat(bufs).toString('utf8'))
71+
p.strictEqual('hello', Buffer.concat(bufs).toString('utf8'))
6972
})
7073
})
7174

7275
client.request({ path: '/', method: 'GET', signal: abortController.signal }, (err, response) => {
73-
t.type(err, errors.RequestAbortedError)
76+
p.ok(err instanceof errors.RequestAbortedError)
7477
})
7578

7679
abortController.abort()
7780
})
81+
82+
await p.completed
7883
})
7984

80-
test(`Abort ${controllerName} while waiting response (no body)`, (t) => {
81-
t.plan(1)
85+
test(`Abort ${controllerName} while waiting response (no body)`, async (t) => {
86+
const p = tspl(t, { plan: 1 })
8287

8388
const abortController = new AbortControllerImpl()
8489
const server = createServer((req, res) => {
8590
abortController.abort()
8691
res.setHeader('content-type', 'text/plain')
8792
res.end('hello world')
8893
})
89-
t.teardown(server.close.bind(server))
94+
t.after(server.close.bind(server))
9095

9196
server.listen(0, () => {
9297
const client = new Client(`http://localhost:${server.address().port}`)
93-
t.teardown(client.destroy.bind(client))
98+
t.after(client.destroy.bind(client))
9499

95100
client.request({ path: '/', method: 'GET', signal: abortController.signal }, (err, response) => {
96-
t.type(err, errors.RequestAbortedError)
101+
p.ok(err instanceof errors.RequestAbortedError)
97102
})
98103
})
104+
105+
await p.completed
99106
})
100107

101-
test(`Abort ${controllerName} while waiting response (write headers started) (no body)`, (t) => {
102-
t.plan(1)
108+
test(`Abort ${controllerName} while waiting response (write headers started) (no body)`, async (t) => {
109+
const p = tspl(t, { plan: 1 })
103110

104111
const abortController = new AbortControllerImpl()
105112
const server = createServer((req, res) => {
@@ -108,64 +115,69 @@ for (const { AbortControllerImpl, controllerName } of controllers) {
108115
abortController.abort()
109116
res.end('hello world')
110117
})
111-
t.teardown(server.close.bind(server))
118+
t.after(server.close.bind(server))
112119

113120
server.listen(0, () => {
114121
const client = new Client(`http://localhost:${server.address().port}`)
115-
t.teardown(client.destroy.bind(client))
122+
t.after(client.destroy.bind(client))
116123

117124
client.request({ path: '/', method: 'GET', signal: abortController.signal }, (err, response) => {
118-
t.type(err, errors.RequestAbortedError)
125+
p.ok(err instanceof errors.RequestAbortedError)
119126
})
120127
})
128+
129+
await p.completed
121130
})
122131

123-
test(`Abort ${controllerName} while waiting response (write headers and write body started) (no body)`, (t) => {
124-
t.plan(2)
132+
test(`Abort ${controllerName} while waiting response (write headers and write body started) (no body)`, async (t) => {
133+
const p = tspl(t, { plan: 2 })
125134

126135
const abortController = new AbortControllerImpl()
127136
const server = createServer((req, res) => {
128137
res.writeHead(200, { 'content-type': 'text/plain' })
129138
res.write('hello')
130139
})
131-
t.teardown(server.close.bind(server))
140+
t.after(server.close.bind(server))
132141

133142
server.listen(0, () => {
134143
const client = new Client(`http://localhost:${server.address().port}`)
135-
t.teardown(client.destroy.bind(client))
144+
t.after(client.destroy.bind(client))
136145

137146
client.request({ path: '/', method: 'GET', signal: abortController.signal }, (err, response) => {
138-
t.error(err)
147+
p.ifError(err)
139148
response.body.on('data', () => {
140149
abortController.abort()
141150
})
142151
response.body.on('error', err => {
143-
t.type(err, errors.RequestAbortedError)
152+
p.ok(err instanceof errors.RequestAbortedError)
144153
})
145154
})
146155
})
156+
157+
await p.completed
147158
})
148159

149160
function waitingWithBody (body, type) { // eslint-disable-line
150-
test(`Abort ${controllerName} while waiting response (with body ${type})`, (t) => {
151-
t.plan(1)
161+
test(`Abort ${controllerName} while waiting response (with body ${type})`, async (t) => {
162+
const p = tspl(t, { plan: 1 })
152163

153164
const abortController = new AbortControllerImpl()
154165
const server = createServer((req, res) => {
155166
abortController.abort()
156167
res.setHeader('content-type', 'text/plain')
157168
res.end('hello world')
158169
})
159-
t.teardown(server.close.bind(server))
170+
t.after(server.close.bind(server))
160171

161172
server.listen(0, () => {
162173
const client = new Client(`http://localhost:${server.address().port}`)
163-
t.teardown(client.destroy.bind(client))
174+
t.after(client.destroy.bind(client))
164175

165176
client.request({ path: '/', method: 'POST', body, signal: abortController.signal }, (err, response) => {
166-
t.type(err, errors.RequestAbortedError)
177+
p.ok(err instanceof errors.RequestAbortedError)
167178
})
168179
})
180+
await p.completed
169181
})
170182
}
171183

@@ -175,8 +187,8 @@ for (const { AbortControllerImpl, controllerName } of controllers) {
175187
waitingWithBody(wrapWithAsyncIterable(createReadStream(__filename)), 'async-iterator')
176188

177189
function writeHeadersStartedWithBody (body, type) { // eslint-disable-line
178-
test(`Abort ${controllerName} while waiting response (write headers started) (with body ${type})`, (t) => {
179-
t.plan(1)
190+
test(`Abort ${controllerName} while waiting response (write headers started) (with body ${type})`, async (t) => {
191+
const p = tspl(t, { plan: 1 })
180192

181193
const abortController = new AbortControllerImpl()
182194
const server = createServer((req, res) => {
@@ -185,16 +197,17 @@ for (const { AbortControllerImpl, controllerName } of controllers) {
185197
abortController.abort()
186198
res.end('hello world')
187199
})
188-
t.teardown(server.close.bind(server))
200+
t.after(server.close.bind(server))
189201

190202
server.listen(0, () => {
191203
const client = new Client(`http://localhost:${server.address().port}`)
192-
t.teardown(client.destroy.bind(client))
204+
t.after(client.destroy.bind(client))
193205

194206
client.request({ path: '/', method: 'POST', body, signal: abortController.signal }, (err, response) => {
195-
t.type(err, errors.RequestAbortedError)
207+
p.ok(err instanceof errors.RequestAbortedError)
196208
})
197209
})
210+
await p.completed
198211
})
199212
}
200213

@@ -204,30 +217,31 @@ for (const { AbortControllerImpl, controllerName } of controllers) {
204217
writeHeadersStartedWithBody(wrapWithAsyncIterable(createReadStream(__filename)), 'async-iterator')
205218

206219
function writeBodyStartedWithBody (body, type) { // eslint-disable-line
207-
test(`Abort ${controllerName} while waiting response (write headers and write body started) (with body ${type})`, (t) => {
208-
t.plan(2)
220+
test(`Abort ${controllerName} while waiting response (write headers and write body started) (with body ${type})`, async (t) => {
221+
const p = tspl(t, { plan: 2 })
209222

210223
const abortController = new AbortControllerImpl()
211224
const server = createServer((req, res) => {
212225
res.writeHead(200, { 'content-type': 'text/plain' })
213226
res.write('hello')
214227
})
215-
t.teardown(server.close.bind(server))
228+
t.after(server.close.bind(server))
216229

217230
server.listen(0, () => {
218231
const client = new Client(`http://localhost:${server.address().port}`)
219-
t.teardown(client.destroy.bind(client))
232+
t.after(client.destroy.bind(client))
220233

221234
client.request({ path: '/', method: 'POST', body, signal: abortController.signal }, (err, response) => {
222-
t.error(err)
235+
p.ifError(err)
223236
response.body.on('data', () => {
224237
abortController.abort()
225238
})
226239
response.body.on('error', err => {
227-
t.type(err, errors.RequestAbortedError)
240+
p.ok(err instanceof errors.RequestAbortedError)
228241
})
229242
})
230243
})
244+
await p.completed
231245
})
232246
}
233247

0 commit comments

Comments
 (0)