From 3664d51b6f35b40ed631ee8380826d173c58aba6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 21 Feb 2026 22:09:02 +0000 Subject: [PATCH] test(discord): share thread binding sweep fixtures --- .../monitor/thread-bindings.ttl.test.ts | 58 +++++++++---------- 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/src/discord/monitor/thread-bindings.ttl.test.ts b/src/discord/monitor/thread-bindings.ttl.test.ts index 6be24d49e78..a452c581327 100644 --- a/src/discord/monitor/thread-bindings.ttl.test.ts +++ b/src/discord/monitor/thread-bindings.ttl.test.ts @@ -66,6 +66,28 @@ describe("thread binding ttl", () => { vi.useRealTimers(); }); + const createDefaultSweeperManager = () => + createThreadBindingManager({ + accountId: "default", + persist: false, + enableSweeper: true, + sessionTtlMs: 24 * 60 * 60 * 1000, + }); + + const bindDefaultThreadTarget = async ( + manager: ReturnType, + ) => { + await manager.bindTarget({ + threadId: "thread-1", + channelId: "parent-1", + targetKind: "subagent", + targetSessionKey: "agent:main:subagent:child", + agentId: "main", + webhookId: "wh-1", + webhookToken: "tok-1", + }); + }; + it("includes ttl in intro text", () => { const intro = resolveThreadBindingIntroText({ agentId: "main", @@ -115,22 +137,8 @@ describe("thread binding ttl", () => { it("keeps binding when thread sweep probe fails transiently", async () => { vi.useFakeTimers(); try { - const manager = createThreadBindingManager({ - accountId: "default", - persist: false, - enableSweeper: true, - sessionTtlMs: 24 * 60 * 60 * 1000, - }); - - await manager.bindTarget({ - threadId: "thread-1", - channelId: "parent-1", - targetKind: "subagent", - targetSessionKey: "agent:main:subagent:child", - agentId: "main", - webhookId: "wh-1", - webhookToken: "tok-1", - }); + const manager = createDefaultSweeperManager(); + await bindDefaultThreadTarget(manager); hoisted.restGet.mockRejectedValueOnce(new Error("ECONNRESET")); @@ -146,22 +154,8 @@ describe("thread binding ttl", () => { it("unbinds when thread sweep probe reports unknown channel", async () => { vi.useFakeTimers(); try { - const manager = createThreadBindingManager({ - accountId: "default", - persist: false, - enableSweeper: true, - sessionTtlMs: 24 * 60 * 60 * 1000, - }); - - await manager.bindTarget({ - threadId: "thread-1", - channelId: "parent-1", - targetKind: "subagent", - targetSessionKey: "agent:main:subagent:child", - agentId: "main", - webhookId: "wh-1", - webhookToken: "tok-1", - }); + const manager = createDefaultSweeperManager(); + await bindDefaultThreadTarget(manager); hoisted.restGet.mockRejectedValueOnce({ status: 404,