@@ -167,10 +167,25 @@ describe("server", () => {
167
167
describe ( "listen and emit event maps" , ( ) => {
168
168
interface ClientToServerEvents {
169
169
helloFromClient : ( message : string ) => void ;
170
+ ackFromClient : (
171
+ a : string ,
172
+ b : number ,
173
+ ack : ( c : string , d : number ) => void
174
+ ) => void ;
170
175
}
171
176
172
177
interface ServerToClientEvents {
173
178
helloFromServer : ( message : string , x : number ) => void ;
179
+ ackFromServer : (
180
+ a : boolean ,
181
+ b : string ,
182
+ ack : ( c : boolean , d : string ) => void
183
+ ) => void ;
184
+ multipleAckFromServer : (
185
+ a : boolean ,
186
+ b : string ,
187
+ ack : ( c : string ) => void
188
+ ) => void ;
174
189
}
175
190
176
191
describe ( "on" , ( ) => {
@@ -185,6 +200,13 @@ describe("server", () => {
185
200
expectType < string > ( message ) ;
186
201
done ( ) ;
187
202
} ) ;
203
+
204
+ s . on ( "ackFromClient" , ( a , b , cb ) => {
205
+ expectType < string > ( a ) ;
206
+ expectType < number > ( b ) ;
207
+ expectType < ( c : string , d : number ) => void > ( cb ) ;
208
+ cb ( "123" , 456 ) ;
209
+ } ) ;
188
210
} ) ;
189
211
} ) ;
190
212
} ) ;
@@ -213,8 +235,41 @@ describe("server", () => {
213
235
sio . to ( "room" ) . emit ( "helloFromServer" , "hi" , 1 ) ;
214
236
sio . timeout ( 1000 ) . emit ( "helloFromServer" , "hi" , 1 ) ;
215
237
238
+ sio
239
+ . timeout ( 1000 )
240
+ . emit ( "multipleAckFromServer" , true , "123" , ( err , c ) => {
241
+ expectType < Error > ( err ) ;
242
+ expectType < string [ ] > ( c ) ;
243
+ } ) ;
244
+
216
245
sio . on ( "connection" , ( s ) => {
217
246
s . emit ( "helloFromServer" , "hi" , 10 ) ;
247
+
248
+ s . emit ( "ackFromServer" , true , "123" , ( c , d ) => {
249
+ expectType < boolean > ( c ) ;
250
+ expectType < string > ( d ) ;
251
+ } ) ;
252
+
253
+ s . timeout ( 1000 ) . emit ( "ackFromServer" , true , "123" , ( err , c , d ) => {
254
+ expectType < Error > ( err ) ;
255
+ expectType < boolean > ( c ) ;
256
+ expectType < string > ( d ) ;
257
+ } ) ;
258
+
259
+ s . timeout ( 1000 )
260
+ . to ( "room" )
261
+ . emit ( "multipleAckFromServer" , true , "123" , ( err , c ) => {
262
+ expectType < Error > ( err ) ;
263
+ expectType < string [ ] > ( c ) ;
264
+ } ) ;
265
+
266
+ s . to ( "room" )
267
+ . timeout ( 1000 )
268
+ . emit ( "multipleAckFromServer" , true , "123" , ( err , c ) => {
269
+ expectType < Error > ( err ) ;
270
+ expectType < string [ ] > ( c ) ;
271
+ } ) ;
272
+
218
273
done ( ) ;
219
274
} ) ;
220
275
} ) ;
@@ -253,6 +308,7 @@ describe("server", () => {
253
308
254
309
interface InterServerEvents {
255
310
helloFromServerToServer : ( message : string , x : number ) => void ;
311
+ ackFromServerToServer : ( foo : string , cb : ( bar : number ) => void ) => void ;
256
312
}
257
313
258
314
describe ( "on" , ( ) => {
@@ -281,6 +337,16 @@ describe("server", () => {
281
337
expectType < string > ( message ) ;
282
338
expectType < number > ( x ) ;
283
339
} ) ;
340
+
341
+ sio . serverSideEmit ( "ackFromServerToServer" , "foo" , ( err , bar ) => {
342
+ expectType < Error > ( err ) ;
343
+ expectType < number [ ] > ( bar ) ;
344
+ } ) ;
345
+
346
+ sio . on ( "ackFromServerToServer" , ( foo , cb ) => {
347
+ expectType < string > ( foo ) ;
348
+ expectType < ( bar : number ) => void > ( cb ) ;
349
+ } ) ;
284
350
} ) ;
285
351
} ) ;
286
352
} ) ;
0 commit comments