11import { Test , TestingModule } from '@nestjs/testing' ;
22import { RoomsGateway } from './rooms.gateway' ;
3+ import { Socket } from 'socket.io' ;
34
45describe ( 'RoomsGateway' , ( ) => {
56 let gateway : RoomsGateway ;
7+ let socket : jest . Mocked < Socket > ;
68
79 beforeEach ( async ( ) => {
810 const module : TestingModule = await Test . createTestingModule ( {
@@ -12,7 +14,33 @@ describe('RoomsGateway', () => {
1214 gateway = module . get < RoomsGateway > ( RoomsGateway ) ;
1315 } ) ;
1416
17+ beforeEach ( ( ) => {
18+ socket = {
19+ rooms : new Set ( ) ,
20+ join : jest . fn ( ) . mockImplementation ( ( room ) => socket . rooms . add ( room ) ) ,
21+ leave : jest . fn ( ) . mockImplementation ( ( room ) => socket . rooms . delete ( room ) ) ,
22+ } as unknown as jest . Mocked < Socket > ;
23+ } ) ;
24+
1525 it ( 'should be defined' , ( ) => {
1626 expect ( gateway ) . toBeDefined ( ) ;
1727 } ) ;
28+
29+ describe ( '#join()' , ( ) => {
30+ it ( 'should join' , ( ) => {
31+ const ret = gateway . join ( socket , 'FAKE_ROOM' ) ;
32+ expect ( ret ) . toEqual ( [ 'FAKE_ROOM' ] ) ;
33+ } ) ;
34+ } ) ;
35+
36+ describe ( '#leave()' , ( ) => {
37+ beforeEach ( ( ) => {
38+ socket . rooms . add ( 'FAKE_ROOM' ) ;
39+ } ) ;
40+
41+ it ( 'should leave' , ( ) => {
42+ const ret = gateway . leave ( socket , 'FAKE_ROOM' ) ;
43+ expect ( ret ) . toEqual ( [ ] ) ;
44+ } ) ;
45+ } ) ;
1846} ) ;
0 commit comments