import type { ModelCatalogEntry, ModelCredential } from "@rakazo/contracts"; import { describe, expect, it } from "vitest"; import { connectedModelOptions } from "./connected-models"; const catalog: ModelCatalogEntry[] = [ { provider: "xai", providerName: "xAI", id: "grok-4.6", label: "Grok 4.6", billing: "" }, { provider: "xai", providerName: "xAI", id: "grok-mini", label: "Grok mini", billing: "" }, { provider: "openai-compatible", providerName: "OpenAI-compatible", id: "custom", label: "Custom", billing: "", placeholder: true, }, ]; const credentials: ModelCredential[] = [ { id: "router", provider: "openai-compatible", label: "OpenAI-compatible", hasKey: true, isDefault: true, modelId: "router-standard", }, { id: "xai", provider: "xai", label: "xAI", hasKey: true, isDefault: false, modelId: "grok-4.6" }, ]; describe("connected model options", () => { it("expands catalog providers and keeps a free-form connection's saved model", () => { expect(connectedModelOptions(credentials, catalog)).toEqual([ { credentialId: "router", provider: "openai-compatible", modelId: "router-standard", label: "OpenAI-compatible · router-standard", }, { credentialId: "xai", provider: "xai", modelId: "grok-4.6", label: "xAI · Grok 4.6" }, { credentialId: "xai", provider: "xai", modelId: "grok-mini", label: "xAI · Grok mini" }, ]); }); it("adds every model a router endpoint lists, once each", () => { const options = connectedModelOptions(credentials, catalog, { router: ["router-standard", "router-fast", "router-code"], }); expect(options.filter((option) => option.credentialId === "router")).toEqual( ["router-standard", "router-fast", "router-code"].map((modelId) => ({ credentialId: "router", provider: "openai-compatible", modelId, label: `OpenAI-compatible · ${modelId}`, })), ); }); });