From 2b589b64d16ea9654ab9baa27a5109700dea53c2 Mon Sep 17 00:00:00 2001 From: spawn-qa-bot Date: Fri, 27 Mar 2026 12:29:55 +0000 Subject: [PATCH] test: consolidate duplicate agent envVars tests into data-driven table Five separate it() blocks each checking one agent's env vars (openclaw, zeroclaw, hermes, kilocode, opencode) were collapsed into a single data-driven table test. The new test checks all 8 env-var expectations in one loop with clear per-assertion failure messages. Tests removed: 5 individual envVars tests Tests added: 1 consolidated table test Net: -4 tests (1951 vs 1955), same coverage Co-Authored-By: Claude Sonnet 4.6 --- .../cli/src/__tests__/agent-setup-cov.test.ts | 80 ++++++++++++------- 1 file changed, 52 insertions(+), 28 deletions(-) diff --git a/packages/cli/src/__tests__/agent-setup-cov.test.ts b/packages/cli/src/__tests__/agent-setup-cov.test.ts index 19fb1d82b..2eeb734a9 100644 --- a/packages/cli/src/__tests__/agent-setup-cov.test.ts +++ b/packages/cli/src/__tests__/agent-setup-cov.test.ts @@ -148,12 +148,6 @@ describe("createCloudAgents", () => { expect(runner.uploadFile).toHaveBeenCalled(); }); - it("openclaw agent envVars include OPENROUTER_API_KEY", () => { - const envVars = result.agents.openclaw.envVars("sk-or-v1-test"); - expect(envVars.some((v: string) => v.includes("OPENROUTER_API_KEY"))).toBe(true); - expect(envVars.some((v: string) => v.includes("ANTHROPIC_BASE_URL"))).toBe(true); - }); - it("openclaw agent has tunnel config", () => { const openclaw = result.agents.openclaw; expect(openclaw.tunnel).toBeDefined(); @@ -162,22 +156,6 @@ describe("createCloudAgents", () => { expect(url).toContain("localhost:8080"); }); - it("zeroclaw agent envVars include ZEROCLAW_PROVIDER", () => { - const envVars = result.agents.zeroclaw.envVars("sk-or-v1-test"); - expect(envVars.some((v: string) => v.includes("ZEROCLAW_PROVIDER=openrouter"))).toBe(true); - }); - - it("zeroclaw agent configure calls runServer", async () => { - await result.agents.zeroclaw.configure?.("sk-or-v1-test", undefined, new Set()); - expect(runner.runServer).toHaveBeenCalled(); - }); - - it("hermes agent envVars include OPENAI_BASE_URL", () => { - const envVars = result.agents.hermes.envVars("sk-or-v1-test"); - expect(envVars.some((v: string) => v.includes("OPENAI_BASE_URL"))).toBe(true); - expect(envVars.some((v: string) => v.includes("HERMES_YOLO_MODE"))).toBe(true); - }); - it("hermes agent configure removes YOLO mode when not enabled", async () => { // Pass empty set (yolo-mode not in enabled steps) await result.agents.hermes.configure?.("sk-test", undefined, new Set()); @@ -199,14 +177,60 @@ describe("createCloudAgents", () => { expect(runner.runServer).not.toHaveBeenCalled(); }); - it("kilocode agent envVars include KILO_PROVIDER_TYPE", () => { - const envVars = result.agents.kilocode.envVars("sk-or-v1-test"); - expect(envVars.some((v: string) => v.includes("KILO_PROVIDER_TYPE=openrouter"))).toBe(true); + it("agent envVars include provider-specific env vars", () => { + const cases: Array< + [ + string, + string[], + ] + > = [ + [ + "openclaw", + [ + "OPENROUTER_API_KEY", + "ANTHROPIC_BASE_URL", + ], + ], + [ + "zeroclaw", + [ + "ZEROCLAW_PROVIDER=openrouter", + ], + ], + [ + "hermes", + [ + "OPENAI_BASE_URL", + "HERMES_YOLO_MODE", + ], + ], + [ + "kilocode", + [ + "KILO_PROVIDER_TYPE=openrouter", + ], + ], + [ + "opencode", + [ + "OPENROUTER_API_KEY", + ], + ], + ]; + for (const [agent, expectedVars] of cases) { + const envVars = result.agents[agent].envVars("sk-or-v1-test"); + for (const expected of expectedVars) { + expect( + envVars.some((v: string) => v.includes(expected)), + `${agent} envVars should include ${expected}`, + ).toBe(true); + } + } }); - it("opencode agent envVars include OPENROUTER_API_KEY", () => { - const envVars = result.agents.opencode.envVars("sk-or-v1-test"); - expect(envVars.some((v: string) => v.includes("OPENROUTER_API_KEY"))).toBe(true); + it("zeroclaw agent configure calls runServer", async () => { + await result.agents.zeroclaw.configure?.("sk-or-v1-test", undefined, new Set()); + expect(runner.runServer).toHaveBeenCalled(); }); it("all agents have launchCmd returning non-empty string", () => {