Menu
popagent
publicLatest change 524957811967067a7f24e61c8d72142273a81d9e - Harden model catalog and release gates by AkurAI Build
import { describe, expect, test } from "bun:test";
import { filterModels, groupModels, modelLabel, providerLabel } from "./model-picker";
const models = [
"high-coding",
"cx/gpt-5.6-sol",
"cx/gpt-5.6-sol-review",
"cc/claude-sonnet-5",
"openrouter/cohere/north-mini-code:free",
];
describe("model picker presentation", () => {
test("turns route identifiers into compact human labels", () => {
expect(modelLabel("cx/gpt-5.6-sol")).toBe("GPT 5.6 Sol");
expect(modelLabel("cc/claude-sonnet-5")).toBe("Claude Sonnet 5");
expect(modelLabel("high-coding")).toBe("High Coding");
});
test("uses recognizable provider labels", () => {
expect(providerLabel("cx/gpt-5.6-sol")).toBe("Codex");
expect(providerLabel("openrouter/cohere/north-mini-code:free")).toBe("OpenRouter");
expect(providerLabel("high-coding")).toBe("Routes");
});
test("groups routes in first-seen provider order", () => {
expect(groupModels(models).map((group) => [group.provider, group.models])).toEqual([
["Routes", ["high-coding"]],
["Codex", ["cx/gpt-5.6-sol", "cx/gpt-5.6-sol-review"]],
["Claude", ["cc/claude-sonnet-5"]],
["OpenRouter", ["openrouter/cohere/north-mini-code:free"]],
]);
});
test("renders duplicate gateway routes only once", () => {
expect(groupModels(["cx/gpt-5.6-sol", "cx/gpt-5.6-sol"]).flatMap((group) => group.models))
.toEqual(["cx/gpt-5.6-sol"]);
});
test("searches friendly names, providers, and raw route ids", () => {
expect(filterModels(models, "sonnet")).toEqual(["cc/claude-sonnet-5"]);
expect(filterModels(models, "codex")).toEqual(["cx/gpt-5.6-sol", "cx/gpt-5.6-sol-review"]);
expect(filterModels(models, "openrouter/cohere")).toEqual(["openrouter/cohere/north-mini-code:free"]);
});
});