Skip to content

Commit f3a0513

Browse files
authored
test: use faketimers for test/client-keep-alive (#4499)
1 parent 8c152d2 commit f3a0513

1 file changed

Lines changed: 29 additions & 34 deletions

File tree

test/client-keep-alive.js

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const { tspl } = require('@matteo.collina/tspl')
44
const { test, after } = require('node:test')
55
const { once } = require('node:events')
66
const { Client } = require('..')
7-
const timers = require('../lib/util/timers')
87
const { kConnect } = require('../lib/core/symbols')
98
const { createServer } = require('node:net')
109
const http = require('node:http')
@@ -21,10 +20,8 @@ test('keep-alive header', async (t) => {
2120
socket.write('\r\n\r\n')
2221
})
2322
after(() => server.close())
23+
await once(server.listen(0), 'listening')
2424

25-
server.listen(0)
26-
27-
await once(server, 'listening')
2825
const client = new Client(`http://localhost:${server.address().port}`)
2926
after(() => client.close())
3027

@@ -52,10 +49,6 @@ test('keep-alive header 0', async (t) => {
5249
const clock = FakeTimers.install()
5350
after(() => clock.uninstall())
5451

55-
const orgTimers = { ...timers }
56-
Object.assign(timers, { setTimeout, clearTimeout })
57-
after(() => { Object.assign(timers, orgTimers) })
58-
5952
const server = createServer((socket) => {
6053
socket.write('HTTP/1.1 200 OK\r\n')
6154
socket.write('Content-Length: 0\r\n')
@@ -64,10 +57,8 @@ test('keep-alive header 0', async (t) => {
6457
socket.write('\r\n\r\n')
6558
})
6659
after(() => server.close())
60+
await once(server.listen(0), 'listening')
6761

68-
server.listen(0)
69-
70-
await once(server, 'listening')
7162
const client = new Client(`http://localhost:${server.address().port}`, {
7263
keepAliveTimeoutThreshold: 500
7364
})
@@ -99,10 +90,8 @@ test('keep-alive header 1', async (t) => {
9990
socket.write('\r\n\r\n')
10091
})
10192
after(() => server.close())
93+
await once(server.listen(0), 'listening')
10294

103-
server.listen(0)
104-
105-
await once(server, 'listening')
10695
const client = new Client(`http://localhost:${server.address().port}`)
10796
after(() => client.close())
10897

@@ -135,10 +124,8 @@ test('keep-alive header no postfix', async (t) => {
135124
socket.write('\r\n\r\n')
136125
})
137126
after(() => server.close())
127+
await once(server.listen(0), 'listening')
138128

139-
server.listen(0)
140-
141-
await once(server, 'listening')
142129
const client = new Client(`http://localhost:${server.address().port}`)
143130
after(() => client.close())
144131

@@ -163,6 +150,11 @@ test('keep-alive header no postfix', async (t) => {
163150
test('keep-alive not timeout', async (t) => {
164151
t = tspl(t, { plan: 2 })
165152

153+
const clock = FakeTimers.install({
154+
apis: ['setTimeout']
155+
})
156+
after(() => clock.uninstall())
157+
166158
const server = createServer((socket) => {
167159
socket.write('HTTP/1.1 200 OK\r\n')
168160
socket.write('Content-Length: 0\r\n')
@@ -172,9 +164,8 @@ test('keep-alive not timeout', async (t) => {
172164
})
173165
after(() => server.close())
174166

175-
server.listen(0)
167+
await once(server.listen(0), 'listening')
176168

177-
await once(server, 'listening')
178169
const client = new Client(`http://localhost:${server.address().port}`, {
179170
keepAliveTimeout: 1e3
180171
})
@@ -186,21 +177,26 @@ test('keep-alive not timeout', async (t) => {
186177
}, (err, { body }) => {
187178
t.ifError(err)
188179
body.on('end', () => {
189-
const timeout = setTimeout(() => {
190-
t.fail()
191-
}, 3e3)
180+
const timeout = setTimeout(t.fail, 3e3)
192181
client.on('disconnect', () => {
193182
t.ok(true, 'pass')
194183
clearTimeout(timeout)
195184
})
185+
clock.tick(1000)
196186
}).resume()
197187
})
188+
198189
await t.completed
199190
})
200191

201192
test('keep-alive threshold', async (t) => {
202193
t = tspl(t, { plan: 2 })
203194

195+
const clock = FakeTimers.install({
196+
apis: ['setTimeout']
197+
})
198+
after(() => clock.uninstall())
199+
204200
const server = createServer((socket) => {
205201
socket.write('HTTP/1.1 200 OK\r\n')
206202
socket.write('Content-Length: 0\r\n')
@@ -209,10 +205,8 @@ test('keep-alive threshold', async (t) => {
209205
socket.write('\r\n\r\n')
210206
})
211207
after(() => server.close())
208+
await once(server.listen(0), 'listening')
212209

213-
server.listen(0)
214-
215-
await once(server, 'listening')
216210
const client = new Client(`http://localhost:${server.address().port}`, {
217211
keepAliveTimeout: 30e3,
218212
keepAliveTimeoutThreshold: 29e3
@@ -232,6 +226,7 @@ test('keep-alive threshold', async (t) => {
232226
t.ok(true, 'pass')
233227
clearTimeout(timeout)
234228
})
229+
clock.tick(1000)
235230
}).resume()
236231
})
237232
await t.completed
@@ -240,6 +235,11 @@ test('keep-alive threshold', async (t) => {
240235
test('keep-alive max keepalive', async (t) => {
241236
t = tspl(t, { plan: 2 })
242237

238+
const clock = FakeTimers.install({
239+
apis: ['setTimeout']
240+
})
241+
after(() => clock.uninstall())
242+
243243
const server = createServer((socket) => {
244244
socket.write('HTTP/1.1 200 OK\r\n')
245245
socket.write('Content-Length: 0\r\n')
@@ -248,10 +248,8 @@ test('keep-alive max keepalive', async (t) => {
248248
socket.write('\r\n\r\n')
249249
})
250250
after(() => server.close())
251+
await once(server.listen(0), 'listening')
251252

252-
server.listen(0)
253-
254-
await once(server, 'listening')
255253
const client = new Client(`http://localhost:${server.address().port}`, {
256254
keepAliveTimeout: 30e3,
257255
keepAliveMaxTimeout: 1e3
@@ -271,6 +269,7 @@ test('keep-alive max keepalive', async (t) => {
271269
t.ok(true, 'pass')
272270
clearTimeout(timeout)
273271
})
272+
clock.tick(1000)
274273
}).resume()
275274
})
276275
await t.completed
@@ -291,10 +290,8 @@ test('connection close', async (t) => {
291290
socket.write('\r\n\r\n')
292291
})
293292
after(() => server.close())
293+
await once(server.listen(0), 'listening')
294294

295-
server.listen(0)
296-
297-
await once(server, 'listening')
298295
const client = new Client(`http://localhost:${server.address().port}`, {
299296
pipelining: 2
300297
})
@@ -349,10 +346,8 @@ test('Disable keep alive', async (t) => {
349346
res.end()
350347
})
351348
after(() => server.close())
349+
await once(server.listen(0), 'listening')
352350

353-
server.listen(0)
354-
355-
await once(server, 'listening')
356351
const client = new Client(`http://localhost:${server.address().port}`, { pipelining: 0 })
357352
after(() => client.close())
358353

0 commit comments

Comments
 (0)