@@ -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