refactor(test): dedupe doctor harness mock payload factories

This commit is contained in:
Peter Steinberger
2026-02-16 22:52:24 +00:00
parent 230e1d9962
commit 486b7379d4

View File

@@ -20,18 +20,47 @@ function setStdinTty(value: boolean | undefined) {
}
}
function createGatewayUpdateResult() {
return {
status: "skipped",
mode: "unknown",
steps: [],
durationMs: 0,
} as const;
}
function createCommandWithTimeoutResult() {
return {
stdout: "",
stderr: "",
code: 0,
signal: null,
killed: false,
} as const;
}
function createLegacyConfigSnapshot() {
return {
path: "/tmp/openclaw.json",
exists: false,
raw: null,
parsed: {},
valid: true,
config: {},
issues: [],
legacyIssues: [],
} as const;
}
export const readConfigFileSnapshot = vi.fn() as unknown as MockFn;
export const confirm = vi.fn().mockResolvedValue(true) as unknown as MockFn;
export const select = vi.fn().mockResolvedValue("node") as unknown as MockFn;
export const note = vi.fn() as unknown as MockFn;
export const writeConfigFile = vi.fn().mockResolvedValue(undefined) as unknown as MockFn;
export const resolveOpenClawPackageRoot = vi.fn().mockResolvedValue(null) as unknown as MockFn;
export const runGatewayUpdate = vi.fn().mockResolvedValue({
status: "skipped",
mode: "unknown",
steps: [],
durationMs: 0,
}) as unknown as MockFn;
export const runGatewayUpdate = vi
.fn()
.mockResolvedValue(createGatewayUpdateResult()) as unknown as MockFn;
export const migrateLegacyConfig = vi.fn((raw: unknown) => ({
config: raw as Record<string, unknown>,
changes: ["Moved routing.allowFrom → channels.whatsapp.allowFrom."],
@@ -41,28 +70,17 @@ export const runExec = vi.fn().mockResolvedValue({
stdout: "",
stderr: "",
}) as unknown as MockFn;
export const runCommandWithTimeout = vi.fn().mockResolvedValue({
stdout: "",
stderr: "",
code: 0,
signal: null,
killed: false,
}) as unknown as MockFn;
export const runCommandWithTimeout = vi
.fn()
.mockResolvedValue(createCommandWithTimeoutResult()) as unknown as MockFn;
export const ensureAuthProfileStore = vi
.fn()
.mockReturnValue({ version: 1, profiles: {} }) as unknown as MockFn;
export const legacyReadConfigFileSnapshot = vi.fn().mockResolvedValue({
path: "/tmp/openclaw.json",
exists: false,
raw: null,
parsed: {},
valid: true,
config: {},
issues: [],
legacyIssues: [],
}) as unknown as MockFn;
export const legacyReadConfigFileSnapshot = vi
.fn()
.mockResolvedValue(createLegacyConfigSnapshot()) as unknown as MockFn;
export const createConfigIO = vi.fn(() => ({
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
})) as unknown as MockFn;
@@ -350,33 +368,13 @@ beforeEach(() => {
readConfigFileSnapshot.mockReset();
writeConfigFile.mockReset().mockResolvedValue(undefined);
resolveOpenClawPackageRoot.mockReset().mockResolvedValue(null);
runGatewayUpdate.mockReset().mockResolvedValue({
status: "skipped",
mode: "unknown",
steps: [],
durationMs: 0,
});
legacyReadConfigFileSnapshot.mockReset().mockResolvedValue({
path: "/tmp/openclaw.json",
exists: false,
raw: null,
parsed: {},
valid: true,
config: {},
issues: [],
legacyIssues: [],
});
runGatewayUpdate.mockReset().mockResolvedValue(createGatewayUpdateResult());
legacyReadConfigFileSnapshot.mockReset().mockResolvedValue(createLegacyConfigSnapshot());
createConfigIO.mockReset().mockImplementation(() => ({
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
}));
runExec.mockReset().mockResolvedValue({ stdout: "", stderr: "" });
runCommandWithTimeout.mockReset().mockResolvedValue({
stdout: "",
stderr: "",
code: 0,
signal: null,
killed: false,
});
runCommandWithTimeout.mockReset().mockResolvedValue(createCommandWithTimeoutResult());
ensureAuthProfileStore.mockReset().mockReturnValue({ version: 1, profiles: {} });
migrateLegacyConfig.mockReset().mockImplementation((raw: unknown) => ({
config: raw as Record<string, unknown>,