94 lines · 2.9 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import { ProviderInstanceId, type ServerConfig } from "@t3tools/contracts"; import { buildModelOptions, resolveSelectableModelSelection } from "./modelOptions"; describe("mobile model options", () => {  it("normalizes a legacy fallback selection against current capabilities", () => {    const config = {      providers: [        {          instanceId: "codex",          driver: "codex",          displayName: "Codex",          enabled: true,          installed: true,          auth: { status: "authenticated" },          models: [            {              slug: "gpt-test",              name: "GPT Test",              isCustom: false,              capabilities: {                optionDescriptors: [                  {                    id: "serviceTier",                    label: "Service Tier",                    type: "select",                    options: [                      { id: "default", label: "Standard", isDefault: true },                      { id: "priority", label: "Fast" },                    ],                    currentValue: "default",                  },                ],              },            },          ],        },      ],    } as unknown as ServerConfig;     const [option] = buildModelOptions(config, {      instanceId: ProviderInstanceId.make("codex"),      model: "gpt-test",      options: [{ id: "fastMode", value: true }],    });     expect(option?.capabilities?.optionDescriptors?.[0]?.id).toBe("serviceTier");    expect(option?.selection.options).toEqual([{ id: "serviceTier", value: "default" }]);  });   it("rejects stored selections whose provider is not usable", () => {    const config = {      providers: [        {          instanceId: "codex",          driver: "codex",          enabled: true,          installed: true,          auth: { status: "authenticated" },          models: [],        },        {          instanceId: "claudeAgent",          driver: "claudeAgent",          enabled: false,          installed: true,          auth: { status: "authenticated" },          models: [],        },      ],    } as unknown as ServerConfig;     const usable = {      instanceId: ProviderInstanceId.make("codex"),      model: "gpt-5.6-sol",    };    const disabled = {      instanceId: ProviderInstanceId.make("claudeAgent"),      model: "claude-sonnet-5",    };    const removed = {      instanceId: ProviderInstanceId.make("codex_personal"),      model: "gpt-5.6-sol",    };     expect(resolveSelectableModelSelection(config, usable)).toBe(usable);    expect(resolveSelectableModelSelection(config, disabled)).toBeNull();    expect(resolveSelectableModelSelection(config, removed)).toBeNull();    // No config (environment offline) — nothing to validate against.    expect(resolveSelectableModelSelection(null, disabled)).toBe(disabled);  });});