Files
farion1231--cc-switch/tests/components/ProviderForm.codexCatalog.test.ts
wehub-resource-sync 64ed910d3f
CI / Backend Checks (push) Has been cancelled
CI / Frontend Checks (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:57:20 +08:00

53 lines
1.9 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { normalizeCodexCatalogModelsForSave } from "@/components/providers/forms/ProviderForm";
describe("ProviderForm Codex catalog helpers", () => {
it("normalizes catalog rows and removes empty or duplicate models", () => {
expect(
normalizeCodexCatalogModelsForSave([
{ model: " deepseek-v4-flash ", displayName: " DeepSeek " },
{ model: "deepseek-v4-flash", displayName: "Duplicate" },
{ model: "", displayName: "Empty" },
{ model: "kimi-k2", contextWindow: "128000 tokens" },
]),
).toEqual([
{ model: "deepseek-v4-flash", displayName: "DeepSeek" },
{ model: "kimi-k2", contextWindow: 128000 },
]);
});
it("preserves native-profile overrides (parallel tool calls + input modalities + base instructions)", () => {
expect(
normalizeCodexCatalogModelsForSave([
{
model: "MiniMax-M3",
displayName: "MiniMax-M3",
contextWindow: 1000000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
baseInstructions:
" You are Codex, a coding agent based on MiniMax-M3. ",
},
// false must be preserved (not dropped as falsy); empty modalities dropped;
// empty/whitespace baseInstructions dropped
{
model: "mimo-v2.5-pro",
supportsParallelToolCalls: false,
inputModalities: [],
baseInstructions: " ",
},
]),
).toEqual([
{
model: "MiniMax-M3",
displayName: "MiniMax-M3",
contextWindow: 1000000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
baseInstructions: "You are Codex, a coding agent based on MiniMax-M3.",
},
{ model: "mimo-v2.5-pro", supportsParallelToolCalls: false },
]);
});
});