import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { resolveConfigValue, resolveConfigValueOrThrow, resolveConfigValueUncached, } from "../src/core/resolve-config-value.js"; const VAR = "PRIME_AGENT_TEST_CREDENTIAL_VAR"; describe("resolveConfigValue env fallback", () => { beforeEach(() => { delete process.env[VAR]; }); afterEach(() => { delete process.env[VAR]; }); it("uses the env var value when set", () => { process.env[VAR] = "secret-value"; expect(resolveConfigValue(VAR)).toBe("secret-value"); expect(resolveConfigValueUncached(VAR)).toBe("secret-value"); }); it("falls back to the literal string when the env var is unset", () => { expect(resolveConfigValue(VAR)).toBe(VAR); expect(resolveConfigValue("sk-literal-key")).toBe("sk-literal-key"); }); it("treats a set-but-empty env var as a missing credential, not the literal name", () => { process.env[VAR] = ""; expect(resolveConfigValue(VAR)).toBeUndefined(); expect(resolveConfigValueUncached(VAR)).toBeUndefined(); expect(() => resolveConfigValueOrThrow(VAR, "test credential")).toThrow("Failed to resolve test credential"); }); });