@@ -1320,21 +1320,15 @@ describe("StreamableHTTPServerTransport", () => {
1320
1320
body : JSON . stringify ( batchMessages ) ,
1321
1321
} ) ;
1322
1322
1323
- // Mock sequential responses - send them in specific order
1323
+ // Mock responses without enforcing specific order
1324
1324
jsonResponseTransport . onmessage = ( message ) => {
1325
1325
if ( 'method' in message && 'id' in message ) {
1326
1326
const responseMessage : JSONRPCMessage = {
1327
1327
jsonrpc : "2.0" ,
1328
1328
result : { value : `result-for-${ message . id } ` } ,
1329
1329
id : message . id ,
1330
1330
} ;
1331
- // Send responses in order - req1 first, then req2
1332
- if ( message . id === 'req1' ) {
1333
- void jsonResponseTransport . send ( responseMessage ) ;
1334
- } else {
1335
- // Add a tiny delay to req2 to ensure it's processed after req1
1336
- setTimeout ( ( ) => void jsonResponseTransport . send ( responseMessage ) , 5 ) ;
1337
- }
1331
+ void jsonResponseTransport . send ( responseMessage ) ;
1338
1332
}
1339
1333
} ;
1340
1334
@@ -1351,8 +1345,15 @@ describe("StreamableHTTPServerTransport", () => {
1351
1345
} )
1352
1346
) ;
1353
1347
1348
+ // Verify response was sent but don't assume specific order
1354
1349
expect ( mockResponse . end ) . toHaveBeenCalled ( ) ;
1355
- expect ( mockResponse . end . mock . calls [ 0 ] [ 0 ] ) . toContain ( "result-for-req2" ) ;
1350
+ const responseJson = JSON . parse ( mockResponse . end . mock . calls [ 0 ] [ 0 ] as string ) ;
1351
+ expect ( Array . isArray ( responseJson ) ) . toBe ( true ) ;
1352
+ expect ( responseJson ) . toHaveLength ( 2 ) ;
1353
+
1354
+ // Check each response exists separately without assuming order
1355
+ expect ( responseJson ) . toContainEqual ( expect . objectContaining ( { id : "req1" , result : { value : "result-for-req1" } } ) ) ;
1356
+ expect ( responseJson ) . toContainEqual ( expect . objectContaining ( { id : "req2" , result : { value : "result-for-req2" } } ) ) ;
1356
1357
} ) ;
1357
1358
} ) ;
1358
1359
0 commit comments