test: expand builtin mock helper usage

This commit is contained in:
Peter Steinberger
2026-04-03 18:49:21 +01:00
parent 613393621c
commit 3edfc494df
10 changed files with 31 additions and 41 deletions

View File

@@ -6,11 +6,10 @@ const { spawnMock } = vi.hoisted(() => ({
})); }));
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawn: spawnMock, spawn: spawnMock,
}; });
}); });
import { import {

View File

@@ -4,11 +4,10 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
import { prepareRestartScript, runRestartScript } from "./restart-helper.js"; import { prepareRestartScript, runRestartScript } from "./restart-helper.js";
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawn: vi.fn(), spawn: vi.fn(),
}; });
}); });
describe("restart-helper", () => { describe("restart-helper", () => {

View File

@@ -5,11 +5,10 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
const execFileMock = vi.hoisted(() => vi.fn()); const execFileMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
execFile: execFileMock, execFile: execFileMock,
}; });
}); });
import { splitArgsPreservingQuotes } from "./arg-split.js"; import { splitArgsPreservingQuotes } from "./arg-split.js";

View File

@@ -4,11 +4,10 @@ import { configHandlers, resolveConfigOpenCommand } from "./config.js";
import { createConfigHandlerHarness } from "./config.test-helpers.js"; import { createConfigHandlerHarness } from "./config.test-helpers.js";
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
execFile: vi.fn(), execFile: vi.fn(),
}; });
}); });
function invokeExecFileCallback(args: unknown[], error: Error | null) { function invokeExecFileCallback(args: unknown[], error: Error | null) {

View File

@@ -5,11 +5,10 @@ import { importFreshModule } from "../../test/helpers/import-fresh.js";
const execFileMock = vi.hoisted(() => vi.fn()); const execFileMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
execFile: (...args: unknown[]) => execFileMock(...args), execFile: (...args: unknown[]) => execFileMock(...args),
}; });
}); });
const originalVitest = process.env.VITEST; const originalVitest = process.env.VITEST;

View File

@@ -4,11 +4,10 @@ import { afterEach, describe, expect, it, vi } from "vitest";
const spawnSyncMock = vi.hoisted(() => vi.fn()); const spawnSyncMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawnSync: (...args: unknown[]) => spawnSyncMock(...args), spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
}; });
}); });
import { resolveOsSummary } from "./os-summary.js"; import { resolveOsSummary } from "./os-summary.js";

View File

@@ -7,11 +7,10 @@ const triggerOpenClawRestartMock = vi.hoisted(() => vi.fn());
const scheduleDetachedLaunchdRestartHandoffMock = vi.hoisted(() => vi.fn()); const scheduleDetachedLaunchdRestartHandoffMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawn: (...args: unknown[]) => spawnMock(...args), spawn: (...args: unknown[]) => spawnMock(...args),
}; });
}); });
vi.mock("./restart.js", () => ({ vi.mock("./restart.js", () => ({
triggerOpenClawRestart: (...args: unknown[]) => triggerOpenClawRestartMock(...args), triggerOpenClawRestart: (...args: unknown[]) => triggerOpenClawRestartMock(...args),

View File

@@ -11,12 +11,11 @@ const mockResolveGatewayPort = vi.hoisted(() => vi.fn(() => 18789));
const mockRestartWarn = vi.hoisted(() => vi.fn()); const mockRestartWarn = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawnSync: (...args: unknown[]) => mockSpawnSync(...args), spawnSync: (...args: unknown[]) => mockSpawnSync(...args),
execFileSync: vi.fn(), execFileSync: vi.fn(),
}; });
}); });
vi.mock("../config/paths.js", () => ({ vi.mock("../config/paths.js", () => ({

View File

@@ -5,11 +5,10 @@ const resolveLsofCommandSyncMock = vi.hoisted(() => vi.fn());
const resolveGatewayPortMock = vi.hoisted(() => vi.fn()); const resolveGatewayPortMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual, spawnSync: (...args: unknown[]) => spawnSyncMock(...args),
spawnSync: (...args: Parameters<typeof actual.spawnSync>) => spawnSyncMock(...args), });
};
}); });
vi.mock("./ports-lsof.js", () => ({ vi.mock("./ports-lsof.js", () => ({

View File

@@ -5,11 +5,10 @@ const { spawnMock } = vi.hoisted(() => ({
})); }));
vi.mock("node:child_process", async (importOriginal) => { vi.mock("node:child_process", async (importOriginal) => {
const actual = await importOriginal<typeof import("node:child_process")>(); const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return { return mockNodeBuiltinModule(importOriginal, {
...actual,
spawn: (...args: unknown[]) => spawnMock(...args), spawn: (...args: unknown[]) => spawnMock(...args),
}; });
}); });
let killProcessTree: typeof import("./kill-tree.js").killProcessTree; let killProcessTree: typeof import("./kill-tree.js").killProcessTree;