Skip to content

Commit f33a6cb

Browse files
authored
test: fix flaky http2-dispatcher WebSocket upgrade tests (#5304)
1 parent ca0cb16 commit f33a6cb

1 file changed

Lines changed: 25 additions & 25 deletions

File tree

test/http2-dispatcher.js

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,11 @@ test('Dispatcher#Upgrade', async t => {
265265
t.fail(err)
266266
})
267267

268-
stream.respond({ ':status': 200 })
268+
stream.respond({ ':status': 200 }, { endStream: false })
269269
stream.resume()
270-
271-
stream.end()
270+
stream.once('end', () => {
271+
stream.end()
272+
})
272273
})
273274

274275
await once(server.listen(0), 'listening')
@@ -281,14 +282,14 @@ test('Dispatcher#Upgrade', async t => {
281282
})
282283

283284
const { socket } = await client.upgrade({ path: '/', protocol: 'websocket' })
285+
socket.on('error', () => {})
284286

285287
t.ok(socket.readable)
286288
t.ok(socket.writable)
287289
t.strictEqual(socket.closed, false)
288290

289291
await t.completed
290292

291-
socket.on('error', () => {})
292293
socket.end()
293294
await once(socket, 'close')
294295
await client.close()
@@ -311,7 +312,11 @@ test('Dispatcher#Upgrade resumes queued requests after successful WebSocket upgr
311312
})
312313

313314
if (headers[':method'] === 'CONNECT' && headers[':protocol'] === 'websocket') {
314-
stream.respond({ ':status': 200 })
315+
stream.respond({ ':status': 200 }, { endStream: false })
316+
stream.resume()
317+
stream.once('end', () => {
318+
stream.end()
319+
})
315320
return
316321
}
317322

@@ -337,27 +342,22 @@ test('Dispatcher#Upgrade resumes queued requests after successful WebSocket upgr
337342
after(() => client.close())
338343
after(() => server.close())
339344

340-
let upgradeSocket
345+
const upgrade = client.upgrade({ path: '/', protocol: 'websocket' })
346+
const post = client.request({ method: 'POST', path: '/', body: 'hello' })
341347

342-
try {
343-
const upgrade = client.upgrade({ path: '/', protocol: 'websocket' })
344-
const post = client.request({ method: 'POST', path: '/', body: 'hello' })
345-
346-
const { socket } = await upgrade
347-
upgradeSocket = socket
348-
t.strictEqual(socket.closed, false)
349-
350-
const response = await Promise.race([
351-
post,
352-
sleep(1_000).then(() => null)
353-
])
354-
355-
t.ok(postReachedServer)
356-
t.strictEqual(response?.statusCode, 200)
357-
} finally {
358-
upgradeSocket?.on('error', () => {})
359-
upgradeSocket?.end()
360-
}
348+
const { socket } = await upgrade
349+
socket.on('error', () => {})
350+
t.strictEqual(socket.closed, false)
351+
352+
const response = await Promise.race([
353+
post,
354+
sleep(1_000).then(() => null)
355+
])
356+
357+
t.ok(postReachedServer)
358+
t.strictEqual(response?.statusCode, 200)
359+
360+
socket.end()
361361

362362
await t.completed
363363
})

0 commit comments

Comments
 (0)