From de49b26bb18c72fa2fc2b9faf066fdc65dafca8c Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 3 Apr 2026 18:56:17 +0100 Subject: [PATCH] test: trim acp spawn parent stream resets --- src/agents/acp-spawn-parent-stream.test.ts | 78 ++++++---------------- 1 file changed, 20 insertions(+), 58 deletions(-) diff --git a/src/agents/acp-spawn-parent-stream.test.ts b/src/agents/acp-spawn-parent-stream.test.ts index cc98436cddd..d9112b9aef6 100644 --- a/src/agents/acp-spawn-parent-stream.test.ts +++ b/src/agents/acp-spawn-parent-stream.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { mergeMockedModule } from "../test-utils/vitest-module-mocks.js"; const enqueueSystemEventMock = vi.fn(); @@ -11,27 +11,33 @@ vi.mock("../infra/system-events.js", () => ({ enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), })); -vi.mock("../infra/heartbeat-wake.js", async (importOriginal) => { +vi.mock("../infra/heartbeat-wake.js", async () => { return await mergeMockedModule( - await importOriginal(), + await vi.importActual( + "../infra/heartbeat-wake.js", + ), () => ({ requestHeartbeatNow: (...args: unknown[]) => requestHeartbeatNowMock(...args), }), ); }); -vi.mock("../acp/runtime/session-meta.js", async (importOriginal) => { +vi.mock("../acp/runtime/session-meta.js", async () => { return await mergeMockedModule( - await importOriginal(), + await vi.importActual( + "../acp/runtime/session-meta.js", + ), () => ({ readAcpSessionEntry: (...args: unknown[]) => readAcpSessionEntryMock(...args), }), ); }); -vi.mock("../config/sessions/paths.js", async (importOriginal) => { +vi.mock("../config/sessions/paths.js", async () => { return await mergeMockedModule( - await importOriginal(), + await vi.importActual( + "../config/sessions/paths.js", + ), () => ({ resolveSessionFilePath: (...args: unknown[]) => resolveSessionFilePathMock(...args), resolveSessionFilePathOptions: (...args: unknown[]) => @@ -44,68 +50,24 @@ let emitAgentEvent: typeof import("../infra/agent-events.js").emitAgentEvent; let resolveAcpSpawnStreamLogPath: typeof import("./acp-spawn-parent-stream.js").resolveAcpSpawnStreamLogPath; let startAcpSpawnParentStreamRelay: typeof import("./acp-spawn-parent-stream.js").startAcpSpawnParentStreamRelay; -async function loadFreshAcpSpawnParentStreamModulesForTest() { - vi.resetModules(); - vi.doMock("../infra/system-events.js", () => ({ - enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), - })); - vi.doMock("../infra/heartbeat-wake.js", async () => { - return await mergeMockedModule( - await vi.importActual( - "../infra/heartbeat-wake.js", - ), - () => ({ - requestHeartbeatNow: (...args: unknown[]) => requestHeartbeatNowMock(...args), - }), - ); - }); - vi.doMock("../acp/runtime/session-meta.js", async () => { - return await mergeMockedModule( - await vi.importActual( - "../acp/runtime/session-meta.js", - ), - () => ({ - readAcpSessionEntry: (...args: unknown[]) => readAcpSessionEntryMock(...args), - }), - ); - }); - vi.doMock("../config/sessions/paths.js", async () => { - return await mergeMockedModule( - await vi.importActual( - "../config/sessions/paths.js", - ), - () => ({ - resolveSessionFilePath: (...args: unknown[]) => resolveSessionFilePathMock(...args), - resolveSessionFilePathOptions: (...args: unknown[]) => - resolveSessionFilePathOptionsMock(...args), - }), - ); - }); - const [agentEvents, relayModule] = await Promise.all([ - import("../infra/agent-events.js"), - import("./acp-spawn-parent-stream.js"), - ]); - return { - emitAgentEvent: agentEvents.emitAgentEvent, - resolveAcpSpawnStreamLogPath: relayModule.resolveAcpSpawnStreamLogPath, - startAcpSpawnParentStreamRelay: relayModule.startAcpSpawnParentStreamRelay, - }; -} - function collectedTexts() { return enqueueSystemEventMock.mock.calls.map((call) => String(call[0] ?? "")); } describe("startAcpSpawnParentStreamRelay", () => { - beforeEach(async () => { + beforeAll(async () => { + ({ emitAgentEvent } = await import("../infra/agent-events.js")); + ({ resolveAcpSpawnStreamLogPath, startAcpSpawnParentStreamRelay } = + await import("./acp-spawn-parent-stream.js")); + }); + + beforeEach(() => { enqueueSystemEventMock.mockClear(); requestHeartbeatNowMock.mockClear(); readAcpSessionEntryMock.mockReset(); resolveSessionFilePathMock.mockReset(); resolveSessionFilePathOptionsMock.mockReset(); resolveSessionFilePathOptionsMock.mockImplementation((value: unknown) => value); - ({ emitAgentEvent, resolveAcpSpawnStreamLogPath, startAcpSpawnParentStreamRelay } = - await loadFreshAcpSpawnParentStreamModulesForTest()); vi.useFakeTimers(); vi.setSystemTime(new Date("2026-03-04T01:00:00.000Z")); });