test: fix firmware provider test isolation from env vars

This commit is contained in:
Colby Gilbert 2026-01-29 20:10:24 -08:00
parent 9eae669b91
commit 571694e39d
2 changed files with 25 additions and 4 deletions

View File

@ -1,11 +1,26 @@
import { describe, expect, it } from "vitest"; import { describe, expect, it, beforeEach, afterEach } from "vitest";
import { resolveImplicitProviders } from "./models-config.providers.js"; import { resolveImplicitProviders } from "./models-config.providers.js";
import { mkdtempSync } from "node:fs"; import { mkdtempSync } from "node:fs";
import { join } from "node:path"; import { join } from "node:path";
import { tmpdir } from "node:os"; import { tmpdir } from "node:os";
describe("Firmware provider", () => { describe("Firmware provider", () => {
let previousFirmwareKey: string | undefined;
beforeEach(() => {
previousFirmwareKey = process.env.FIRMWARE_API_KEY;
});
afterEach(() => {
if (previousFirmwareKey !== undefined) {
process.env.FIRMWARE_API_KEY = previousFirmwareKey;
} else {
delete process.env.FIRMWARE_API_KEY;
}
});
it("should not include firmware when no API key is configured", async () => { it("should not include firmware when no API key is configured", async () => {
delete process.env.FIRMWARE_API_KEY;
const agentDir = mkdtempSync(join(tmpdir(), "clawd-test-")); const agentDir = mkdtempSync(join(tmpdir(), "clawd-test-"));
const providers = await resolveImplicitProviders({ agentDir }); const providers = await resolveImplicitProviders({ agentDir });
@ -13,11 +28,13 @@ describe("Firmware provider", () => {
}); });
it("should include firmware when FIRMWARE_API_KEY env var is set", async () => { it("should include firmware when FIRMWARE_API_KEY env var is set", async () => {
process.env.FIRMWARE_API_KEY = "test-firmware-key";
const agentDir = mkdtempSync(join(tmpdir(), "clawd-test-")); const agentDir = mkdtempSync(join(tmpdir(), "clawd-test-"));
const providers = await resolveImplicitProviders({ agentDir }); const providers = await resolveImplicitProviders({ agentDir });
// This test would need to be run with FIRMWARE_API_KEY env var set expect(providers?.firmware).toBeDefined();
// For now we're just checking the provider structure is correct expect(providers?.firmware?.baseUrl).toBe("https://app.firmware.ai/api/v1");
expect(providers).toBeDefined(); expect(providers?.firmware?.api).toBe("openai-completions");
expect(providers?.firmware?.models?.length).toBeGreaterThan(0);
}); });
}); });

View File

@ -54,6 +54,7 @@ describe("models-config", () => {
const previousSynthetic = process.env.SYNTHETIC_API_KEY; const previousSynthetic = process.env.SYNTHETIC_API_KEY;
const previousVenice = process.env.VENICE_API_KEY; const previousVenice = process.env.VENICE_API_KEY;
const previousXiaomi = process.env.XIAOMI_API_KEY; const previousXiaomi = process.env.XIAOMI_API_KEY;
const previousFirmware = process.env.FIRMWARE_API_KEY;
delete process.env.COPILOT_GITHUB_TOKEN; delete process.env.COPILOT_GITHUB_TOKEN;
delete process.env.GH_TOKEN; delete process.env.GH_TOKEN;
delete process.env.GITHUB_TOKEN; delete process.env.GITHUB_TOKEN;
@ -63,6 +64,7 @@ describe("models-config", () => {
delete process.env.SYNTHETIC_API_KEY; delete process.env.SYNTHETIC_API_KEY;
delete process.env.VENICE_API_KEY; delete process.env.VENICE_API_KEY;
delete process.env.XIAOMI_API_KEY; delete process.env.XIAOMI_API_KEY;
delete process.env.FIRMWARE_API_KEY;
try { try {
vi.resetModules(); vi.resetModules();
@ -97,6 +99,8 @@ describe("models-config", () => {
else process.env.VENICE_API_KEY = previousVenice; else process.env.VENICE_API_KEY = previousVenice;
if (previousXiaomi === undefined) delete process.env.XIAOMI_API_KEY; if (previousXiaomi === undefined) delete process.env.XIAOMI_API_KEY;
else process.env.XIAOMI_API_KEY = previousXiaomi; else process.env.XIAOMI_API_KEY = previousXiaomi;
if (previousFirmware === undefined) delete process.env.FIRMWARE_API_KEY;
else process.env.FIRMWARE_API_KEY = previousFirmware;
} }
}); });
}); });