@@ -7,6 +7,15 @@ const fastifyWebsocket = require('..')
7
7
const WebSocket = require ( 'ws' )
8
8
const get = require ( 'node:http' ) . get
9
9
10
+ const withResolvers = function ( ) {
11
+ let promiseResolve , promiseReject
12
+ const promise = new Promise ( ( resolve , reject ) => {
13
+ promiseResolve = resolve
14
+ promiseReject = reject
15
+ } )
16
+ return { promise, resolve : promiseResolve , reject : promiseReject }
17
+ }
18
+
10
19
test ( 'Should expose a websocket on prefixed route' , ( t , end ) => {
11
20
t . plan ( 4 )
12
21
const fastify = Fastify ( )
@@ -473,14 +482,17 @@ test('Should open on registered path', (t, end) => {
473
482
} )
474
483
} )
475
484
476
- test ( 'Should send message and close' , ( t , end ) => {
485
+ test ( 'Should send message and close' , ( t ) => {
477
486
t . plan ( 5 )
478
487
const fastify = Fastify ( )
479
488
480
489
t . after ( ( ) => fastify . close ( ) )
481
490
482
491
fastify . register ( fastifyWebsocket )
483
492
493
+ const { promise : clientPromise , resolve : clientResolve } = withResolvers ( )
494
+ const { promise : serverPromise , resolve : serverResolve } = withResolvers ( )
495
+
484
496
fastify . register ( async function ( fastify ) {
485
497
fastify . get ( '/' , { websocket : true } , ( socket ) => {
486
498
socket . on ( 'message' , message => {
@@ -490,7 +502,7 @@ test('Should send message and close', (t, end) => {
490
502
491
503
socket . on ( 'close' , ( ) => {
492
504
t . assert . ok ( true )
493
- end ( )
505
+ serverResolve ( )
494
506
} )
495
507
496
508
t . after ( ( ) => socket . terminate ( ) )
@@ -514,8 +526,11 @@ test('Should send message and close', (t, end) => {
514
526
515
527
ws . on ( 'close' , ( ) => {
516
528
t . assert . ok ( true )
529
+ clientResolve ( )
517
530
} )
518
531
} )
532
+
533
+ return Promise . all ( [ clientPromise , serverPromise ] )
519
534
} )
520
535
521
536
test ( 'Should return 404 on http request' , ( t , end ) => {
0 commit comments