From 8c8b0ab22448679d9ea40969fbf3c8a38d8c6759 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 17 Mar 2026 07:51:58 +0000 Subject: [PATCH] refactor(runs-tests): share run handle factory --- src/agents/pi-embedded-runner/runs.test.ts | 70 +++++++--------------- 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/src/agents/pi-embedded-runner/runs.test.ts b/src/agents/pi-embedded-runner/runs.test.ts index 3a4eb6d3743..f4a154d0141 100644 --- a/src/agents/pi-embedded-runner/runs.test.ts +++ b/src/agents/pi-embedded-runner/runs.test.ts @@ -10,6 +10,17 @@ import { waitForActiveEmbeddedRuns, } from "./runs.js"; +function createRunHandle( + overrides: { isCompacting?: boolean; abort?: ReturnType } = {}, +) { + return { + queueMessage: async () => {}, + isStreaming: () => true, + isCompacting: () => overrides.isCompacting ?? false, + abort: overrides.abort ?? vi.fn(), + }; +} + describe("pi-embedded runner run registry", () => { afterEach(() => { __testing.resetActiveEmbeddedRuns(); @@ -20,19 +31,12 @@ describe("pi-embedded runner run registry", () => { const abortCompacting = vi.fn(); const abortNormal = vi.fn(); - setActiveEmbeddedRun("session-compacting", { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => true, - abort: abortCompacting, - }); + setActiveEmbeddedRun( + "session-compacting", + createRunHandle({ isCompacting: true, abort: abortCompacting }), + ); - setActiveEmbeddedRun("session-normal", { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: abortNormal, - }); + setActiveEmbeddedRun("session-normal", createRunHandle({ abort: abortNormal })); const aborted = abortEmbeddedPiRun(undefined, { mode: "compacting" }); expect(aborted).toBe(true); @@ -44,19 +48,9 @@ describe("pi-embedded runner run registry", () => { const abortA = vi.fn(); const abortB = vi.fn(); - setActiveEmbeddedRun("session-a", { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => true, - abort: abortA, - }); + setActiveEmbeddedRun("session-a", createRunHandle({ isCompacting: true, abort: abortA })); - setActiveEmbeddedRun("session-b", { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: abortB, - }); + setActiveEmbeddedRun("session-b", createRunHandle({ abort: abortB })); const aborted = abortEmbeddedPiRun(undefined, { mode: "all" }); expect(aborted).toBe(true); @@ -67,12 +61,7 @@ describe("pi-embedded runner run registry", () => { it("waits for active runs to drain", async () => { vi.useFakeTimers(); try { - const handle = { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: vi.fn(), - }; + const handle = createRunHandle(); setActiveEmbeddedRun("session-a", handle); setTimeout(() => { clearActiveEmbeddedRun("session-a", handle); @@ -92,12 +81,7 @@ describe("pi-embedded runner run registry", () => { it("returns drained=false when timeout elapses", async () => { vi.useFakeTimers(); try { - setActiveEmbeddedRun("session-a", { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: vi.fn(), - }); + setActiveEmbeddedRun("session-a", createRunHandle()); const waitPromise = waitForActiveEmbeddedRuns(1_000, { pollMs: 100 }); await vi.advanceTimersByTimeAsync(1_000); @@ -118,12 +102,7 @@ describe("pi-embedded runner run registry", () => { import.meta.url, "./runs.js?scope=shared-b", ); - const handle = { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: vi.fn(), - }; + const handle = createRunHandle(); runsA.__testing.resetActiveEmbeddedRuns(); runsB.__testing.resetActiveEmbeddedRuns(); @@ -141,12 +120,7 @@ describe("pi-embedded runner run registry", () => { }); it("tracks and clears per-session transcript snapshots for active runs", () => { - const handle = { - queueMessage: async () => {}, - isStreaming: () => true, - isCompacting: () => false, - abort: vi.fn(), - }; + const handle = createRunHandle(); setActiveEmbeddedRun("session-snapshot", handle); updateActiveEmbeddedRunSnapshot("session-snapshot", {