mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 07:11:25 +00:00
refactor(test): dedupe doctor harness mock payload factories
This commit is contained in:
@@ -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 readConfigFileSnapshot = vi.fn() as unknown as MockFn;
|
||||||
export const confirm = vi.fn().mockResolvedValue(true) 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 select = vi.fn().mockResolvedValue("node") as unknown as MockFn;
|
||||||
export const note = vi.fn() 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 writeConfigFile = vi.fn().mockResolvedValue(undefined) as unknown as MockFn;
|
||||||
export const resolveOpenClawPackageRoot = vi.fn().mockResolvedValue(null) as unknown as MockFn;
|
export const resolveOpenClawPackageRoot = vi.fn().mockResolvedValue(null) as unknown as MockFn;
|
||||||
export const runGatewayUpdate = vi.fn().mockResolvedValue({
|
export const runGatewayUpdate = vi
|
||||||
status: "skipped",
|
.fn()
|
||||||
mode: "unknown",
|
.mockResolvedValue(createGatewayUpdateResult()) as unknown as MockFn;
|
||||||
steps: [],
|
|
||||||
durationMs: 0,
|
|
||||||
}) as unknown as MockFn;
|
|
||||||
export const migrateLegacyConfig = vi.fn((raw: unknown) => ({
|
export const migrateLegacyConfig = vi.fn((raw: unknown) => ({
|
||||||
config: raw as Record<string, unknown>,
|
config: raw as Record<string, unknown>,
|
||||||
changes: ["Moved routing.allowFrom → channels.whatsapp.allowFrom."],
|
changes: ["Moved routing.allowFrom → channels.whatsapp.allowFrom."],
|
||||||
@@ -41,28 +70,17 @@ export const runExec = vi.fn().mockResolvedValue({
|
|||||||
stdout: "",
|
stdout: "",
|
||||||
stderr: "",
|
stderr: "",
|
||||||
}) as unknown as MockFn;
|
}) as unknown as MockFn;
|
||||||
export const runCommandWithTimeout = vi.fn().mockResolvedValue({
|
export const runCommandWithTimeout = vi
|
||||||
stdout: "",
|
.fn()
|
||||||
stderr: "",
|
.mockResolvedValue(createCommandWithTimeoutResult()) as unknown as MockFn;
|
||||||
code: 0,
|
|
||||||
signal: null,
|
|
||||||
killed: false,
|
|
||||||
}) as unknown as MockFn;
|
|
||||||
|
|
||||||
export const ensureAuthProfileStore = vi
|
export const ensureAuthProfileStore = vi
|
||||||
.fn()
|
.fn()
|
||||||
.mockReturnValue({ version: 1, profiles: {} }) as unknown as MockFn;
|
.mockReturnValue({ version: 1, profiles: {} }) as unknown as MockFn;
|
||||||
|
|
||||||
export const legacyReadConfigFileSnapshot = vi.fn().mockResolvedValue({
|
export const legacyReadConfigFileSnapshot = vi
|
||||||
path: "/tmp/openclaw.json",
|
.fn()
|
||||||
exists: false,
|
.mockResolvedValue(createLegacyConfigSnapshot()) as unknown as MockFn;
|
||||||
raw: null,
|
|
||||||
parsed: {},
|
|
||||||
valid: true,
|
|
||||||
config: {},
|
|
||||||
issues: [],
|
|
||||||
legacyIssues: [],
|
|
||||||
}) as unknown as MockFn;
|
|
||||||
export const createConfigIO = vi.fn(() => ({
|
export const createConfigIO = vi.fn(() => ({
|
||||||
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
|
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
|
||||||
})) as unknown as MockFn;
|
})) as unknown as MockFn;
|
||||||
@@ -350,33 +368,13 @@ beforeEach(() => {
|
|||||||
readConfigFileSnapshot.mockReset();
|
readConfigFileSnapshot.mockReset();
|
||||||
writeConfigFile.mockReset().mockResolvedValue(undefined);
|
writeConfigFile.mockReset().mockResolvedValue(undefined);
|
||||||
resolveOpenClawPackageRoot.mockReset().mockResolvedValue(null);
|
resolveOpenClawPackageRoot.mockReset().mockResolvedValue(null);
|
||||||
runGatewayUpdate.mockReset().mockResolvedValue({
|
runGatewayUpdate.mockReset().mockResolvedValue(createGatewayUpdateResult());
|
||||||
status: "skipped",
|
legacyReadConfigFileSnapshot.mockReset().mockResolvedValue(createLegacyConfigSnapshot());
|
||||||
mode: "unknown",
|
|
||||||
steps: [],
|
|
||||||
durationMs: 0,
|
|
||||||
});
|
|
||||||
legacyReadConfigFileSnapshot.mockReset().mockResolvedValue({
|
|
||||||
path: "/tmp/openclaw.json",
|
|
||||||
exists: false,
|
|
||||||
raw: null,
|
|
||||||
parsed: {},
|
|
||||||
valid: true,
|
|
||||||
config: {},
|
|
||||||
issues: [],
|
|
||||||
legacyIssues: [],
|
|
||||||
});
|
|
||||||
createConfigIO.mockReset().mockImplementation(() => ({
|
createConfigIO.mockReset().mockImplementation(() => ({
|
||||||
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
|
readConfigFileSnapshot: legacyReadConfigFileSnapshot,
|
||||||
}));
|
}));
|
||||||
runExec.mockReset().mockResolvedValue({ stdout: "", stderr: "" });
|
runExec.mockReset().mockResolvedValue({ stdout: "", stderr: "" });
|
||||||
runCommandWithTimeout.mockReset().mockResolvedValue({
|
runCommandWithTimeout.mockReset().mockResolvedValue(createCommandWithTimeoutResult());
|
||||||
stdout: "",
|
|
||||||
stderr: "",
|
|
||||||
code: 0,
|
|
||||||
signal: null,
|
|
||||||
killed: false,
|
|
||||||
});
|
|
||||||
ensureAuthProfileStore.mockReset().mockReturnValue({ version: 1, profiles: {} });
|
ensureAuthProfileStore.mockReset().mockReturnValue({ version: 1, profiles: {} });
|
||||||
migrateLegacyConfig.mockReset().mockImplementation((raw: unknown) => ({
|
migrateLegacyConfig.mockReset().mockImplementation((raw: unknown) => ({
|
||||||
config: raw as Record<string, unknown>,
|
config: raw as Record<string, unknown>,
|
||||||
|
|||||||
Reference in New Issue
Block a user