From b7c75f3918222c56979db502f057927674fd38e8 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 18 Feb 2026 18:06:56 +0000 Subject: [PATCH] perf(test): speed up subagent persistence e2e flushes --- .../subagent-registry.persistence.e2e.test.ts | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/src/agents/subagent-registry.persistence.e2e.test.ts b/src/agents/subagent-registry.persistence.e2e.test.ts index d23344340be..38336ce6b5f 100644 --- a/src/agents/subagent-registry.persistence.e2e.test.ts +++ b/src/agents/subagent-registry.persistence.e2e.test.ts @@ -24,7 +24,9 @@ vi.mock("../infra/agent-events.js", () => ({ onAgentEvent: vi.fn(() => noop), })); -const announceSpy = vi.fn(async () => true); +const { announceSpy } = vi.hoisted(() => ({ + announceSpy: vi.fn(async () => true), +})); vi.mock("./subagent-announce.js", () => ({ runSubagentAnnounceFlow: announceSpy, })); @@ -47,27 +49,35 @@ describe("subagent registry persistence", () => { childSessionKey: string; task: string; cleanup: "keep" | "delete"; - }) => ({ - version: 2, - runs: { - [params.runId]: { - runId: params.runId, - childSessionKey: params.childSessionKey, - requesterSessionKey: "agent:main:main", - requesterDisplayKey: "main", - task: params.task, - cleanup: params.cleanup, - createdAt: 1, - startedAt: 1, - endedAt: 2, + }) => { + const now = Date.now(); + return { + version: 2, + runs: { + [params.runId]: { + runId: params.runId, + childSessionKey: params.childSessionKey, + requesterSessionKey: "agent:main:main", + requesterDisplayKey: "main", + task: params.task, + cleanup: params.cleanup, + createdAt: now - 2, + startedAt: now - 1, + endedAt: now, + }, }, - }, - }); + }; + }; + + const flushQueuedRegistryWork = async () => { + await Promise.resolve(); + await Promise.resolve(); + }; const restartRegistryAndFlush = async () => { resetSubagentRegistryForTests({ persist: false }); initSubagentRegistry(); - await new Promise((r) => setTimeout(r, 0)); + await flushQueuedRegistryWork(); }; afterEach(async () => { @@ -117,7 +127,7 @@ describe("subagent registry persistence", () => { initSubagentRegistry(); // allow queued async wait/cleanup to execute - await new Promise((r) => setTimeout(r, 0)); + await flushQueuedRegistryWork(); expect(announceSpy).toHaveBeenCalled(); @@ -169,7 +179,7 @@ describe("subagent registry persistence", () => { resetSubagentRegistryForTests({ persist: false }); initSubagentRegistry(); - await new Promise((r) => setTimeout(r, 0)); + await flushQueuedRegistryWork(); // announce should NOT be called since cleanupHandled was true const calls = (announceSpy.mock.calls as unknown as Array<[unknown]>).map((call) => call[0]);