Files
CC-Switch/tests/utils/providerConfigUtils.codex.test.ts
T
YoVinchen 3fa3558bd4 Merge branch 'main' into feat/proxy-url-refactor-full-url-mode
# Conflicts:
#	src-tauri/src/provider.rs
#	src-tauri/src/services/stream_check.rs
#	src/components/providers/forms/ClaudeFormFields.tsx
#	src/components/providers/forms/ProviderForm.tsx
#	src/types.ts
2026-03-09 09:26:24 +08:00

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