mirror of https://github.com/openclaw/openclaw.git
test: stabilize json runtime captures (#52428) (thanks @karanuppal)
This commit is contained in:
parent
a2999c6cfb
commit
aaa6068c08
|
|
@ -7,7 +7,10 @@ const runAcpClientInteractive = vi.fn(async (_opts: unknown) => {});
|
|||
const serveAcpGateway = vi.fn(async (_opts: unknown) => {});
|
||||
|
||||
const defaultRuntime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn(),
|
||||
writeJson: vi.fn(),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
@ -52,7 +55,10 @@ describe("acp cli option collisions", () => {
|
|||
beforeEach(() => {
|
||||
runAcpClientInteractive.mockClear();
|
||||
serveAcpGateway.mockClear();
|
||||
defaultRuntime.log.mockClear();
|
||||
defaultRuntime.error.mockClear();
|
||||
defaultRuntime.writeStdout.mockClear();
|
||||
defaultRuntime.writeJson.mockClear();
|
||||
defaultRuntime.exit.mockClear();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,12 @@ vi.mock("./browser-cli-shared.js", () => ({
|
|||
const runtime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
vi.mock("../runtime.js", () => ({
|
||||
|
|
|
|||
|
|
@ -20,6 +20,12 @@ const mocks = vi.hoisted(() => {
|
|||
runtime: {
|
||||
log: runtimeLog,
|
||||
error: runtimeError,
|
||||
writeStdout: vi.fn((value: string) =>
|
||||
runtimeLog(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
),
|
||||
writeJson: vi.fn((value: unknown, space = 2) =>
|
||||
runtimeLog(JSON.stringify(value, null, space)),
|
||||
),
|
||||
exit: runtimeExit,
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ const mocks = vi.hoisted(() => {
|
|||
runtime: {
|
||||
log: runtimeLog,
|
||||
error: runtimeError,
|
||||
writeStdout: vi.fn((value: string) =>
|
||||
runtimeLog(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
),
|
||||
writeJson: vi.fn((value: unknown, space = 2) =>
|
||||
runtimeLog(JSON.stringify(value, null, space)),
|
||||
),
|
||||
exit: runtimeExit,
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,6 +8,12 @@ const mocks = vi.hoisted(() => ({
|
|||
runtime: {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
mocks.runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
mocks.runtime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
},
|
||||
}));
|
||||
|
|
@ -55,6 +61,8 @@ describe("browser state option collisions", () => {
|
|||
mocks.runBrowserResizeWithOutput.mockClear();
|
||||
mocks.runtime.log.mockClear();
|
||||
mocks.runtime.error.mockClear();
|
||||
mocks.runtime.writeStdout.mockClear();
|
||||
mocks.runtime.writeJson.mockClear();
|
||||
mocks.runtime.exit.mockClear();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ vi.mock("../runtime.js", async (importOriginal) => {
|
|||
defaultRuntime: {
|
||||
log: (...args: unknown[]) => mockLog(...args),
|
||||
error: (...args: unknown[]) => mockError(...args),
|
||||
writeStdout: (value: string) => mockLog(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
writeJson: (value: unknown, space = 2) =>
|
||||
mockLog(JSON.stringify(value, null, space > 0 ? space : undefined)),
|
||||
exit: (code: number) => mockExit(code),
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ vi.mock("../runtime.js", () => ({
|
|||
defaultRuntime: {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn(),
|
||||
writeJson: vi.fn(),
|
||||
exit: (code: number) => {
|
||||
throw new Error(`__exit__:${code}`);
|
||||
|
|
|
|||
|
|
@ -28,8 +28,12 @@ vi.mock("../../runtime.js", () => ({
|
|||
defaultRuntime: {
|
||||
log: (message: string) => runtimeLogs.push(message),
|
||||
error: (message: string) => runtimeErrors.push(message),
|
||||
writeJson: (value: unknown, space = 2) =>
|
||||
runtimeLogs.push(JSON.stringify(value, null, space > 0 ? space : undefined)),
|
||||
writeStdout: (value: string) => {
|
||||
runtimeLogs.push(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
},
|
||||
writeJson: (value: unknown, space = 2) => {
|
||||
runtimeLogs.push(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
},
|
||||
exit: (code: number) => {
|
||||
throw new Error(`__exit__:${code}`);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -129,6 +129,12 @@ const runtimeLogs: string[] = [];
|
|||
vi.mock("../../runtime.js", () => ({
|
||||
defaultRuntime: {
|
||||
log: (message: string) => runtimeLogs.push(message),
|
||||
writeStdout: (value: string) => {
|
||||
runtimeLogs.push(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
},
|
||||
writeJson: (value: unknown, space = 2) => {
|
||||
runtimeLogs.push(JSON.stringify(value, null, space));
|
||||
},
|
||||
error: vi.fn(),
|
||||
exit: vi.fn(),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ export const runtimeLogs: string[] = [];
|
|||
type LifecycleRuntimeHarness = OutputRuntimeEnv & {
|
||||
error: MockFn<OutputRuntimeEnv["error"]>;
|
||||
exit: MockFn<OutputRuntimeEnv["exit"]>;
|
||||
writeStdout: MockFn<(value: string) => void>;
|
||||
writeJson: MockFn<(value: unknown, space?: number) => void>;
|
||||
};
|
||||
|
||||
type LifecycleServiceHarness = GatewayService & {
|
||||
|
|
@ -24,13 +26,13 @@ export const defaultRuntime: LifecycleRuntimeHarness = {
|
|||
log: (...args: unknown[]) => {
|
||||
runtimeLogs.push(args.map((arg) => String(arg)).join(" "));
|
||||
},
|
||||
writeStdout: (value: string) => {
|
||||
runtimeLogs.push(value);
|
||||
},
|
||||
writeJson: (value: unknown, space = 2) => {
|
||||
runtimeLogs.push(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
},
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtimeLogs.push(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtimeLogs.push(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
}),
|
||||
exit: vi.fn((code: number) => {
|
||||
throw new Error(`__exit__:${code}`);
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -14,7 +14,12 @@ const withProgress = vi.fn(async (_opts: unknown, fn: () => Promise<unknown>) =>
|
|||
const runtime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeJson: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtime.log(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ vi.mock("../runtime.js", () => ({
|
|||
writeJson: (value: unknown, space = 2) =>
|
||||
mocks.log(JSON.stringify(value, null, space > 0 ? space : undefined)),
|
||||
exit: (...args: unknown[]) => mocks.exit(...args),
|
||||
writeStdout: (value: string) => mocks.log(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
writeJson: (value: unknown, space = 2) => mocks.log(JSON.stringify(value, null, space)),
|
||||
},
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ vi.mock("../runtime.js", () => ({
|
|||
defaultRuntime: {
|
||||
log: (...args: unknown[]) => mockLog(...args),
|
||||
error: (...args: unknown[]) => mockError(...args),
|
||||
writeStdout: (value: string) => mockLog(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
writeJson: (value: unknown, space = 2) =>
|
||||
mockLog(JSON.stringify(value, null, space > 0 ? space : undefined)),
|
||||
exit: (code: number) => mockExit(code),
|
||||
|
|
|
|||
|
|
@ -15,6 +15,12 @@ const createDefaultDepsMock = vi.fn(() => ({ deps: true }));
|
|||
const runtime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ const backupVerifyCommand = vi.fn();
|
|||
const runtime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,12 @@ const setVerbose = vi.fn();
|
|||
const runtime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
runtime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ const mocks = vi.hoisted(() => ({
|
|||
runtime: {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
mocks.runtime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
mocks.runtime.log(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -23,7 +23,13 @@ vi.mock("./program/routes.js", () => ({
|
|||
}));
|
||||
|
||||
vi.mock("../runtime.js", () => ({
|
||||
defaultRuntime: { error: vi.fn(), log: vi.fn(), exit: vi.fn() },
|
||||
defaultRuntime: {
|
||||
error: vi.fn(),
|
||||
log: vi.fn(),
|
||||
writeStdout: vi.fn(),
|
||||
writeJson: vi.fn(),
|
||||
exit: vi.fn(),
|
||||
},
|
||||
}));
|
||||
|
||||
describe("tryRouteCli", () => {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export function createCliRuntimeCapture(): CliRuntimeCapture {
|
|||
runtimeErrors.push(stringifyArgs(args));
|
||||
},
|
||||
writeStdout: (value: string) => {
|
||||
runtimeLogs.push(value);
|
||||
runtimeLogs.push(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
},
|
||||
writeJson: (value: unknown, space = 2) => {
|
||||
runtimeLogs.push(JSON.stringify(value, null, space > 0 ? space : undefined));
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ const updateWizardCommand = vi.fn(async (_opts: unknown) => {});
|
|||
const defaultRuntime = {
|
||||
log: vi.fn(),
|
||||
error: vi.fn(),
|
||||
writeStdout: vi.fn((value: string) => {
|
||||
defaultRuntime.log(value.endsWith("\n") ? value.slice(0, -1) : value);
|
||||
}),
|
||||
writeJson: vi.fn((value: unknown, space = 2) => {
|
||||
defaultRuntime.log(JSON.stringify(value, null, space));
|
||||
}),
|
||||
exit: vi.fn(),
|
||||
};
|
||||
|
||||
|
|
@ -41,6 +47,8 @@ describe("update cli option collisions", () => {
|
|||
updateWizardCommand.mockClear();
|
||||
defaultRuntime.log.mockClear();
|
||||
defaultRuntime.error.mockClear();
|
||||
defaultRuntime.writeStdout.mockClear();
|
||||
defaultRuntime.writeJson.mockClear();
|
||||
defaultRuntime.exit.mockClear();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -139,6 +139,9 @@ vi.mock("../runtime.js", () => ({
|
|||
defaultRuntime: {
|
||||
log: runtimeLog,
|
||||
error: runtimeError,
|
||||
writeStdout: vi.fn((value: string) =>
|
||||
runtimeLog(value.endsWith("\n") ? value.slice(0, -1) : value),
|
||||
),
|
||||
writeJson: runtimeWriteJson,
|
||||
exit: runtimeExit,
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue