@@ -167,10 +167,25 @@ describe("server", () => {
167167 describe ( "listen and emit event maps" , ( ) => {
168168 interface ClientToServerEvents {
169169 helloFromClient : ( message : string ) => void ;
170+ ackFromClient : (
171+ a : string ,
172+ b : number ,
173+ ack : ( c : string , d : number ) => void
174+ ) => void ;
170175 }
171176
172177 interface ServerToClientEvents {
173178 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 ;
174189 }
175190
176191 describe ( "on" , ( ) => {
@@ -185,6 +200,13 @@ describe("server", () => {
185200 expectType < string > ( message ) ;
186201 done ( ) ;
187202 } ) ;
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+ } ) ;
188210 } ) ;
189211 } ) ;
190212 } ) ;
@@ -213,8 +235,41 @@ describe("server", () => {
213235 sio . to ( "room" ) . emit ( "helloFromServer" , "hi" , 1 ) ;
214236 sio . timeout ( 1000 ) . emit ( "helloFromServer" , "hi" , 1 ) ;
215237
238+ sio
239+ . timeout ( 1000 )
240+ . emit ( "multipleAckFromServer" , true , "123" , ( err , c ) => {
241+ expectType < Error > ( err ) ;
242+ expectType < string [ ] > ( c ) ;
243+ } ) ;
244+
216245 sio . on ( "connection" , ( s ) => {
217246 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+
218273 done ( ) ;
219274 } ) ;
220275 } ) ;
@@ -253,6 +308,7 @@ describe("server", () => {
253308
254309 interface InterServerEvents {
255310 helloFromServerToServer : ( message : string , x : number ) => void ;
311+ ackFromServerToServer : ( foo : string , cb : ( bar : number ) => void ) => void ;
256312 }
257313
258314 describe ( "on" , ( ) => {
@@ -281,6 +337,16 @@ describe("server", () => {
281337 expectType < string > ( message ) ;
282338 expectType < number > ( x ) ;
283339 } ) ;
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+ } ) ;
284350 } ) ;
285351 } ) ;
286352 } ) ;
0 commit comments