import { describe, expect, it } from "vitest"; import { extractCodexBaseUrl, extractCodexModelName, setCodexBaseUrl, setCodexModelName, } from "@/utils/providerConfigUtils"; describe("Codex TOML utils", () => { it("removes base_url line when set to empty", () => { const input = [ 'model_provider = "openai"', 'base_url = "https://api.example.com/v1"', 'model = "gpt-5-codex"', "", ].join("\n"); const output = setCodexBaseUrl(input, ""); expect(output).not.toMatch(/^\s*base_url\s*=/m); expect(extractCodexBaseUrl(output)).toBeUndefined(); expect(extractCodexModelName(output)).toBe("gpt-5-codex"); }); it("removes model line when set to empty", () => { const input = [ 'model_provider = "openai"', 'base_url = "https://api.example.com/v1"', 'model = "gpt-5-codex"', "", ].join("\n"); const output = setCodexModelName(input, ""); expect(output).not.toMatch(/^\s*model\s*=/m); expect(extractCodexModelName(output)).toBeUndefined(); expect(extractCodexBaseUrl(output)).toBe("https://api.example.com/v1"); }); it("updates existing values when non-empty", () => { const input = [ 'model_provider = "openai"', "base_url = 'https://old.example/v1'", 'model = "old-model"', "", ].join("\n"); const output1 = setCodexBaseUrl(input, " https://new.example/v1 \n"); expect(extractCodexBaseUrl(output1)).toBe("https://new.example/v1"); const output2 = setCodexModelName(output1, " new-model \n"); expect(extractCodexModelName(output2)).toBe("new-model"); }); });