@@ -57,4 +57,88 @@ describe("socket.io-adapter", () => {
5757 expect ( rooms . size ) . to . be ( 2 ) ;
5858 expect ( adapter . socketRooms ( "s4" ) ) . to . be ( undefined ) ;
5959 } ) ;
60+
61+ describe ( "events" , ( ) => {
62+ it ( "should emit a 'create-room' event" , done => {
63+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
64+ adapter . on ( "create-room" , room => {
65+ expect ( room ) . to . eql ( "r1" ) ;
66+ done ( ) ;
67+ } ) ;
68+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
69+ } ) ;
70+
71+ it ( "should not emit a 'create-room' event if the room already exists" , done => {
72+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
73+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
74+ adapter . on ( "create-room" , room => {
75+ done ( new Error ( "should not happen" ) ) ;
76+ } ) ;
77+ adapter . addAll ( "s2" , new Set ( [ "r1" ] ) ) ;
78+ done ( ) ;
79+ } ) ;
80+
81+ it ( "should emit a 'join-room' event" , done => {
82+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
83+ adapter . on ( "join-room" , ( room , sid ) => {
84+ expect ( room ) . to . eql ( "r1" ) ;
85+ expect ( sid ) . to . eql ( "s1" ) ;
86+ done ( ) ;
87+ } ) ;
88+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
89+ } ) ;
90+
91+ it ( "should not emit a 'join-room' event if the sid is already in the room" , done => {
92+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
93+ adapter . addAll ( "s1" , new Set ( [ "r1" , "r2" ] ) ) ;
94+ adapter . on ( "join-room" , ( ) => {
95+ done ( new Error ( "should not happen" ) ) ;
96+ } ) ;
97+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
98+ done ( ) ;
99+ } ) ;
100+
101+ it ( "should emit a 'leave-room' event with del method" , done => {
102+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
103+ adapter . on ( "leave-room" , ( room , sid ) => {
104+ expect ( room ) . to . eql ( "r1" ) ;
105+ expect ( sid ) . to . eql ( "s1" ) ;
106+ done ( ) ;
107+ } ) ;
108+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
109+ adapter . del ( "s1" , "r1" ) ;
110+ } ) ;
111+
112+ it ( "should emit a 'leave-room' event with delAll method" , done => {
113+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
114+ adapter . on ( "leave-room" , ( room , sid ) => {
115+ expect ( room ) . to . eql ( "r1" ) ;
116+ expect ( sid ) . to . eql ( "s1" ) ;
117+ done ( ) ;
118+ } ) ;
119+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
120+ adapter . delAll ( "s1" ) ;
121+ } ) ;
122+
123+ it ( "should emit a 'delete-room' event" , done => {
124+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
125+ adapter . on ( "delete-room" , room => {
126+ expect ( room ) . to . eql ( "r1" ) ;
127+ done ( ) ;
128+ } ) ;
129+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
130+ adapter . delAll ( "s1" ) ;
131+ } ) ;
132+
133+ it ( "should not emit a 'delete-room' event if there is another sid in the room" , done => {
134+ const adapter = new Adapter ( { server : { encoder : null } } ) ;
135+ adapter . on ( "delete-room" , room => {
136+ done ( new Error ( "should not happen" ) ) ;
137+ } ) ;
138+ adapter . addAll ( "s1" , new Set ( [ "r1" ] ) ) ;
139+ adapter . addAll ( "s2" , new Set ( [ "r1" , "r2" ] ) ) ;
140+ adapter . delAll ( "s1" ) ;
141+ done ( ) ;
142+ } ) ;
143+ } ) ;
60144} ) ;
0 commit comments