From 9918667804330e8eda3b887314bd9dfca14846cc Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 6 Apr 2026 03:43:29 +0100 Subject: [PATCH] perf(test): trim runReplyAgent misc mock imports --- .../agent-runner.misc.runreplyagent.test.ts | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts b/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts index 019de1c1ce5..5f77dd880ff 100644 --- a/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts +++ b/src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts @@ -32,11 +32,11 @@ function createCliBackendTestConfig() { const runEmbeddedPiAgentMock = vi.fn(); const runWithModelFallbackMock = vi.fn(); const runtimeErrorMock = vi.fn(); +const abortEmbeddedPiRunMock = vi.fn(); +const clearSessionQueuesMock = vi.fn(); +const refreshQueuedFollowupSessionMock = vi.fn(); const compactState = vi.hoisted(() => ({ compactEmbeddedPiSessionMock: vi.fn(), - actualCompactEmbeddedPiSession: undefined as - | typeof import("../../agents/pi-embedded.js").compactEmbeddedPiSession - | undefined, })); function createDeferred() { @@ -61,26 +61,19 @@ vi.mock("../../agents/model-fallback.js", () => ({ Array.isArray((err as { attempts?: unknown[] }).attempts), })); -vi.mock("../../agents/pi-embedded.js", async () => { - const actual = await vi.importActual( - "../../agents/pi-embedded.js", - ); - compactState.actualCompactEmbeddedPiSession = actual.compactEmbeddedPiSession; +vi.mock("../../agents/pi-embedded.js", () => { return { - ...actual, compactEmbeddedPiSession: (params: unknown) => compactState.compactEmbeddedPiSessionMock(params), queueEmbeddedPiMessage: vi.fn().mockReturnValue(false), runEmbeddedPiAgent: (params: unknown) => runEmbeddedPiAgentMock(params), + abortEmbeddedPiRun: (...args: unknown[]) => abortEmbeddedPiRunMock(...args), }; }); -vi.mock("../../runtime.js", async () => { - const actual = await vi.importActual("../../runtime.js"); +vi.mock("../../runtime.js", () => { return { - ...actual, defaultRuntime: { - ...actual.defaultRuntime, log: vi.fn(), error: (...args: unknown[]) => runtimeErrorMock(...args), exit: vi.fn(), @@ -88,24 +81,36 @@ vi.mock("../../runtime.js", async () => { }; }); -vi.mock("./queue.js", async () => { - const actual = await vi.importActual("./queue.js"); +vi.mock("./queue.js", () => { return { - ...actual, enqueueFollowupRun: vi.fn(), scheduleFollowupDrain: vi.fn(), + clearSessionQueues: (...args: unknown[]) => clearSessionQueuesMock(...args), + refreshQueuedFollowupSession: (...args: unknown[]) => refreshQueuedFollowupSessionMock(...args), }; }); const loadCronStoreMock = vi.fn(); -vi.mock("../../cron/store.js", async () => { - const actual = await vi.importActual("../../cron/store.js"); +vi.mock("../../cron/store.js", () => { return { - ...actual, loadCronStore: (...args: unknown[]) => loadCronStoreMock(...args), + resolveCronStorePath: (storePath?: string) => storePath ?? "/tmp/openclaw-cron-store.json", }; }); +vi.mock("../../acp/control-plane/manager.js", () => ({ + getAcpSessionManager: () => ({ + resolveSession: () => ({ kind: "none" }), + cancelSession: async () => {}, + }), +})); + +vi.mock("../../agents/subagent-registry.js", () => ({ + getLatestSubagentRunByChildSessionKey: () => null, + listSubagentRunsForController: () => [], + markSubagentRunTerminated: () => 0, +})); + import { runReplyAgent } from "./agent-runner.js"; type RunWithModelFallbackParams = { @@ -118,6 +123,11 @@ beforeEach(() => { runEmbeddedPiAgentMock.mockClear(); runWithModelFallbackMock.mockClear(); runtimeErrorMock.mockClear(); + abortEmbeddedPiRunMock.mockClear(); + clearSessionQueuesMock.mockReset(); + clearSessionQueuesMock.mockReturnValue({ followupCleared: 0, laneCleared: 0, keys: [] }); + refreshQueuedFollowupSessionMock.mockReset(); + refreshQueuedFollowupSessionMock.mockResolvedValue(undefined); loadCronStoreMock.mockClear(); // Default: no cron jobs in store. loadCronStoreMock.mockResolvedValue({ version: 1, jobs: [] });