mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-13 02:01:16 +00:00
85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import { runStatusJsonCommand } from "./status-json-command.ts";
|
|
|
|
const mocks = vi.hoisted(() => ({
|
|
writeRuntimeJson: vi.fn(),
|
|
resolveStatusJsonOutput: vi.fn(async (input) => ({ built: true, input })),
|
|
}));
|
|
|
|
vi.mock("../runtime.js", () => ({
|
|
writeRuntimeJson: mocks.writeRuntimeJson,
|
|
}));
|
|
|
|
vi.mock("./status-json-runtime.ts", () => ({
|
|
resolveStatusJsonOutput: mocks.resolveStatusJsonOutput,
|
|
}));
|
|
|
|
describe("runStatusJsonCommand", () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
it("shares the fast-json scan and output flow", async () => {
|
|
const runtime = {
|
|
log: vi.fn(),
|
|
error: vi.fn(),
|
|
exit: vi.fn(),
|
|
} as never;
|
|
const scan = {
|
|
cfg: { gateway: {} },
|
|
sourceConfig: { gateway: {} },
|
|
summary: { ok: true },
|
|
update: { root: null, installKind: "package" as const, packageManager: "npm" as const },
|
|
osSummary: { platform: "linux" },
|
|
memory: null,
|
|
memoryPlugin: null,
|
|
tailscaleMode: "off",
|
|
tailscaleDns: null,
|
|
tailscaleHttpsUrl: null,
|
|
gatewayMode: "local" as const,
|
|
gatewayConnection: {
|
|
url: "ws://127.0.0.1:18789",
|
|
urlSource: "config",
|
|
message: "Gateway target: ws://127.0.0.1:18789",
|
|
},
|
|
remoteUrlMissing: false,
|
|
gatewayReachable: true,
|
|
gatewayProbe: null,
|
|
gatewayProbeAuth: { token: "tok" },
|
|
gatewaySelf: null,
|
|
gatewayProbeAuthWarning: null,
|
|
agentStatus: [],
|
|
secretDiagnostics: [],
|
|
};
|
|
const scanStatusJsonFast = vi.fn(async () => scan);
|
|
|
|
await runStatusJsonCommand({
|
|
opts: { deep: true, usage: true, timeoutMs: 1234, all: true },
|
|
runtime,
|
|
scanStatusJsonFast,
|
|
includeSecurityAudit: true,
|
|
includePluginCompatibility: true,
|
|
suppressHealthErrors: true,
|
|
});
|
|
|
|
expect(scanStatusJsonFast).toHaveBeenCalledWith({ timeoutMs: 1234, all: true }, runtime);
|
|
expect(mocks.resolveStatusJsonOutput).toHaveBeenCalledWith({
|
|
scan,
|
|
opts: { deep: true, usage: true, timeoutMs: 1234, all: true },
|
|
includeSecurityAudit: true,
|
|
includePluginCompatibility: true,
|
|
suppressHealthErrors: true,
|
|
});
|
|
expect(mocks.writeRuntimeJson).toHaveBeenCalledWith(runtime, {
|
|
built: true,
|
|
input: {
|
|
scan,
|
|
opts: { deep: true, usage: true, timeoutMs: 1234, all: true },
|
|
includeSecurityAudit: true,
|
|
includePluginCompatibility: true,
|
|
suppressHealthErrors: true,
|
|
},
|
|
});
|
|
});
|
|
});
|