import { test, expect, describe } from "bun:test"; import { loadConfig } from "../src/config"; describe("config", () => { test("loadConfig env variables override config file and defaults", async () => { const origBase = process.env.GAI_API_BASE; const origModel = process.env.GAI_MODEL; process.env.GAI_API_BASE = "https://custom.api.com/v1"; process.env.GAI_MODEL = "custom-model"; const config = await loadConfig(); expect(config.apiBase).toBe("https://custom.api.com/v1"); expect(config.model).toBe("custom-model"); if (origBase) process.env.GAI_API_BASE = origBase; else delete process.env.GAI_API_BASE; if (origModel) process.env.GAI_MODEL = origModel; else delete process.env.GAI_MODEL; }); test("loadConfig reads from environment variables", async () => { const origBase = process.env.GAI_API_BASE; const origModel = process.env.GAI_MODEL; process.env.GAI_API_BASE = "https://api.deepseek.com/v1"; process.env.GAI_MODEL = "deepseek-v4-flash"; const config = await loadConfig(); expect(config.apiBase).toBe("https://api.deepseek.com/v1"); expect(config.model).toBe("deepseek-v4-flash"); if (origBase) process.env.GAI_API_BASE = origBase; else delete process.env.GAI_API_BASE; if (origModel) process.env.GAI_MODEL = origModel; else delete process.env.GAI_MODEL; }); });