import { beforeEach, describe, expect, it, vi } from "vitest" ;
import { createGlobalCommandRunner } from "./shared.js" ;
const runCommandWithTimeout = vi.hoisted(() => vi.fn());
vi.mock("../../process/exec.js" , () => ({
runCommandWithTimeout,
}));
describe("createGlobalCommandRunner" , () => {
beforeEach(() => {
vi.clearAllMocks();
runCommandWithTimeout.mockResolvedValue({
stdout: "" ,
stderr: "" ,
code: 0 ,
signal: null ,
killed: false ,
termination: "exit" ,
});
});
it("forwards argv/options and maps exec result shape" , async () => {
runCommandWithTimeout.mockResolvedValueOnce({
stdout: "out" ,
stderr: "err" ,
code: 17 ,
signal: null ,
killed: false ,
termination: "exit" ,
});
const runCommand = createGlobalCommandRunner();
const result = await runCommand(["npm" , "root" , "-g" ], {
timeoutMs: 1200 ,
cwd: "/tmp/openclaw" ,
env: { OPENCLAW_TEST: "1" },
});
expect(runCommandWithTimeout).toHaveBeenCalledWith(["npm" , "root" , "-g" ], {
timeoutMs: 1200 ,
cwd: "/tmp/openclaw" ,
env: { OPENCLAW_TEST: "1" },
});
expect(result).toEqual({
stdout: "out" ,
stderr: "err" ,
code: 17 ,
});
});
});
Messung V0.5 in Prozent C=99 H=98 G=98
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland