Skip to content

Commit e11a35d

Browse files
committed
Introduce closeServerAsPromise helper
1 parent 5b0d401 commit e11a35d

25 files changed

+139
-101
lines changed

test/fetch/407-statuscode-window-null.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ const { once } = require('events')
66
const { test } = require('node:test')
77
const assert = require('node:assert')
88

9+
const { closeServerAsPromise } = require('../utils/node-http')
10+
911
test('Receiving a 407 status code w/ a window option present should reject', async (t) => {
1012
const server = createServer((req, res) => {
1113
res.statusCode = 407
1214
res.end()
1315
}).listen(0)
1416

15-
t.after(server.close.bind(server))
17+
t.after(closeServerAsPromise(server))
1618
await once(server, 'listening')
1719

1820
// if init.window exists, the spec tells us to set request.window to 'no-window',

test/fetch/abort.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ const { fetch } = require('../..')
77
const { createServer } = require('http')
88
const { once } = require('events')
99

10+
const { closeServerAsPromise } = require('../utils/node-http')
11+
1012
const { AbortController: NPMAbortController } = require('abort-controller')
1113

1214
test('Allow the usage of custom implementation of AbortController', async (t) => {
@@ -19,7 +21,7 @@ test('Allow the usage of custom implementation of AbortController', async (t) =>
1921
res.end(JSON.stringify(body))
2022
})
2123

22-
t.after(server.close.bind(server))
24+
t.after(closeServerAsPromise(server))
2325

2426
server.listen(0)
2527
await once(server, 'listening')
@@ -40,7 +42,7 @@ test('Allow the usage of custom implementation of AbortController', async (t) =>
4042
test('allows aborting with custom errors', async (t) => {
4143
const server = createServer().listen(0)
4244

43-
t.after(server.close.bind(server))
45+
t.after(closeServerAsPromise(server))
4446
await once(server, 'listening')
4547

4648
await t.test('Using AbortSignal.timeout with cause', async () => {

test/fetch/abort2.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ const { fetch } = require('../..')
66
const { createServer } = require('http')
77
const { once } = require('events')
88

9+
const { closeServerAsPromise } = require('../utils/node-http')
10+
911
/* global AbortController */
1012

1113
test('parallel fetch with the same AbortController works as expected', async (t) => {
@@ -19,7 +21,7 @@ test('parallel fetch with the same AbortController works as expected', async (t)
1921
res.end(JSON.stringify(body))
2022
})
2123

22-
t.after(server.close.bind(server))
24+
t.after(closeServerAsPromise(server))
2325

2426
const abortController = new AbortController()
2527

test/fetch/client-fetch.js

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const { gzipSync } = require('zlib')
1515
const { promisify } = require('util')
1616
const { randomFillSync, createHash } = require('crypto')
1717

18+
const { closeServerAsPromise } = require('../utils/node-http')
19+
1820
setGlobalDispatcher(new Agent({
1921
keepAliveTimeout: 1,
2022
keepAliveMaxTimeout: 1
@@ -41,7 +43,7 @@ test('request json', (t, done) => {
4143
const server = createServer((req, res) => {
4244
res.end(JSON.stringify(obj))
4345
})
44-
t.after(server.close.bind(server))
46+
t.after(closeServerAsPromise(server))
4547

4648
server.listen(0, async () => {
4749
const body = await fetch(`http://localhost:${server.address().port}`)
@@ -57,7 +59,7 @@ test('request text', (t, done) => {
5759
const server = createServer((req, res) => {
5860
res.end(JSON.stringify(obj))
5961
})
60-
t.after(server.close.bind(server))
62+
t.after(closeServerAsPromise(server))
6163

6264
server.listen(0, async () => {
6365
const body = await fetch(`http://localhost:${server.address().port}`)
@@ -73,7 +75,7 @@ test('request arrayBuffer', (t, done) => {
7375
const server = createServer((req, res) => {
7476
res.end(JSON.stringify(obj))
7577
})
76-
t.after(server.close.bind(server))
78+
t.after(closeServerAsPromise(server))
7779

7880
server.listen(0, async () => {
7981
const body = await fetch(`http://localhost:${server.address().port}`)
@@ -90,7 +92,7 @@ test('should set type of blob object to the value of the `Content-Type` header f
9092
res.setHeader('Content-Type', 'application/json')
9193
res.end(JSON.stringify(obj))
9294
})
93-
t.after(server.close.bind(server))
95+
t.after(closeServerAsPromise(server))
9496

9597
server.listen(0, async () => {
9698
const response = await fetch(`http://localhost:${server.address().port}`)
@@ -104,7 +106,7 @@ test('pre aborted with readable request body', (t, done) => {
104106

105107
const server = createServer((req, res) => {
106108
})
107-
t.after(server.close.bind(server))
109+
t.after(closeServerAsPromise(server))
108110

109111
server.listen(0, async () => {
110112
const ac = new AbortController()
@@ -129,7 +131,7 @@ test('pre aborted with closed readable request body', (t, done) => {
129131

130132
const server = createServer((req, res) => {
131133
})
132-
t.after(server.close.bind(server))
134+
t.after(closeServerAsPromise(server))
133135

134136
server.listen(0, async () => {
135137
const ac = new AbortController()
@@ -163,7 +165,7 @@ test('unsupported formData 1', (t, done) => {
163165
res.setHeader('content-type', 'asdasdsad')
164166
res.end()
165167
})
166-
t.after(server.close.bind(server))
168+
t.after(closeServerAsPromise(server))
167169

168170
server.listen(0, () => {
169171
fetch(`http://localhost:${server.address().port}`)
@@ -193,7 +195,7 @@ test('multipart formdata not base64', async (t) => {
193195
res.write(formRaw)
194196
res.end()
195197
})
196-
t.after(server.close.bind(server))
198+
t.after(closeServerAsPromise(server))
197199

198200
const listen = promisify(server.listen.bind(server))
199201
await listen(0)
@@ -221,7 +223,7 @@ test('multipart formdata base64', (t, done) => {
221223
}
222224
res.end()
223225
})
224-
t.after(server.close.bind(server))
226+
t.after(closeServerAsPromise(server))
225227

226228
server.listen(0, () => {
227229
fetch(`http://localhost:${server.address().port}`)
@@ -268,7 +270,7 @@ test('busboy emit error', async (t) => {
268270
res.write(formRaw)
269271
res.end()
270272
})
271-
t.after(server.close.bind(server))
273+
t.after(closeServerAsPromise(server))
272274

273275
const listen = promisify(server.listen.bind(server))
274276
await listen(0)
@@ -296,7 +298,7 @@ test('urlencoded formData', (t, done) => {
296298
res.setHeader('content-type', 'application/x-www-form-urlencoded')
297299
res.end('field1=value1&field2=value2')
298300
})
299-
t.after(server.close.bind(server))
301+
t.after(closeServerAsPromise(server))
300302

301303
server.listen(0, () => {
302304
fetch(`http://localhost:${server.address().port}`)
@@ -316,7 +318,7 @@ test('text with BOM', (t, done) => {
316318
res.setHeader('content-type', 'application/x-www-form-urlencoded')
317319
res.end('\uFEFFtest=\uFEFF')
318320
})
319-
t.after(server.close.bind(server))
321+
t.after(closeServerAsPromise(server))
320322

321323
server.listen(0, () => {
322324
fetch(`http://localhost:${server.address().port}`)
@@ -335,7 +337,7 @@ test('formData with BOM', (t, done) => {
335337
res.setHeader('content-type', 'application/x-www-form-urlencoded')
336338
res.end('\uFEFFtest=\uFEFF')
337339
})
338-
t.after(server.close.bind(server))
340+
t.after(closeServerAsPromise(server))
339341

340342
server.listen(0, () => {
341343
fetch(`http://localhost:${server.address().port}`)
@@ -353,7 +355,7 @@ test('locked blob body', (t, done) => {
353355
const server = createServer((req, res) => {
354356
res.end()
355357
})
356-
t.after(server.close.bind(server))
358+
t.after(closeServerAsPromise(server))
357359

358360
server.listen(0, async () => {
359361
const res = await fetch(`http://localhost:${server.address().port}`)
@@ -371,7 +373,7 @@ test('disturbed blob body', (t, done) => {
371373
const server = createServer((req, res) => {
372374
res.end()
373375
})
374-
t.after(server.close.bind(server))
376+
t.after(closeServerAsPromise(server))
375377

376378
server.listen(0, async () => {
377379
const res = await fetch(`http://localhost:${server.address().port}`)
@@ -403,7 +405,7 @@ test('redirect with body', (t, done) => {
403405
res.end(String(count))
404406
}
405407
})
406-
t.after(server.close.bind(server))
408+
t.after(closeServerAsPromise(server))
407409

408410
server.listen(0, async () => {
409411
const res = await fetch(`http://localhost:${server.address().port}`, {
@@ -431,7 +433,7 @@ test('redirect with stream', (t, done) => {
431433
}
432434
}, 50)
433435
})
434-
t.after(server.close.bind(server))
436+
t.after(closeServerAsPromise(server))
435437

436438
server.listen(0, async () => {
437439
const res = await fetch(`http://localhost:${server.address().port}`, {
@@ -485,7 +487,7 @@ test('post FormData with Blob', (t, done) => {
485487
const server = createServer((req, res) => {
486488
req.pipe(res)
487489
})
488-
t.after(server.close.bind(server))
490+
t.after(closeServerAsPromise(server))
489491

490492
server.listen(0, async () => {
491493
const res = await fetch(`http://localhost:${server.address().port}`, {
@@ -506,7 +508,7 @@ test('post FormData with File', (t, done) => {
506508
const server = createServer((req, res) => {
507509
req.pipe(res)
508510
})
509-
t.after(server.close.bind(server))
511+
t.after(closeServerAsPromise(server))
510512

511513
server.listen(0, async () => {
512514
const res = await fetch(`http://localhost:${server.address().port}`, {
@@ -537,7 +539,7 @@ test('custom agent', (t, done) => {
537539
const server = createServer((req, res) => {
538540
res.end(JSON.stringify(obj))
539541
})
540-
t.after(server.close.bind(server))
542+
t.after(closeServerAsPromise(server))
541543

542544
server.listen(0, async () => {
543545
const dispatcher = new Client('http://localhost:' + server.address().port, {
@@ -549,7 +551,7 @@ test('custom agent', (t, done) => {
549551
ok(true)
550552
return oldDispatch.call(this, options, handler)
551553
}
552-
t.after(server.close.bind(server))
554+
t.after(closeServerAsPromise(server))
553555
const body = await fetch(`http://localhost:${server.address().port}`, {
554556
dispatcher
555557
})
@@ -565,7 +567,7 @@ test('custom agent node fetch', (t, done) => {
565567
const server = createServer((req, res) => {
566568
res.end(JSON.stringify(obj))
567569
})
568-
t.after(server.close.bind(server))
570+
t.after(closeServerAsPromise(server))
569571

570572
server.listen(0, async () => {
571573
const dispatcher = new Client('http://localhost:' + server.address().port, {
@@ -577,7 +579,7 @@ test('custom agent node fetch', (t, done) => {
577579
ok(true)
578580
return oldDispatch.call(this, options, handler)
579581
}
580-
t.after(server.close.bind(server))
582+
t.after(closeServerAsPromise(server))
581583
const body = await nodeFetch.fetch(`http://localhost:${server.address().port}`, {
582584
dispatcher
583585
})
@@ -591,7 +593,7 @@ test('error on redirect', (t, done) => {
591593
res.statusCode = 302
592594
res.end()
593595
})
594-
t.after(server.close.bind(server))
596+
t.after(closeServerAsPromise(server))
595597

596598
server.listen(0, async () => {
597599
const errorCause = await fetch(`http://localhost:${server.address().port}`, {
@@ -610,7 +612,7 @@ test('fetching with Request object - issue #1527', async (t) => {
610612
res.end()
611613
}).listen(0)
612614

613-
t.after(server.close.bind(server))
615+
t.after(closeServerAsPromise(server))
614616
await once(server, 'listening')
615617

616618
const body = JSON.stringify({ foo: 'bar' })
@@ -641,7 +643,7 @@ test('do not decode redirect body', (t, done) => {
641643
res.setHeader('content-encoding', 'gzip')
642644
res.end(gzipSync(JSON.stringify(obj)))
643645
})
644-
t.after(server.close.bind(server))
646+
t.after(closeServerAsPromise(server))
645647

646648
server.listen(0, async () => {
647649
const body = await fetch(`http://localhost:${server.address().port}/resource`)
@@ -661,7 +663,7 @@ test('decode non-redirect body with location header', (t, done) => {
661663
res.setHeader('content-encoding', 'gzip')
662664
res.end(gzipSync(JSON.stringify(obj)))
663665
})
664-
t.after(server.close.bind(server))
666+
t.after(closeServerAsPromise(server))
665667

666668
server.listen(0, async () => {
667669
const body = await fetch(`http://localhost:${server.address().port}/resource`)
@@ -687,7 +689,7 @@ test('Receiving non-Latin1 headers', async (t) => {
687689
res.end()
688690
}).listen(0)
689691

690-
t.after(server.close.bind(server))
692+
t.after(closeServerAsPromise(server))
691693
await once(server, 'listening')
692694

693695
const url = `http://localhost:${server.address().port}`

test/fetch/content-length.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const { createServer } = require('http')
66
const { once } = require('events')
77
const { Blob } = require('buffer')
88
const { fetch, FormData } = require('../..')
9+
const { closeServerAsPromise } = require('../utils/node-http')
910

1011
// https://github.com/nodejs/undici/issues/1783
1112
test('Content-Length is set when using a FormData body with fetch', async (t) => {
@@ -17,7 +18,7 @@ test('Content-Length is set when using a FormData body with fetch', async (t) =>
1718
}).listen(0)
1819

1920
await once(server, 'listening')
20-
t.after(server.close.bind(server))
21+
t.after(closeServerAsPromise(server))
2122

2223
const fd = new FormData()
2324
fd.set('file', new Blob(['hello world 👋'], { type: 'text/plain' }), 'readme.md')

test/fetch/cookies.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ const { test } = require('node:test')
66
const assert = require('node:assert')
77
const { tspl } = require('@matteo.collina/tspl')
88
const { fetch, Headers } = require('../..')
9+
const { closeServerAsPromise } = require('../utils/node-http')
910

1011
test('Can receive set-cookie headers from a server using fetch - issue #1262', async (t) => {
1112
const server = createServer((req, res) => {
1213
res.setHeader('set-cookie', 'name=value; Domain=example.com')
1314
res.end()
1415
}).listen(0)
1516

16-
t.after(server.close.bind(server))
17+
t.after(closeServerAsPromise(server))
1718
await once(server, 'listening')
1819

1920
const response = await fetch(`http://localhost:${server.address().port}`)
@@ -33,7 +34,7 @@ test('Can send cookies to a server with fetch - issue #1463', async (t) => {
3334
res.end()
3435
}).listen(0)
3536

36-
t.after(server.close.bind(server))
37+
t.after(closeServerAsPromise(server))
3738
await once(server, 'listening')
3839

3940
const headersInit = [
@@ -55,7 +56,7 @@ test('Cookie header is delimited with a semicolon rather than a comma - issue #1
5556
res.end()
5657
}).listen(0)
5758

58-
t.after(server.close.bind(server))
59+
t.after(closeServerAsPromise(server))
5960
await once(server, 'listening')
6061

6162
await fetch(`http://localhost:${server.address().port}`, {

0 commit comments

Comments
 (0)