@@ -2936,6 +2936,50 @@ describe("TriggerChatTransport", function () {
29362936 expect ( runStore . get ( "chat-reconnect-cleanup-delete-failure" ) ) . toBeUndefined ( ) ;
29372937 } ) ;
29382938
2939+ it ( "returns null when active reconnect cleanup delete fails without onError callback" , async function ( ) {
2940+ const runStore = new FailingCleanupDeleteRunStore ( 1 ) ;
2941+ let fetchCalls = 0 ;
2942+ runStore . set ( {
2943+ chatId : "chat-reconnect-cleanup-delete-no-onerror" ,
2944+ runId : "run_reconnect_cleanup_delete_no_onerror" ,
2945+ publicAccessToken : "pk_reconnect_cleanup_delete_no_onerror" ,
2946+ streamKey : "chat-stream" ,
2947+ lastEventId : "100-0" ,
2948+ isActive : true ,
2949+ } ) ;
2950+
2951+ const transport = new TriggerChatTransport ( {
2952+ task : "chat-task" ,
2953+ stream : "chat-stream" ,
2954+ accessToken : "pk_trigger" ,
2955+ runStore,
2956+ } ) ;
2957+
2958+ ( transport as any ) . fetchRunStream = async function fetchRunStream ( ) {
2959+ fetchCalls += 1 ;
2960+ throw new Error ( "reconnect root cause" ) ;
2961+ } ;
2962+
2963+ const firstReconnect = await transport . reconnectToStream ( {
2964+ chatId : "chat-reconnect-cleanup-delete-no-onerror" ,
2965+ } ) ;
2966+
2967+ expect ( firstReconnect ) . toBeNull ( ) ;
2968+ expect ( fetchCalls ) . toBe ( 1 ) ;
2969+ expect ( runStore . get ( "chat-reconnect-cleanup-delete-no-onerror" ) ) . toMatchObject ( {
2970+ isActive : false ,
2971+ lastEventId : "100-0" ,
2972+ } ) ;
2973+
2974+ const secondReconnect = await transport . reconnectToStream ( {
2975+ chatId : "chat-reconnect-cleanup-delete-no-onerror" ,
2976+ } ) ;
2977+
2978+ expect ( secondReconnect ) . toBeNull ( ) ;
2979+ expect ( fetchCalls ) . toBe ( 1 ) ;
2980+ expect ( runStore . get ( "chat-reconnect-cleanup-delete-no-onerror" ) ) . toBeUndefined ( ) ;
2981+ } ) ;
2982+
29392983 it ( "preserves reconnect root failure when cleanup delete throws a non-Error value" , async function ( ) {
29402984 const errors : TriggerChatTransportError [ ] = [ ] ;
29412985 const runStore = new FailingCleanupDeleteValueRunStore ( "cleanup delete string failure" ) ;
0 commit comments