Files
cc-switch/tests/utils/providerConfigUtils.codex.test.ts
wugeer fb8996d19c fix:Add a new vendor page, API endpoint, and model name. (#1155)
* fix:Add a new vendor page, API endpoint, and model name. Fix the bug where, after entering characters, line breaks cannot be fully deleted.

* fix: add missing i18n key codexConfig.modelNameHint for zh/en/ja

---------

Co-authored-by: Jason <farion1231@gmail.com>
2026-03-07 22:53:44 +08:00

56 lines
1.6 KiB
TypeScript

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");
});
});