Skip to content

Commit 7d75401

Browse files
Cover inactive string cleanup retries without onError callback
Co-authored-by: Eric Allam <eric@trigger.dev>
1 parent b44b4e5 commit 7d75401

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

packages/ai/src/chatTransport.test.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,6 +1241,51 @@ describe("TriggerChatTransport", function () {
12411241
expect(stream).toBeNull();
12421242
});
12431243

1244+
it("retries inactive reconnect string cleanup without onError callback", async function () {
1245+
const runStore = new FailingCleanupDeleteValueRunStore("cleanup delete string failure");
1246+
runStore.set({
1247+
chatId: "chat-inactive-delete-string-retry-no-onerror",
1248+
runId: "run_inactive_delete_string_retry_no_onerror",
1249+
publicAccessToken: "pk_inactive_delete_string_retry_no_onerror",
1250+
streamKey: "chat-stream",
1251+
lastEventId: "10-0",
1252+
isActive: false,
1253+
});
1254+
1255+
const transport = new TriggerChatTransport({
1256+
task: "chat-task",
1257+
stream: "chat-stream",
1258+
accessToken: "pk_trigger",
1259+
runStore,
1260+
});
1261+
1262+
let fetchCalls = 0;
1263+
(transport as any).fetchRunStream = async function fetchRunStream() {
1264+
fetchCalls += 1;
1265+
throw new Error("unexpected reconnect fetch");
1266+
};
1267+
1268+
const firstReconnect = await transport.reconnectToStream({
1269+
chatId: "chat-inactive-delete-string-retry-no-onerror",
1270+
});
1271+
1272+
expect(firstReconnect).toBeNull();
1273+
expect(fetchCalls).toBe(0);
1274+
expect(runStore.deleteCallCount).toBe(1);
1275+
expect(runStore.get("chat-inactive-delete-string-retry-no-onerror")).toMatchObject({
1276+
isActive: false,
1277+
});
1278+
1279+
const secondReconnect = await transport.reconnectToStream({
1280+
chatId: "chat-inactive-delete-string-retry-no-onerror",
1281+
});
1282+
1283+
expect(secondReconnect).toBeNull();
1284+
expect(fetchCalls).toBe(0);
1285+
expect(runStore.deleteCallCount).toBe(2);
1286+
expect(runStore.get("chat-inactive-delete-string-retry-no-onerror")).toBeUndefined();
1287+
});
1288+
12441289
it("retries inactive reconnect string cleanup on subsequent reconnect attempts", async function () {
12451290
const errors: TriggerChatTransportError[] = [];
12461291
const runStore = new FailingCleanupDeleteValueRunStore("cleanup delete string failure");

0 commit comments

Comments
 (0)