mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-11 01:01:13 +00:00
test: trim test partial mocks
This commit is contained in:
@@ -14,8 +14,8 @@ const runtimeApiMocks = vi.hoisted(() => ({
|
||||
registerBrowserCli: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("./runtime-api.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./runtime-api.js")>();
|
||||
vi.mock("./runtime-api.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./runtime-api.js")>("./runtime-api.js");
|
||||
return {
|
||||
...actual,
|
||||
createBrowserPluginService: runtimeApiMocks.createBrowserPluginService,
|
||||
|
||||
@@ -115,8 +115,10 @@ vi.mock("../../../src/agents/tools/gateway.js", () => gatewayMocks);
|
||||
const configMocks = vi.hoisted(() => ({
|
||||
loadConfig: vi.fn(() => ({ browser: {} })),
|
||||
}));
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/config-runtime")>();
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async () => {
|
||||
const actual = await vi.importActual<typeof import("openclaw/plugin-sdk/config-runtime")>(
|
||||
"openclaw/plugin-sdk/config-runtime",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: configMocks.loadConfig,
|
||||
|
||||
@@ -1,25 +1,32 @@
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
vi.mock("node:child_process", async (importOriginal) => {
|
||||
vi.mock("node:child_process", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(importOriginal, {
|
||||
execFileSync: vi.fn(),
|
||||
});
|
||||
return mockNodeBuiltinModule(
|
||||
() => vi.importActual<typeof import("node:child_process")>("node:child_process"),
|
||||
{
|
||||
execFileSync: vi.fn(),
|
||||
},
|
||||
);
|
||||
});
|
||||
vi.mock("node:fs", async (importOriginal) => {
|
||||
vi.mock("node:fs", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../../../test/helpers/node-builtin-mocks.js");
|
||||
const existsSync = vi.fn();
|
||||
const readFileSync = vi.fn();
|
||||
return mockNodeBuiltinModule(
|
||||
importOriginal,
|
||||
() => vi.importActual<typeof import("node:fs")>("node:fs"),
|
||||
{ existsSync, readFileSync },
|
||||
{ mirrorToDefault: true },
|
||||
);
|
||||
});
|
||||
vi.mock("node:os", async (importOriginal) => {
|
||||
vi.mock("node:os", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../../../test/helpers/node-builtin-mocks.js");
|
||||
const homedir = vi.fn();
|
||||
return mockNodeBuiltinModule(importOriginal, { homedir }, { mirrorToDefault: true });
|
||||
return mockNodeBuiltinModule(
|
||||
() => vi.importActual<typeof import("node:os")>("node:os"),
|
||||
{ homedir },
|
||||
{ mirrorToDefault: true },
|
||||
);
|
||||
});
|
||||
import { execFileSync } from "node:child_process";
|
||||
import * as fs from "node:fs";
|
||||
|
||||
@@ -22,8 +22,8 @@ const mocks = vi.hoisted(() => ({
|
||||
dispatch: vi.fn(async (): Promise<BrowserDispatchResponse> => okDispatchResponse()),
|
||||
}));
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: mocks.loadConfig,
|
||||
|
||||
@@ -17,8 +17,8 @@ const mocks = vi.hoisted(() => ({
|
||||
})),
|
||||
}));
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: mocks.loadConfig,
|
||||
|
||||
@@ -6,8 +6,8 @@ import { resolveOpenClawUserDataDir } from "./chrome.js";
|
||||
import type { BrowserRouteContext, BrowserServerState } from "./server-context.js";
|
||||
import { movePathToTrash } from "./trash.js";
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: vi.fn(),
|
||||
|
||||
@@ -35,8 +35,8 @@ function buildConfig(): TestConfig {
|
||||
};
|
||||
}
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
createConfigIO: () => ({
|
||||
|
||||
@@ -11,8 +11,8 @@ const mocks = vi.hoisted(() => ({
|
||||
ensureExtensionRelayForProfiles: vi.fn(async () => {}),
|
||||
}));
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
const browserConfig = {
|
||||
enabled: true,
|
||||
};
|
||||
@@ -24,8 +24,8 @@ vi.mock("../config/config.js", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("./config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./config.js")>();
|
||||
vi.mock("./config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./config.js")>("./config.js");
|
||||
return {
|
||||
...actual,
|
||||
resolveBrowserConfig: vi.fn(() => ({
|
||||
|
||||
@@ -225,8 +225,8 @@ function defaultProfilesForState(testPort: number): HarnessState["cfgProfiles"]
|
||||
};
|
||||
}
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
const loadConfig = () => {
|
||||
return {
|
||||
browser: {
|
||||
|
||||
@@ -35,8 +35,8 @@ const routeCtxMocks = vi.hoisted(() => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: () => ({
|
||||
@@ -57,8 +57,8 @@ vi.mock("./pw-ai-module.js", () => ({
|
||||
getPwAiModule: vi.fn(async () => pwMocks),
|
||||
}));
|
||||
|
||||
vi.mock("./server-context.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./server-context.js")>();
|
||||
vi.mock("./server-context.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./server-context.js")>("./server-context.js");
|
||||
return {
|
||||
...actual,
|
||||
createBrowserRouteContext: routeCtxMocks.createBrowserRouteContext,
|
||||
|
||||
@@ -8,8 +8,10 @@ const { loadConfigMock, isNodeCommandAllowedMock, resolveNodeCommandAllowlistMoc
|
||||
}),
|
||||
);
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/config-runtime")>();
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async () => {
|
||||
const actual = await vi.importActual<typeof import("openclaw/plugin-sdk/config-runtime")>(
|
||||
"openclaw/plugin-sdk/config-runtime",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: loadConfigMock,
|
||||
|
||||
@@ -57,8 +57,8 @@ const mockGatewayClientCtor = vi.hoisted(() => vi.fn());
|
||||
const mockResolveGatewayConnectionAuth = vi.hoisted(() => vi.fn());
|
||||
const mockCreateOperatorApprovalsGatewayClient = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("../send.shared.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../send.shared.js")>();
|
||||
vi.mock("../send.shared.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../send.shared.js")>("../send.shared.js");
|
||||
return {
|
||||
...actual,
|
||||
createDiscordClient: () => ({
|
||||
@@ -72,8 +72,10 @@ vi.mock("../send.shared.js", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/config-runtime")>();
|
||||
vi.mock("openclaw/plugin-sdk/config-runtime", async () => {
|
||||
const actual = await vi.importActual<typeof import("openclaw/plugin-sdk/config-runtime")>(
|
||||
"openclaw/plugin-sdk/config-runtime",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
loadSessionStore: () => mockSessionStoreEntries.value,
|
||||
@@ -148,8 +150,10 @@ vi.mock("../../../../src/gateway/client.js", () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/text-runtime", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/text-runtime")>();
|
||||
vi.mock("openclaw/plugin-sdk/text-runtime", async () => {
|
||||
const actual = await vi.importActual<typeof import("openclaw/plugin-sdk/text-runtime")>(
|
||||
"openclaw/plugin-sdk/text-runtime",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
logDebug: vi.fn(),
|
||||
|
||||
@@ -3,8 +3,10 @@ const { recordInboundSessionMock } = vi.hoisted(() => ({
|
||||
recordInboundSessionMock: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./bot-message-context.session.runtime.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./bot-message-context.session.runtime.js")>();
|
||||
vi.mock("./bot-message-context.session.runtime.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./bot-message-context.session.runtime.js")>(
|
||||
"./bot-message-context.session.runtime.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
recordInboundSession: (...args: unknown[]) => recordInboundSessionMock(...args),
|
||||
|
||||
@@ -4,15 +4,18 @@ import { buildTelegramMessageContextForTest } from "./bot-message-context.test-h
|
||||
const recordInboundSessionMock = vi.hoisted(() => vi.fn().mockResolvedValue(undefined));
|
||||
const resolveTelegramConversationRouteMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("./bot-message-context.session.runtime.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./bot-message-context.session.runtime.js")>();
|
||||
vi.mock("./bot-message-context.session.runtime.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./bot-message-context.session.runtime.js")>(
|
||||
"./bot-message-context.session.runtime.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
recordInboundSession: (...args: unknown[]) => recordInboundSessionMock(...args),
|
||||
};
|
||||
});
|
||||
vi.mock("./conversation-route.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./conversation-route.js")>();
|
||||
vi.mock("./conversation-route.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("./conversation-route.js")>("./conversation-route.js");
|
||||
return {
|
||||
...actual,
|
||||
resolveTelegramConversationRoute: (...args: unknown[]) =>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { describe, expect, it, vi, afterEach, beforeEach } from "vitest";
|
||||
|
||||
// Mock fetchWithSsrFGuard from the local runtime seam.
|
||||
vi.mock("../../runtime-api.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../runtime-api.js")>();
|
||||
vi.mock("../../runtime-api.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("../../runtime-api.js")>("../../runtime-api.js");
|
||||
return {
|
||||
...actual,
|
||||
fetchWithSsrFGuard: vi.fn(),
|
||||
|
||||
@@ -4,8 +4,8 @@ import { zalouserPlugin } from "./channel.js";
|
||||
import { setZalouserRuntime } from "./runtime.js";
|
||||
import { sendMessageZalouser, sendReactionZalouser } from "./send.js";
|
||||
|
||||
vi.mock("./send.js", async (importOriginal) => {
|
||||
const actual = (await importOriginal()) as Record<string, unknown>;
|
||||
vi.mock("./send.js", async () => {
|
||||
const actual = (await vi.importActual("./send.js")) as Record<string, unknown>;
|
||||
return {
|
||||
...actual,
|
||||
sendMessageZalouser: vi.fn(async () => ({ ok: true, messageId: "mid-1" })),
|
||||
|
||||
@@ -10,8 +10,10 @@ const mocks = vi.hoisted(() => ({
|
||||
runPreparedReply: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("../agents/agent-scope.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../agents/agent-scope.js")>();
|
||||
vi.mock("../agents/agent-scope.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../agents/agent-scope.js")>(
|
||||
"../agents/agent-scope.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
resolveAgentDir: vi.fn(() => "/tmp/agent"),
|
||||
@@ -20,8 +22,10 @@ vi.mock("../agents/agent-scope.js", async (importOriginal) => {
|
||||
resolveAgentSkillsFilter: vi.fn(() => undefined),
|
||||
};
|
||||
});
|
||||
vi.mock("../agents/model-selection.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../agents/model-selection.js")>();
|
||||
vi.mock("../agents/model-selection.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../agents/model-selection.js")>(
|
||||
"../agents/model-selection.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
resolveModelRefFromString: vi.fn(() => null),
|
||||
|
||||
@@ -8,16 +8,18 @@ const hoisted = vi.hoisted(() => {
|
||||
return { loadSessionStoreMock, scheduleFollowupDrainMock };
|
||||
});
|
||||
|
||||
vi.mock("../../config/sessions.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../config/sessions.js")>();
|
||||
vi.mock("../../config/sessions.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../../config/sessions.js")>(
|
||||
"../../config/sessions.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
loadSessionStore: (...args: unknown[]) => hoisted.loadSessionStoreMock(...args),
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("./queue.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./queue.js")>();
|
||||
vi.mock("./queue.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./queue.js")>("./queue.js");
|
||||
return {
|
||||
...actual,
|
||||
scheduleFollowupDrain: (...args: unknown[]) => hoisted.scheduleFollowupDrainMock(...args),
|
||||
|
||||
@@ -5,13 +5,17 @@ describe("get-reply module imports", () => {
|
||||
it("does not load reset-model runtime on module import", async () => {
|
||||
const resetModelRuntimeLoads = vi.fn();
|
||||
const sandboxMediaRuntimeLoads = vi.fn();
|
||||
vi.doMock("./session-reset-model.runtime.js", async (importOriginal) => {
|
||||
vi.doMock("./session-reset-model.runtime.js", async () => {
|
||||
resetModelRuntimeLoads();
|
||||
return await importOriginal<typeof import("./session-reset-model.runtime.js")>();
|
||||
return await vi.importActual<typeof import("./session-reset-model.runtime.js")>(
|
||||
"./session-reset-model.runtime.js",
|
||||
);
|
||||
});
|
||||
vi.doMock("./stage-sandbox-media.runtime.js", async (importOriginal) => {
|
||||
vi.doMock("./stage-sandbox-media.runtime.js", async () => {
|
||||
sandboxMediaRuntimeLoads();
|
||||
return await importOriginal<typeof import("./stage-sandbox-media.runtime.js")>();
|
||||
return await vi.importActual<typeof import("./stage-sandbox-media.runtime.js")>(
|
||||
"./stage-sandbox-media.runtime.js",
|
||||
);
|
||||
});
|
||||
|
||||
await importFreshModule<typeof import("./get-reply.js")>(
|
||||
|
||||
@@ -70,8 +70,9 @@ vi.mock("../daemon/program-args.js", () => ({
|
||||
resolveGatewayProgramArguments: (opts: unknown) => resolveGatewayProgramArguments(opts),
|
||||
}));
|
||||
|
||||
vi.mock("../daemon/service.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../daemon/service.js")>();
|
||||
vi.mock("../daemon/service.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("../daemon/service.js")>("../daemon/service.js");
|
||||
return {
|
||||
...actual,
|
||||
resolveGatewayService: () => ({
|
||||
@@ -104,8 +105,8 @@ vi.mock("../infra/ports.js", () => ({
|
||||
formatPortDiagnostics: () => ["Port 18789 is already in use."],
|
||||
}));
|
||||
|
||||
vi.mock("../runtime.js", async (importOriginal) => ({
|
||||
...(await importOriginal<typeof import("../runtime.js")>()),
|
||||
vi.mock("../runtime.js", async () => ({
|
||||
...(await vi.importActual<typeof import("../runtime.js")>("../runtime.js")),
|
||||
defaultRuntime: mocks.defaultRuntime,
|
||||
}));
|
||||
|
||||
|
||||
@@ -74,8 +74,8 @@ vi.mock("../globals.js", () => ({
|
||||
setVerbose: (enabled: boolean) => setVerbose(enabled),
|
||||
}));
|
||||
|
||||
vi.mock("../runtime.js", async (importOriginal) => ({
|
||||
...(await importOriginal<typeof import("../runtime.js")>()),
|
||||
vi.mock("../runtime.js", async () => ({
|
||||
...(await vi.importActual<typeof import("../runtime.js")>("../runtime.js")),
|
||||
defaultRuntime: mocks.defaultRuntime,
|
||||
}));
|
||||
|
||||
@@ -105,8 +105,10 @@ vi.mock("../daemon/program-args.js", () => ({
|
||||
}),
|
||||
}));
|
||||
|
||||
vi.mock("../infra/bonjour-discovery.js", async (importOriginal) => ({
|
||||
...(await importOriginal<typeof import("../infra/bonjour-discovery.js")>()),
|
||||
vi.mock("../infra/bonjour-discovery.js", async () => ({
|
||||
...(await vi.importActual<typeof import("../infra/bonjour-discovery.js")>(
|
||||
"../infra/bonjour-discovery.js",
|
||||
)),
|
||||
discoverGatewayBeacons: (opts: unknown) => discoverGatewayBeacons(opts),
|
||||
}));
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ const maybeRunCliInContainerMock = vi.hoisted(() =>
|
||||
vi.fn((argv: string[]) => ({ handled: false, argv })),
|
||||
);
|
||||
|
||||
vi.mock("node:fs", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs")>();
|
||||
vi.mock("node:fs", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs")>("node:fs");
|
||||
type ExistsSyncPath = Parameters<typeof actual.existsSync>[0];
|
||||
return {
|
||||
...actual,
|
||||
@@ -60,8 +60,9 @@ vi.mock("./windows-argv.js", () => ({
|
||||
normalizeWindowsArgv: (argv: string[]) => argv,
|
||||
}));
|
||||
|
||||
vi.mock("./container-target.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./container-target.js")>();
|
||||
vi.mock("./container-target.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("./container-target.js")>("./container-target.js");
|
||||
return {
|
||||
...actual,
|
||||
maybeRunCliInContainer: maybeRunCliInContainerMock,
|
||||
|
||||
@@ -132,8 +132,10 @@ vi.mock("../config/config.js", () => ({
|
||||
resolveGatewayPort: mocks.resolveGatewayPort,
|
||||
}));
|
||||
|
||||
vi.mock("../infra/bonjour-discovery.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../infra/bonjour-discovery.js")>();
|
||||
vi.mock("../infra/bonjour-discovery.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../infra/bonjour-discovery.js")>(
|
||||
"../infra/bonjour-discovery.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
discoverGatewayBeacons: mocks.discoverGatewayBeacons,
|
||||
|
||||
@@ -27,16 +27,17 @@ const resolveStorePathMock = vi.hoisted(() =>
|
||||
);
|
||||
const loadSessionStoreMock = vi.hoisted(() => vi.fn(() => ({})));
|
||||
|
||||
vi.mock("../config/config.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/config.js")>();
|
||||
vi.mock("../config/config.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/config.js")>("../config/config.js");
|
||||
return {
|
||||
...actual,
|
||||
loadConfig: loadConfigMock,
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../config/sessions.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/sessions.js")>();
|
||||
vi.mock("../config/sessions.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("../config/sessions.js")>("../config/sessions.js");
|
||||
return {
|
||||
...actual,
|
||||
resolveStorePath: resolveStorePathMock,
|
||||
|
||||
@@ -59,8 +59,8 @@ async function makeStorePath() {
|
||||
return { storePath, cleanup: async () => {} };
|
||||
}
|
||||
|
||||
vi.mock("node:fs", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs")>();
|
||||
vi.mock("node:fs", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs")>("node:fs");
|
||||
const pathMod = await import("node:path");
|
||||
const absInMock = (p: string) => pathMod.resolve(p);
|
||||
const isFixtureInMock = (p: string) => {
|
||||
@@ -155,8 +155,8 @@ vi.mock("node:fs", async (importOriginal) => {
|
||||
return { ...wrapped, default: wrapped };
|
||||
});
|
||||
|
||||
vi.mock("node:fs/promises", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs/promises")>();
|
||||
vi.mock("node:fs/promises", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs/promises")>("node:fs/promises");
|
||||
const wrapped = {
|
||||
...actual,
|
||||
mkdir: async (p: string, _opts?: unknown) => {
|
||||
|
||||
@@ -10,8 +10,8 @@ const fsMocks = vi.hoisted(() => ({
|
||||
realpath: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("node:fs/promises", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs/promises")>();
|
||||
vi.mock("node:fs/promises", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs/promises")>("node:fs/promises");
|
||||
return {
|
||||
...actual,
|
||||
default: {
|
||||
@@ -24,8 +24,8 @@ vi.mock("node:fs/promises", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("node:child_process", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:child_process")>();
|
||||
vi.mock("node:child_process", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:child_process")>("node:child_process");
|
||||
return {
|
||||
...actual,
|
||||
execFileSync: childProcessMocks.execFileSync,
|
||||
|
||||
@@ -92,8 +92,10 @@ vi.mock("ws", () => ({
|
||||
WebSocket: MockWebSocket,
|
||||
}));
|
||||
|
||||
vi.mock("../infra/device-auth-store.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../infra/device-auth-store.js")>();
|
||||
vi.mock("../infra/device-auth-store.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../infra/device-auth-store.js")>(
|
||||
"../infra/device-auth-store.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
loadDeviceAuthToken: (...args: unknown[]) => loadDeviceAuthTokenMock(...args),
|
||||
@@ -102,8 +104,8 @@ vi.mock("../infra/device-auth-store.js", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../logger.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../logger.js")>();
|
||||
vi.mock("../logger.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../logger.js")>("../logger.js");
|
||||
return {
|
||||
...actual,
|
||||
logDebug: (...args: unknown[]) => logDebugMock(...args),
|
||||
|
||||
@@ -46,8 +46,9 @@ Sender labels:
|
||||
example
|
||||
<<<END_EXTERNAL_UNTRUSTED_CONTENT id="deadbeefdeadbeef">>>`;
|
||||
|
||||
vi.mock("../session-utils.js", async (importOriginal) => {
|
||||
const original = await importOriginal<typeof import("../session-utils.js")>();
|
||||
vi.mock("../session-utils.js", async () => {
|
||||
const original =
|
||||
await vi.importActual<typeof import("../session-utils.js")>("../session-utils.js");
|
||||
return {
|
||||
...original,
|
||||
loadSessionEntry: (rawKey: string) => ({
|
||||
@@ -116,8 +117,9 @@ vi.mock("../../sessions/transcript-events.js", () => ({
|
||||
),
|
||||
}));
|
||||
|
||||
vi.mock("../../media/store.js", async (importOriginal) => {
|
||||
const original = await importOriginal<typeof import("../../media/store.js")>();
|
||||
vi.mock("../../media/store.js", async () => {
|
||||
const original =
|
||||
await vi.importActual<typeof import("../../media/store.js")>("../../media/store.js");
|
||||
return {
|
||||
...original,
|
||||
saveMediaBuffer: vi.fn(async (buffer: Buffer, contentType?: string, subdir?: string) => {
|
||||
|
||||
@@ -9,8 +9,8 @@ const getLatestSubagentRunByChildSessionKeyMock = vi.fn();
|
||||
const replaceSubagentRunAfterSteerMock = vi.fn();
|
||||
const chatSendMock = vi.fn();
|
||||
|
||||
vi.mock("../session-utils.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../session-utils.js")>();
|
||||
vi.mock("../session-utils.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../session-utils.js")>("../session-utils.js");
|
||||
return {
|
||||
...actual,
|
||||
loadSessionEntry: (...args: unknown[]) => loadSessionEntryMock(...args),
|
||||
@@ -19,8 +19,10 @@ vi.mock("../session-utils.js", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../../agents/subagent-registry-read.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../agents/subagent-registry-read.js")>();
|
||||
vi.mock("../../agents/subagent-registry-read.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../../agents/subagent-registry-read.js")>(
|
||||
"../../agents/subagent-registry-read.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
getLatestSubagentRunByChildSessionKey: (...args: unknown[]) =>
|
||||
|
||||
@@ -32,16 +32,18 @@ vi.mock("../../config/sessions.js", () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("../../infra/openclaw-root.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../infra/openclaw-root.js")>();
|
||||
vi.mock("../../infra/openclaw-root.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../../infra/openclaw-root.js")>(
|
||||
"../../infra/openclaw-root.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
resolveOpenClawPackageRoot: async () => "/tmp/openclaw",
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../../infra/restart-sentinel.js", async (importOriginal) => {
|
||||
const actual = await importOriginal();
|
||||
vi.mock("../../infra/restart-sentinel.js", async () => {
|
||||
const actual = await vi.importActual("../../infra/restart-sentinel.js");
|
||||
return {
|
||||
...(actual as Record<string, unknown>),
|
||||
writeRestartSentinel: async (payload: RestartSentinelPayload) => {
|
||||
|
||||
@@ -7,17 +7,20 @@ const parseProcCmdlineMock = vi.hoisted(() => vi.fn());
|
||||
const isGatewayArgvMock = vi.hoisted(() => vi.fn());
|
||||
const findGatewayPidsOnPortSyncMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("node:child_process", async (importOriginal) => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(importOriginal, {
|
||||
spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
|
||||
});
|
||||
});
|
||||
|
||||
vi.mock("node:fs", async (importOriginal) => {
|
||||
vi.mock("node:child_process", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(
|
||||
importOriginal,
|
||||
() => vi.importActual<typeof import("node:child_process")>("node:child_process"),
|
||||
{
|
||||
spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
vi.mock("node:fs", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(
|
||||
() => vi.importActual<typeof import("node:fs")>("node:fs"),
|
||||
{
|
||||
readFileSync: (...args: unknown[]) => readFileSyncMock(...args),
|
||||
},
|
||||
|
||||
@@ -160,8 +160,10 @@ const providerRuntimeMocks = vi.hoisted(() => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("../plugins/provider-runtime.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../plugins/provider-runtime.js")>();
|
||||
vi.mock("../plugins/provider-runtime.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../plugins/provider-runtime.js")>(
|
||||
"../plugins/provider-runtime.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
...providerRuntimeMocks.providerRuntimeMock,
|
||||
@@ -169,8 +171,10 @@ vi.mock("../plugins/provider-runtime.js", async (importOriginal) => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../plugins/provider-runtime.ts", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../plugins/provider-runtime.ts")>();
|
||||
vi.mock("../plugins/provider-runtime.ts", async () => {
|
||||
const actual = await vi.importActual<typeof import("../plugins/provider-runtime.ts")>(
|
||||
"../plugins/provider-runtime.ts",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
...providerRuntimeMocks.providerRuntimeMock,
|
||||
|
||||
@@ -4,19 +4,22 @@ const spawnSyncMock = vi.hoisted(() => vi.fn());
|
||||
const resolveLsofCommandSyncMock = vi.hoisted(() => vi.fn());
|
||||
const resolveGatewayPortMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("node:child_process", async (importOriginal) => {
|
||||
vi.mock("node:child_process", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(importOriginal, {
|
||||
spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
|
||||
});
|
||||
return mockNodeBuiltinModule(
|
||||
() => vi.importActual<typeof import("node:child_process")>("node:child_process"),
|
||||
{
|
||||
spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
vi.mock("./ports-lsof.js", () => ({
|
||||
resolveLsofCommandSync: (...args: unknown[]) => resolveLsofCommandSyncMock(...args),
|
||||
}));
|
||||
|
||||
vi.mock("../config/paths.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../config/paths.js")>();
|
||||
vi.mock("../config/paths.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../config/paths.js")>("../config/paths.js");
|
||||
return {
|
||||
...actual,
|
||||
resolveGatewayPort: (...args: unknown[]) => resolveGatewayPortMock(...args),
|
||||
|
||||
@@ -4,16 +4,16 @@ import { captureEnv } from "../test-utils/env.js";
|
||||
const readFileSyncMock = vi.hoisted(() => vi.fn());
|
||||
const readFileMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("node:fs", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs")>();
|
||||
vi.mock("node:fs", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs")>("node:fs");
|
||||
return {
|
||||
...actual,
|
||||
readFileSync: readFileSyncMock,
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("node:fs/promises", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:fs/promises")>();
|
||||
vi.mock("node:fs/promises", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:fs/promises")>("node:fs/promises");
|
||||
return {
|
||||
...actual,
|
||||
default: {
|
||||
|
||||
@@ -29,16 +29,18 @@ const {
|
||||
fetchMock,
|
||||
} = hoisted;
|
||||
|
||||
vi.mock("@mariozechner/pi-ai", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("@mariozechner/pi-ai")>();
|
||||
vi.mock("@mariozechner/pi-ai", async () => {
|
||||
const actual = await vi.importActual<typeof import("@mariozechner/pi-ai")>("@mariozechner/pi-ai");
|
||||
return {
|
||||
...actual,
|
||||
complete: completeMock,
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../agents/models-config.js", async (importOriginal) => ({
|
||||
...(await importOriginal<typeof import("../agents/models-config.js")>()),
|
||||
vi.mock("../agents/models-config.js", async () => ({
|
||||
...(await vi.importActual<typeof import("../agents/models-config.js")>(
|
||||
"../agents/models-config.js",
|
||||
)),
|
||||
ensureOpenClawModelsJson: ensureOpenClawModelsJsonMock,
|
||||
}));
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ import { withEnvAsync } from "../test-utils/env.js";
|
||||
let MEDIA_DIR = "";
|
||||
const cleanOldMedia = vi.fn().mockResolvedValue(undefined);
|
||||
|
||||
vi.mock("./store.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("./store.js")>();
|
||||
vi.mock("./store.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("./store.js")>("./store.js");
|
||||
return {
|
||||
...actual,
|
||||
getMediaDir: () => MEDIA_DIR,
|
||||
|
||||
@@ -14,19 +14,19 @@ vi.mock("./facade-runtime.js", () => ({
|
||||
tryLoadActivatedBundledPluginPublicSurfaceModuleSync,
|
||||
}));
|
||||
|
||||
vi.mock("node:fs/promises", async (importOriginal) => {
|
||||
vi.mock("node:fs/promises", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(
|
||||
importOriginal,
|
||||
() => vi.importActual<typeof import("node:fs/promises")>("node:fs/promises"),
|
||||
{ mkdir, access, rename },
|
||||
{ mirrorToDefault: true },
|
||||
);
|
||||
});
|
||||
|
||||
vi.mock("node:os", async (importOriginal) => {
|
||||
vi.mock("node:os", async () => {
|
||||
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
|
||||
return mockNodeBuiltinModule(
|
||||
importOriginal,
|
||||
() => vi.importActual<typeof import("node:os")>("node:os"),
|
||||
{ homedir: () => "/home/test" },
|
||||
{ mirrorToDefault: true },
|
||||
);
|
||||
|
||||
@@ -91,8 +91,9 @@ const pluginRuntimeState = vi.hoisted(
|
||||
}) satisfies { registry: PluginRegistry },
|
||||
);
|
||||
|
||||
vi.mock("../infra/home-dir.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../infra/home-dir.js")>();
|
||||
vi.mock("../infra/home-dir.js", async () => {
|
||||
const actual =
|
||||
await vi.importActual<typeof import("../infra/home-dir.js")>("../infra/home-dir.js");
|
||||
return {
|
||||
...actual,
|
||||
expandHomePrefix: (value: string) => {
|
||||
|
||||
@@ -35,9 +35,10 @@ vi.mock("../plugins/web-search-providers.js", () => ({
|
||||
resolveBundledPluginWebSearchProviders: resolveBundledPluginWebSearchProvidersMock,
|
||||
}));
|
||||
|
||||
vi.mock("../plugins/web-search-providers.runtime.js", async (importOriginal) => {
|
||||
const actual =
|
||||
await importOriginal<typeof import("../plugins/web-search-providers.runtime.js")>();
|
||||
vi.mock("../plugins/web-search-providers.runtime.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../plugins/web-search-providers.runtime.js")>(
|
||||
"../plugins/web-search-providers.runtime.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
resolvePluginWebSearchProviders: resolvePluginWebSearchProvidersMock,
|
||||
@@ -48,8 +49,10 @@ vi.mock("../plugins/web-fetch-providers.js", () => ({
|
||||
resolveBundledPluginWebFetchProviders: resolveBundledPluginWebFetchProvidersMock,
|
||||
}));
|
||||
|
||||
vi.mock("../plugins/web-fetch-providers.runtime.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../plugins/web-fetch-providers.runtime.js")>();
|
||||
vi.mock("../plugins/web-fetch-providers.runtime.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../plugins/web-fetch-providers.runtime.js")>(
|
||||
"../plugins/web-fetch-providers.runtime.js",
|
||||
);
|
||||
return {
|
||||
...actual,
|
||||
resolvePluginWebFetchProviders: resolvePluginWebFetchProvidersMock,
|
||||
|
||||
@@ -12,8 +12,8 @@ const { spawnSyncMock } = vi.hoisted(() => ({
|
||||
spawnSyncMock: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("node:child_process", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("node:child_process")>();
|
||||
vi.mock("node:child_process", async () => {
|
||||
const actual = await vi.importActual<typeof import("node:child_process")>("node:child_process");
|
||||
return {
|
||||
...actual,
|
||||
spawnSync: spawnSyncMock,
|
||||
|
||||
Reference in New Issue
Block a user