test: trim agents importActual mocks

This commit is contained in:
Peter Steinberger 2026-04-03 20:00:24 +01:00
parent ffba320a2c
commit 4e27e22663
No known key found for this signature in database
7 changed files with 32 additions and 46 deletions

View File

@ -17,8 +17,8 @@ const storeMocks = vi.hoisted(() => ({
}));
const fetchMock = vi.hoisted(() => vi.fn());
vi.mock("./store.js", async (importOriginal) => {
const original = await importOriginal<typeof import("./store.js")>();
vi.mock("./store.js", async () => {
const original = await vi.importActual<typeof import("./store.js")>("./store.js");
return {
...original,
updateAuthProfileStoreWithLock: storeMocks.updateAuthProfileStoreWithLock,

View File

@ -16,8 +16,9 @@ const resolveSessionAuthProfileOverrideMock = vi.fn();
const getActiveEmbeddedRunSnapshotMock = vi.fn();
const diagDebugMock = vi.fn();
vi.mock("@mariozechner/pi-ai", async (importOriginal) => {
const original = await importOriginal<typeof import("@mariozechner/pi-ai")>();
vi.mock("@mariozechner/pi-ai", async () => {
const original =
await vi.importActual<typeof import("@mariozechner/pi-ai")>("@mariozechner/pi-ai");
return {
...original,
streamSimple: (...args: unknown[]) => streamSimpleMock(...args),

View File

@ -3,8 +3,8 @@ import type { ExtensionContext } from "@mariozechner/pi-coding-agent";
import * as piCodingAgent from "@mariozechner/pi-coding-agent";
import { beforeEach, describe, expect, it, vi } from "vitest";
vi.mock("@mariozechner/pi-coding-agent", async (importOriginal) => {
const actual = await importOriginal<typeof piCodingAgent>();
vi.mock("@mariozechner/pi-coding-agent", async () => {
const actual = await vi.importActual<typeof piCodingAgent>("@mariozechner/pi-coding-agent");
return {
...actual,
generateSummary: vi.fn(),
@ -14,14 +14,8 @@ vi.mock("@mariozechner/pi-coding-agent", async (importOriginal) => {
const mockGenerateSummary = vi.mocked(piCodingAgent.generateSummary);
type SummarizeInStagesInput = Parameters<typeof import("./compaction.js").summarizeInStages>[0];
let buildCompactionSummarizationInstructions: typeof import("./compaction.js").buildCompactionSummarizationInstructions;
let summarizeInStages: typeof import("./compaction.js").summarizeInStages;
async function loadFreshCompactionModuleForTest() {
vi.resetModules();
({ buildCompactionSummarizationInstructions, summarizeInStages } =
await import("./compaction.js"));
}
const { buildCompactionSummarizationInstructions, summarizeInStages } =
await import("./compaction.js");
function makeMessage(index: number, size = 1200): AgentMessage {
return {
@ -46,8 +40,7 @@ describe("compaction identifier-preservation instructions", () => {
signal: new AbortController().signal,
};
beforeEach(async () => {
await loadFreshCompactionModuleForTest();
beforeEach(() => {
mockGenerateSummary.mockReset();
mockGenerateSummary.mockResolvedValue("summary");
});

View File

@ -6,8 +6,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { retryAsync } from "../infra/retry.js";
// Mock the external generateSummary function
vi.mock("@mariozechner/pi-coding-agent", async (importOriginal) => {
const actual = await importOriginal<typeof piCodingAgent>();
vi.mock("@mariozechner/pi-coding-agent", async () => {
const actual = await vi.importActual<typeof piCodingAgent>("@mariozechner/pi-coding-agent");
return {
...actual,
generateSummary: vi.fn(),

View File

@ -20,8 +20,9 @@ afterAll(() => {
bundledPluginsDirSnapshot.restore();
});
vi.mock("../infra/shell-env.js", async (importOriginal) => {
const mod = await importOriginal<typeof import("../infra/shell-env.js")>();
vi.mock("../infra/shell-env.js", async () => {
const mod =
await vi.importActual<typeof import("../infra/shell-env.js")>("../infra/shell-env.js");
return {
...mod,
getShellPathFromLoginShell: vi.fn(() => null),
@ -30,12 +31,15 @@ vi.mock("../infra/shell-env.js", async (importOriginal) => {
});
vi.mock("../plugins/tools.js", () => ({
copyPluginToolMeta: vi.fn((_from, to) => to),
resolvePluginTools: () => [],
getPluginToolMeta: () => undefined,
}));
vi.mock("../infra/exec-approvals.js", async (importOriginal) => {
const mod = await importOriginal<typeof import("../infra/exec-approvals.js")>();
vi.mock("../infra/exec-approvals.js", async () => {
const mod = await vi.importActual<typeof import("../infra/exec-approvals.js")>(
"../infra/exec-approvals.js",
);
const approvals: ExecApprovalsResolved = {
path: "/tmp/exec-approvals.json",
socketPath: "/tmp/exec-approvals.sock",

View File

@ -8,8 +8,8 @@ const dockerMocks = vi.hoisted(() => ({
execDockerRaw: vi.fn(),
}));
vi.mock("./docker.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("./docker.js")>();
vi.mock("./docker.js", async () => {
const actual = await vi.importActual<typeof import("./docker.js")>("./docker.js");
return {
...actual,
dockerContainerState: dockerMocks.dockerContainerState,
@ -19,7 +19,7 @@ vi.mock("./docker.js", async (importOriginal) => {
};
});
let dockerSandboxBackendManager: typeof import("./docker-backend.js").dockerSandboxBackendManager;
const { dockerSandboxBackendManager } = await import("./docker-backend.js");
function createConfig(): OpenClawConfig {
return {
@ -43,23 +43,8 @@ function createConfig(): OpenClawConfig {
};
}
async function loadFreshDockerBackendModuleForTest() {
vi.resetModules();
vi.doMock("./docker.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("./docker.js")>();
return {
...actual,
dockerContainerState: dockerMocks.dockerContainerState,
ensureSandboxContainer: dockerMocks.ensureSandboxContainer,
execDocker: dockerMocks.execDocker,
execDockerRaw: dockerMocks.execDockerRaw,
};
});
({ dockerSandboxBackendManager } = await import("./docker-backend.js"));
}
describe("docker sandbox backend manager", () => {
beforeEach(async () => {
beforeEach(() => {
vi.clearAllMocks();
dockerMocks.dockerContainerState.mockResolvedValue({
exists: true,
@ -70,7 +55,6 @@ describe("docker sandbox backend manager", () => {
stdout: "unused-image",
stderr: "",
});
await loadFreshDockerBackendModuleForTest();
});
it("matches ordinary sandbox runtimes against sandbox.docker.image", async () => {

View File

@ -17,13 +17,17 @@ vi.mock("../infra/net/fetch-guard.js", () => ({
fetchWithSsrFGuard: vi.fn(),
}));
vi.mock("../security/skill-scanner.js", async (importOriginal) => ({
...(await importOriginal<typeof import("../security/skill-scanner.js")>()),
vi.mock("../security/skill-scanner.js", async () => ({
...(await vi.importActual<typeof import("../security/skill-scanner.js")>(
"../security/skill-scanner.js",
)),
scanDirectoryWithSummary: (...args: unknown[]) => scanDirectoryWithSummaryMock(...args),
}));
vi.mock("../shared/config-eval.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("../shared/config-eval.js")>();
vi.mock("../shared/config-eval.js", async () => {
const actual = await vi.importActual<typeof import("../shared/config-eval.js")>(
"../shared/config-eval.js",
);
return {
...actual,
hasBinary: (bin: string) => hasBinaryMock(bin),