From f3a6d139655fbce9c2f732406103cee08b3fd000 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 3 Apr 2026 21:33:36 +0100 Subject: [PATCH] test: trim helper partial mocks --- .../extra-params.pi-ai-mock.ts | 4 ++-- src/agents/skills-install.test-mocks.ts | 4 ++-- src/agents/test-helpers/fast-tool-stubs.ts | 5 ++-- .../reply/commands-subagents.test-mocks.ts | 5 ++-- src/auto-reply/reply/get-reply.test-mocks.ts | 12 ++++++---- .../plugins/contracts/inbound-testkit.ts | 4 ++-- src/cli/test-runtime-capture.ts | 4 ++-- src/commands/agents.bind.test-support.ts | 4 ++-- src/commands/channels.mock-harness.ts | 23 +++++++++---------- src/cron/isolated-agent.mocks.ts | 6 +++-- .../session-write-lock-module-mock.ts | 8 +++---- 11 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/agents/pi-embedded-runner/extra-params.pi-ai-mock.ts b/src/agents/pi-embedded-runner/extra-params.pi-ai-mock.ts index 20cedab3fd4..01399f70595 100644 --- a/src/agents/pi-embedded-runner/extra-params.pi-ai-mock.ts +++ b/src/agents/pi-embedded-runner/extra-params.pi-ai-mock.ts @@ -3,9 +3,9 @@ import { vi } from "vitest"; type PiAiMockModule = Record; export async function createPiAiStreamSimpleMock( - importOriginal: () => Promise, + loadActual: () => Promise, ): Promise { - const original = await importOriginal(); + const original = await loadActual(); return { ...original, streamSimple: vi.fn(() => ({ diff --git a/src/agents/skills-install.test-mocks.ts b/src/agents/skills-install.test-mocks.ts index f6c0c802ddc..90595621722 100644 --- a/src/agents/skills-install.test-mocks.ts +++ b/src/agents/skills-install.test-mocks.ts @@ -22,9 +22,9 @@ export function scanDirectoryWithSummaryFromMock(...args: unknown[]) { } export async function mockSkillScannerModule( - importOriginal: () => Promise, + loadActual: () => Promise, ) { - const actual = await importOriginal(); + const actual = await loadActual(); return { ...actual, scanDirectoryWithSummary: scanDirectoryWithSummaryFromMock, diff --git a/src/agents/test-helpers/fast-tool-stubs.ts b/src/agents/test-helpers/fast-tool-stubs.ts index d04a84309a2..7eb885f503b 100644 --- a/src/agents/test-helpers/fast-tool-stubs.ts +++ b/src/agents/test-helpers/fast-tool-stubs.ts @@ -28,8 +28,9 @@ vi.mock("../tools/web-tools.js", () => ({ createWebFetchTool: () => null, })); -vi.mock("../../plugins/tools.js", async (importOriginal) => { - const mod = await importOriginal(); +vi.mock("../../plugins/tools.js", async () => { + const mod = + await vi.importActual("../../plugins/tools.js"); return { ...mod, resolvePluginTools: () => [], diff --git a/src/auto-reply/reply/commands-subagents.test-mocks.ts b/src/auto-reply/reply/commands-subagents.test-mocks.ts index 358329f96e0..917aabcf2e2 100644 --- a/src/auto-reply/reply/commands-subagents.test-mocks.ts +++ b/src/auto-reply/reply/commands-subagents.test-mocks.ts @@ -1,7 +1,8 @@ import { vi } from "vitest"; -vi.mock("../../config/config.js", async (importOriginal) => { - const actual = await importOriginal(); +vi.mock("../../config/config.js", async () => { + const actual = + await vi.importActual("../../config/config.js"); return { ...actual, loadConfig: () => ({}), diff --git a/src/auto-reply/reply/get-reply.test-mocks.ts b/src/auto-reply/reply/get-reply.test-mocks.ts index 577268d26ed..ba6cc0806ee 100644 --- a/src/auto-reply/reply/get-reply.test-mocks.ts +++ b/src/auto-reply/reply/get-reply.test-mocks.ts @@ -2,8 +2,10 @@ import { vi } from "vitest"; import { createMockTypingController } from "./reply.test-helpers.js"; export function registerGetReplyCommonMocks(): void { - vi.mock("../../agents/agent-scope.js", async (importOriginal) => { - const actual = await importOriginal(); + vi.mock("../../agents/agent-scope.js", async () => { + const actual = await vi.importActual( + "../../agents/agent-scope.js", + ); return { ...actual, resolveAgentDir: vi.fn(() => "/tmp/agent"), @@ -12,8 +14,10 @@ export function registerGetReplyCommonMocks(): void { resolveAgentSkillsFilter: vi.fn(() => undefined), }; }); - vi.mock("../../agents/model-selection.js", async (importOriginal) => { - const actual = await importOriginal(); + vi.mock("../../agents/model-selection.js", async () => { + const actual = await vi.importActual( + "../../agents/model-selection.js", + ); return { ...actual, resolveModelRefFromString: vi.fn(() => null), diff --git a/src/channels/plugins/contracts/inbound-testkit.ts b/src/channels/plugins/contracts/inbound-testkit.ts index b3241572f56..f99dcd2868d 100644 --- a/src/channels/plugins/contracts/inbound-testkit.ts +++ b/src/channels/plugins/contracts/inbound-testkit.ts @@ -27,10 +27,10 @@ export function buildDispatchInboundCaptureMock>() => Promise, + loadActual: >() => Promise, capture: InboundContextCapture, ) { - const actual = await importOriginal(); + const actual = await loadActual(); return buildDispatchInboundCaptureMock(actual, (ctx) => { capture.ctx = ctx as MsgContext; }); diff --git a/src/cli/test-runtime-capture.ts b/src/cli/test-runtime-capture.ts index 555d46a7d5e..6a72a93be4f 100644 --- a/src/cli/test-runtime-capture.ts +++ b/src/cli/test-runtime-capture.ts @@ -64,10 +64,10 @@ export function createCliRuntimeCapture(): CliRuntimeCapture { } export async function mockRuntimeModule( - importOriginal: () => Promise, + loadActual: () => Promise, defaultRuntime: TModule["defaultRuntime"], ): Promise { - const actual = await importOriginal(); + const actual = await loadActual(); return { ...actual, defaultRuntime: { diff --git a/src/commands/agents.bind.test-support.ts b/src/commands/agents.bind.test-support.ts index eff5478cd7d..6d62cf5fcb2 100644 --- a/src/commands/agents.bind.test-support.ts +++ b/src/commands/agents.bind.test-support.ts @@ -24,8 +24,8 @@ export const replaceConfigFileMock: Mock<(...args: unknown[]) => Promise Promise>; -vi.mock("../config/config.js", async (importOriginal) => { - const actual = await importOriginal(); +vi.mock("../config/config.js", async () => { + const actual = await vi.importActual("../config/config.js"); return await mergeMockedModule(actual, () => ({ readConfigFileSnapshot: (...args: Parameters) => readConfigFileSnapshotMock(...args) as ReturnType, diff --git a/src/commands/channels.mock-harness.ts b/src/commands/channels.mock-harness.ts index 8b4eae29522..3c712a1a277 100644 --- a/src/commands/channels.mock-harness.ts +++ b/src/commands/channels.mock-harness.ts @@ -27,8 +27,8 @@ export const offsetMocks: { deleteTelegramUpdateOffset: vi.fn().mockResolvedValue(undefined) as unknown as MockFn, }; -vi.mock("../config/config.js", async (importOriginal) => { - const actual = await importOriginal(); +vi.mock("../config/config.js", async () => { + const actual = await vi.importActual("../config/config.js"); return { ...actual, readConfigFileSnapshot: configMocks.readConfigFileSnapshot, @@ -37,13 +37,12 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); -vi.mock( - buildBundledPluginModuleId("telegram", "update-offset-runtime-api.js"), - async (importOriginal) => { - const actual: Record = await importOriginal(); - return { - ...actual, - deleteTelegramUpdateOffset: offsetMocks.deleteTelegramUpdateOffset, - }; - }, -); +vi.mock(buildBundledPluginModuleId("telegram", "update-offset-runtime-api.js"), async () => { + const actual: Record = await vi.importActual( + buildBundledPluginModuleId("telegram", "update-offset-runtime-api.js"), + ); + return { + ...actual, + deleteTelegramUpdateOffset: offsetMocks.deleteTelegramUpdateOffset, + }; +}); diff --git a/src/cron/isolated-agent.mocks.ts b/src/cron/isolated-agent.mocks.ts index 72e031dc3f4..3f795c74337 100644 --- a/src/cron/isolated-agent.mocks.ts +++ b/src/cron/isolated-agent.mocks.ts @@ -14,8 +14,10 @@ vi.mock("../agents/model-catalog.js", () => ({ loadModelCatalog: vi.fn(), })); -vi.mock("../agents/model-selection.js", async (importOriginal) => { - const actual = await importOriginal(); +vi.mock("../agents/model-selection.js", async () => { + const actual = await vi.importActual( + "../agents/model-selection.js", + ); return { ...actual, isCliProvider: vi.fn(() => false), diff --git a/src/test-utils/session-write-lock-module-mock.ts b/src/test-utils/session-write-lock-module-mock.ts index 0155b3b1411..a13d8019fbc 100644 --- a/src/test-utils/session-write-lock-module-mock.ts +++ b/src/test-utils/session-write-lock-module-mock.ts @@ -4,10 +4,10 @@ import type * as SessionWriteLockModule from "../agents/session-write-lock.js"; type SessionWriteLockModuleShape = typeof SessionWriteLockModule; export async function buildSessionWriteLockModuleMock( - importOriginal: () => Promise, + loadActual: () => Promise, acquireSessionWriteLock: SessionWriteLockModuleShape["acquireSessionWriteLock"], ): Promise { - const original = await importOriginal(); + const original = await loadActual(); return { ...original, acquireSessionWriteLock, @@ -19,9 +19,9 @@ export function resetModulesWithSessionWriteLockDoMock( acquireSessionWriteLock: SessionWriteLockModuleShape["acquireSessionWriteLock"], ): void { vi.resetModules(); - vi.doMock(modulePath, (importOriginal) => + vi.doMock(modulePath, () => buildSessionWriteLockModuleMock( - importOriginal as () => Promise, + () => vi.importActual(modulePath), acquireSessionWriteLock, ), );