test: share execFile builtin mock

This commit is contained in:
Peter Steinberger
2026-04-20 19:20:46 +01:00
parent 901f2f38fc
commit bcf17447f0
3 changed files with 18 additions and 16 deletions

View File

@@ -6,14 +6,11 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
const execFileMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async () => {
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return mockNodeBuiltinModule(
() => vi.importActual<typeof import("node:child_process")>("node:child_process"),
{
execFile: Object.assign(execFileMock, {
__promisify__: vi.fn(),
}) as typeof import("node:child_process").execFile,
},
const { mockNodeChildProcessExecFile } = await import("../../test/helpers/node-builtin-mocks.js");
return mockNodeChildProcessExecFile(
Object.assign(execFileMock, {
__promisify__: vi.fn(),
}) as typeof import("node:child_process").execFile,
);
});

View File

@@ -5,14 +5,11 @@ import { importFreshModule } from "../../test/helpers/import-fresh.js";
const execFileMock = vi.hoisted(() => vi.fn());
vi.mock("node:child_process", async () => {
const { mockNodeBuiltinModule } = await import("../../test/helpers/node-builtin-mocks.js");
return mockNodeBuiltinModule(
() => vi.importActual<typeof import("node:child_process")>("node:child_process"),
{
execFile: Object.assign(execFileMock, {
__promisify__: vi.fn(),
}) as typeof import("node:child_process").execFile,
},
const { mockNodeChildProcessExecFile } = await import("../../test/helpers/node-builtin-mocks.js");
return mockNodeChildProcessExecFile(
Object.assign(execFileMock, {
__promisify__: vi.fn(),
}) as typeof import("node:child_process").execFile,
);
});

View File

@@ -49,3 +49,11 @@ export async function mockNodeChildProcessSpawnSync(
spawnSync: (...args: unknown[]) => spawnSync(...args),
} as Partial<typeof import("node:child_process")>);
}
export async function mockNodeChildProcessExecFile(
execFile: typeof import("node:child_process").execFile,
): Promise<typeof import("node:child_process")> {
return mockNodeBuiltinModule(() => import("node:child_process"), {
execFile,
} as Partial<typeof import("node:child_process")>);
}