mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
fix: prevent duplicate codex base_url entries (#4316)
This commit is contained in:
@@ -63,6 +63,48 @@ describe("Codex TOML utils", () => {
|
||||
expect(extractCodexModelName(output2)).toBe("new-model");
|
||||
});
|
||||
|
||||
it("updates a double-quoted base_url containing single quotes without duplicating it", () => {
|
||||
const input = [
|
||||
'model_provider = "custom"',
|
||||
'model = "gpt-5.4"',
|
||||
"",
|
||||
"[model_providers.custom]",
|
||||
'name = "custom"',
|
||||
"base_url = \"https://su'us.codes/v1\"",
|
||||
'wire_api = "responses"',
|
||||
'requires_openai_auth = true',
|
||||
"",
|
||||
].join("\n");
|
||||
|
||||
const output = setCodexBaseUrl(input, "https://su'us'd.codes/v1");
|
||||
|
||||
expect(extractCodexBaseUrl(output)).toBe("https://su'us'd.codes/v1");
|
||||
expect(output.match(/^\s*base_url\s*=/gm)).toHaveLength(1);
|
||||
expect(output).toContain("base_url = \"https://su'us'd.codes/v1\"");
|
||||
});
|
||||
|
||||
it("collapses duplicate base_url lines when editing the active provider section", () => {
|
||||
const input = [
|
||||
'model_provider = "custom"',
|
||||
'model = "gpt-5.4"',
|
||||
"",
|
||||
"[model_providers.custom]",
|
||||
'name = "custom"',
|
||||
'base_url = "https://old.example/v1"',
|
||||
'base_url = "https://older.example/v1"',
|
||||
'wire_api = "responses"',
|
||||
'requires_openai_auth = true',
|
||||
"",
|
||||
].join("\n");
|
||||
|
||||
const output = setCodexBaseUrl(input, "https://new.example/v1");
|
||||
|
||||
expect(extractCodexBaseUrl(output)).toBe("https://new.example/v1");
|
||||
expect(output.match(/^\s*base_url\s*=/gm)).toHaveLength(1);
|
||||
expect(output).toContain('base_url = "https://new.example/v1"');
|
||||
expect(output).not.toContain("older.example");
|
||||
});
|
||||
|
||||
it("reads and writes base_url in the active provider section", () => {
|
||||
const input = [
|
||||
'model_provider = "custom"',
|
||||
|
||||
Reference in New Issue
Block a user