Skip to content

Commit 5307d73

Browse files
Cover active reconnect cleanup delete failures without onError
Co-authored-by: Eric Allam <eric@trigger.dev>
1 parent 7e0eb51 commit 5307d73

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

packages/ai/src/chatTransport.test.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)