import { describe, expect, it } from "vitest"; import { withEnv } from "../test-utils/env.js"; import { isTruthyEnvValue, normalizeZaiEnv } from "./env.js"; describe("normalizeZaiEnv", () => { it("copies Z_AI_API_KEY to ZAI_API_KEY when missing", () => { withEnv({ ZAI_API_KEY: "", Z_AI_API_KEY: "zai-legacy" }, () => { normalizeZaiEnv(); expect(process.env.ZAI_API_KEY).toBe("zai-legacy"); }); }); it("does not override existing ZAI_API_KEY", () => { withEnv({ ZAI_API_KEY: "zai-current", Z_AI_API_KEY: "zai-legacy" }, () => { normalizeZaiEnv(); expect(process.env.ZAI_API_KEY).toBe("zai-current"); }); }); it("ignores blank legacy Z_AI_API_KEY values", () => { withEnv({ ZAI_API_KEY: "", Z_AI_API_KEY: " " }, () => { normalizeZaiEnv(); expect(process.env.ZAI_API_KEY).toBe(""); }); }); it("does not copy when legacy Z_AI_API_KEY is unset", () => { withEnv({ ZAI_API_KEY: "", Z_AI_API_KEY: undefined }, () => { normalizeZaiEnv(); expect(process.env.ZAI_API_KEY).toBe(""); }); }); }); describe("isTruthyEnvValue", () => { it("accepts common truthy values", () => { expect(isTruthyEnvValue("1")).toBe(true); expect(isTruthyEnvValue("true")).toBe(true); expect(isTruthyEnvValue(" yes ")).toBe(true); expect(isTruthyEnvValue("ON")).toBe(true); }); it("rejects other values", () => { expect(isTruthyEnvValue("0")).toBe(false); expect(isTruthyEnvValue("false")).toBe(false); expect(isTruthyEnvValue("")).toBe(false); expect(isTruthyEnvValue(undefined)).toBe(false); }); });