import { ProviderDriverKind, type ModelCapabilities, type ServerProviderModel, } from "@t3tools/contracts"; import { describe, expect, it } from "vite-plus/test"; import { getProviderModelCapabilities } from "./providerModels"; const PROVIDER = ProviderDriverKind.make("claudeAgent"); function capabilities(id: string): ModelCapabilities { return { optionDescriptors: [{ id, label: id, type: "boolean" }], }; } function model(input: { slug: string; capabilities: ModelCapabilities; aliases?: ReadonlyArray; isCustom?: boolean; }): ServerProviderModel { return { slug: input.slug, name: input.slug, ...(input.aliases ? { aliases: [...input.aliases] } : {}), isCustom: input.isCustom ?? false, capabilities: input.capabilities, }; } describe("getProviderModelCapabilities", () => { it("resolves model-declared aliases", () => { const aliasCapabilities = capabilities("aliased-option"); const models = [ model({ slug: "synthetic-model", aliases: ["Legacy-Synthetic-Model"], capabilities: aliasCapabilities, }), ]; expect(getProviderModelCapabilities(models, "legacy-synthetic-model", PROVIDER)).toEqual( aliasCapabilities, ); }); it("prefers an exact custom slug over a built-in model alias", () => { const customCapabilities = capabilities("custom-option"); const models = [ model({ slug: "synthetic-model", aliases: ["custom-model"], capabilities: capabilities("built-in-option"), }), model({ slug: "custom-model", capabilities: customCapabilities, isCustom: true }), ]; expect(getProviderModelCapabilities(models, " custom-model ", PROVIDER)).toEqual( customCapabilities, ); }); it("returns empty capabilities for an unknown slug", () => { const models = [ model({ slug: "default-model", capabilities: capabilities("default-option"), }), ]; expect(getProviderModelCapabilities(models, "unknown-model", PROVIDER)).toEqual({ optionDescriptors: [], }); }); });