@@ -423,4 +423,33 @@ describe("createBlockReplyDeliveryHandler", () => {
423423 assistantMessageIndex : 7 ,
424424 } ) ;
425425 } ) ;
426+
427+ it ( "records concurrent direct block deliveries in emission order" , async ( ) => {
428+ const resolvers : Array < ( ) => void > = [ ] ;
429+ const directlySentBlockPayloads : Array < ReplyPayload | undefined > = [ ] ;
430+ const handler = createBlockReplyDeliveryHandler ( {
431+ onBlockReply : ( ) =>
432+ new Promise < void > ( ( resolve ) => {
433+ resolvers . push ( resolve ) ;
434+ } ) ,
435+ normalizeStreamingText : ( payload ) => ( { text : payload . text , skip : false } ) ,
436+ applyReplyToMode : ( payload ) => payload ,
437+ typingSignals : {
438+ signalTextDelta : vi . fn ( async ( ) => { } ) ,
439+ } as unknown as TypingSignaler ,
440+ blockStreamingEnabled : true ,
441+ blockReplyPipeline : null ,
442+ directlySentBlockKeys : new Set ( ) ,
443+ directlySentBlockPayloads,
444+ } ) ;
445+
446+ const first = handler ( { text : "first" } ) ;
447+ const second = handler ( { text : "second" } ) ;
448+ resolvers [ 1 ] ?.( ) ;
449+ await second ;
450+ resolvers [ 0 ] ?.( ) ;
451+ await first ;
452+
453+ expect ( directlySentBlockPayloads . map ( ( payload ) => payload ?. text ) ) . toEqual ( [ "first" , "second" ] ) ;
454+ } ) ;
426455} ) ;
0 commit comments