@@ -13,7 +13,7 @@ const BaseServer = require('../../lib/servers/BaseServer');
13
13
const port = require ( '../ports-map' ) [ 'webSocketServer-option' ] ;
14
14
15
15
describe ( 'webSocketServer' , ( ) => {
16
- describe . only ( 'server' , ( ) => {
16
+ describe ( 'server' , ( ) => {
17
17
let mockedTestServer ;
18
18
let testServer ;
19
19
let server ;
@@ -56,6 +56,7 @@ describe('webSocketServer', () => {
56
56
class MockServer {
57
57
// eslint-disable-next-line no-empty-function
58
58
onConnection ( ) { }
59
+ close ( ) { }
59
60
}
60
61
) ;
61
62
} ) ;
@@ -199,7 +200,7 @@ describe('webSocketServer', () => {
199
200
constructor ( serv ) {
200
201
super ( serv ) ;
201
202
202
- this . socket = sockjs . createServer ( {
203
+ this . implementation = sockjs . createServer ( {
203
204
// Use provided up-to-date sockjs-client
204
205
sockjs_url : '/__webpack_dev_server__/sockjs.bundle.js' ,
205
206
// Limit useless logs
@@ -214,23 +215,33 @@ describe('webSocketServer', () => {
214
215
} ,
215
216
} ) ;
216
217
217
- this . socket . installHandlers ( this . server . server , {
218
+ this . implementation . installHandlers ( this . server . server , {
218
219
prefix : 'ws' ,
219
220
} ) ;
220
221
221
222
customServerUsed = true ;
222
223
}
223
224
224
- send ( connection , message ) {
225
- connection . write ( message ) ;
225
+ close ( callback ) {
226
+ [ ...this . server . sockets ] . forEach ( ( socket ) => {
227
+ this . closeConnection ( socket ) ;
228
+ } ) ;
229
+
230
+ if ( callback ) {
231
+ callback ( ) ;
232
+ }
226
233
}
227
234
228
- close ( connection ) {
235
+ closeConnection ( connection ) {
229
236
connection . close ( ) ;
230
237
}
231
238
239
+ send ( connection , message ) {
240
+ connection . write ( message ) ;
241
+ }
242
+
232
243
onConnection ( f ) {
233
- this . socket . on ( 'connection' , ( connection ) => {
244
+ this . implementation . on ( 'connection' , ( connection ) => {
234
245
f ( connection , connection . headers ) ;
235
246
} ) ;
236
247
}
@@ -278,21 +289,22 @@ describe('webSocketServer', () => {
278
289
webSocketServer : class MySockJSServer extends BaseServer {
279
290
constructor ( serv ) {
280
291
super ( serv ) ;
281
-
282
- this . socket = sockjs . createServer ( {
292
+ this . implementation = sockjs . createServer ( {
283
293
// Use provided up-to-date sockjs-client
284
294
sockjs_url : '/__webpack_dev_server__/sockjs.bundle.js' ,
285
295
// Limit useless logs
286
296
log : ( severity , line ) => {
287
297
if ( severity === 'error' ) {
288
298
this . server . logger . error ( line ) ;
299
+ } else if ( severity === 'info' ) {
300
+ this . server . logger . log ( line ) ;
289
301
} else {
290
302
this . server . logger . debug ( line ) ;
291
303
}
292
304
} ,
293
305
} ) ;
294
306
295
- this . socket . installHandlers ( this . server . server , {
307
+ this . implementation . installHandlers ( this . server . server , {
296
308
prefix : '/ws' ,
297
309
} ) ;
298
310
}
@@ -301,12 +313,22 @@ describe('webSocketServer', () => {
301
313
connection . write ( message ) ;
302
314
}
303
315
304
- close ( connection ) {
316
+ close ( callback ) {
317
+ [ ...this . server . sockets ] . forEach ( ( socket ) => {
318
+ this . closeConnection ( socket ) ;
319
+ } ) ;
320
+
321
+ if ( callback ) {
322
+ callback ( ) ;
323
+ }
324
+ }
325
+
326
+ closeConnection ( connection ) {
305
327
connection . close ( ) ;
306
328
}
307
329
308
330
onConnection ( f ) {
309
- this . socket . on ( 'connection' , ( connection ) => {
331
+ this . implementation . on ( 'connection' , ( connection ) => {
310
332
f ( connection ) ;
311
333
} ) ;
312
334
}
@@ -377,7 +399,7 @@ describe('webSocketServer', () => {
377
399
webSocketServer : class MySockJSServer extends BaseServer {
378
400
constructor ( serv ) {
379
401
super ( serv ) ;
380
- this . socket = sockjs . createServer ( {
402
+ this . implementation = sockjs . createServer ( {
381
403
// Use provided up-to-date sockjs-client
382
404
sockjs_url : '/__webpack_dev_server__/sockjs.bundle.js' ,
383
405
// Limit useless logs
@@ -392,7 +414,7 @@ describe('webSocketServer', () => {
392
414
} ,
393
415
} ) ;
394
416
395
- this . socket . installHandlers ( this . server . server , {
417
+ this . implementation . installHandlers ( this . server . server , {
396
418
prefix : '/ws' ,
397
419
} ) ;
398
420
}
@@ -401,12 +423,22 @@ describe('webSocketServer', () => {
401
423
connection . write ( message ) ;
402
424
}
403
425
404
- close ( connection ) {
426
+ close ( callback ) {
427
+ [ ...this . server . sockets ] . forEach ( ( socket ) => {
428
+ this . closeConnection ( socket ) ;
429
+ } ) ;
430
+
431
+ if ( callback ) {
432
+ callback ( ) ;
433
+ }
434
+ }
435
+
436
+ closeConnection ( connection ) {
405
437
connection . close ( ) ;
406
438
}
407
439
408
440
onConnection ( f ) {
409
- this . socket . on ( 'connection' , ( connection ) => {
441
+ this . implementation . on ( 'connection' , ( connection ) => {
410
442
f ( connection , {
411
443
host : null ,
412
444
} ) ;
@@ -530,7 +562,7 @@ describe('webSocketServer', () => {
530
562
expect ( mockServerInstance . onConnection . mock . calls ) . toMatchSnapshot ( ) ;
531
563
// the only call to send() here should be an invalid header message
532
564
expect ( mockServerInstance . send . mock . calls ) . toMatchSnapshot ( ) ;
533
- expect ( mockServerInstance . close . mock . calls ) . toMatchSnapshot ( ) ;
565
+ expect ( mockServerInstance . closeConnection . mock . calls ) . toMatchSnapshot ( ) ;
534
566
// onConnectionClose should never get called since the client should be closed first
535
567
expect ( mockServerInstance . onConnectionClose . mock . calls . length ) . toEqual (
536
568
0
0 commit comments