From f6d5d1cc4ec58d1cfa3e54c3a0f56d8deebebbcf Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 12 May 2026 00:57:48 +0100 Subject: [PATCH] test: guard qa lab cli mock calls --- extensions/qa-lab/src/cli.test.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/extensions/qa-lab/src/cli.test.ts b/extensions/qa-lab/src/cli.test.ts index 160c25455b9..9255f178d40 100644 --- a/extensions/qa-lab/src/cli.test.ts +++ b/extensions/qa-lab/src/cli.test.ts @@ -74,6 +74,24 @@ const { listQaRunnerCliContributions } = vi.hoisted(() => ({ ]), })); +function requireQaTelegramOptions() { + const [call] = runQaTelegramCommand.mock.calls; + if (!call) { + throw new Error("expected qa telegram command call"); + } + const [options] = call; + return options; +} + +function requireQaSuiteOptions() { + const [call] = runQaSuiteCommand.mock.calls; + if (!call) { + throw new Error("expected qa suite command call"); + } + const [options] = call; + return options; +} + vi.mock("openclaw/plugin-sdk/qa-runner-runtime", () => ({ listQaRunnerCliContributions, })); @@ -501,21 +519,21 @@ describe("qa cli registration", () => { it("forwards --list-scenarios for telegram runs", async () => { await program.parseAsync(["node", "openclaw", "qa", "telegram", "--list-scenarios"]); - const [options] = runQaTelegramCommand.mock.calls[0] ?? []; + const options = requireQaTelegramOptions(); expect(options.listScenarios).toBe(true); }); it("forwards --allow-failures for telegram runs", async () => { await program.parseAsync(["node", "openclaw", "qa", "telegram", "--allow-failures"]); - const [options] = runQaTelegramCommand.mock.calls[0] ?? []; + const options = requireQaTelegramOptions(); expect(options.allowFailures).toBe(true); }); it("forwards --allow-failures for suite runs", async () => { await program.parseAsync(["node", "openclaw", "qa", "suite", "--allow-failures"]); - const [options] = runQaSuiteCommand.mock.calls[0] ?? []; + const options = requireQaSuiteOptions(); expect(options.allowFailures).toBe(true); });