refactor(agent): dedupe harness and command workflows

This commit is contained in:
Peter Steinberger
2026-02-16 14:52:09 +00:00
parent 04892ee230
commit f717a13039
204 changed files with 7366 additions and 11540 deletions

View File

@@ -49,6 +49,18 @@ function buildSnapshot(params: {
};
}
function setSnapshot(resolved: OpenClawConfig, config: OpenClawConfig) {
mockReadConfigFileSnapshot.mockResolvedValueOnce(buildSnapshot({ resolved, config }));
}
async function runConfigCommand(args: string[]) {
const { registerConfigCli } = await import("./config-cli.js");
const program = new Command();
program.exitOverride();
registerConfigCli(program);
await program.parseAsync(args, { from: "user" });
}
describe("config cli", () => {
beforeEach(() => {
vi.clearAllMocks();
@@ -77,16 +89,9 @@ describe("config cli", () => {
} as never,
} as never,
};
mockReadConfigFileSnapshot.mockResolvedValueOnce(
buildSnapshot({ resolved, config: runtimeMerged }),
);
setSnapshot(resolved, runtimeMerged);
const { registerConfigCli } = await import("./config-cli.js");
const program = new Command();
program.exitOverride();
registerConfigCli(program);
await program.parseAsync(["config", "set", "gateway.auth.mode", "token"], { from: "user" });
await runConfigCommand(["config", "set", "gateway.auth.mode", "token"]);
expect(mockWriteConfigFile).toHaveBeenCalledTimes(1);
const written = mockWriteConfigFile.mock.calls[0]?.[0];
@@ -114,16 +119,9 @@ describe("config cli", () => {
messages: { ackReaction: "✅" } as never,
sessions: { persistence: { enabled: true } } as never,
};
mockReadConfigFileSnapshot.mockResolvedValueOnce(
buildSnapshot({ resolved, config: runtimeMerged }),
);
setSnapshot(resolved, runtimeMerged);
const { registerConfigCli } = await import("./config-cli.js");
const program = new Command();
program.exitOverride();
registerConfigCli(program);
await program.parseAsync(["config", "set", "gateway.auth.mode", "token"], { from: "user" });
await runConfigCommand(["config", "set", "gateway.auth.mode", "token"]);
expect(mockWriteConfigFile).toHaveBeenCalledTimes(1);
const written = mockWriteConfigFile.mock.calls[0]?.[0];
@@ -157,16 +155,9 @@ describe("config cli", () => {
},
} as never,
};
mockReadConfigFileSnapshot.mockResolvedValueOnce(
buildSnapshot({ resolved, config: runtimeMerged }),
);
setSnapshot(resolved, runtimeMerged);
const { registerConfigCli } = await import("./config-cli.js");
const program = new Command();
program.exitOverride();
registerConfigCli(program);
await program.parseAsync(["config", "unset", "tools.alsoAllow"], { from: "user" });
await runConfigCommand(["config", "unset", "tools.alsoAllow"]);
expect(mockWriteConfigFile).toHaveBeenCalledTimes(1);
const written = mockWriteConfigFile.mock.calls[0]?.[0];