@@ -57,4 +57,88 @@ describe("socket.io-adapter", () => {
57
57
expect ( rooms . size ) . to . be ( 2 ) ;
58
58
expect ( adapter . socketRooms ( "s4" ) ) . to . be ( undefined ) ;
59
59
} ) ;
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
+ } ) ;
60
144
} ) ;
0 commit comments