import type { Api, Model } from "@mariozechner/pi-ai"; import { describe, expect, it } from "vitest"; import { normalizeModelCompat } from "./model-compat.js"; const baseModel = (): Model => ({ id: "glm-4.7", name: "GLM-4.7", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 8192, maxTokens: 1024, }) as Model; describe("normalizeModelCompat", () => { it("forces supportsDeveloperRole off for z.ai models", () => { const model = baseModel(); delete (model as { compat?: unknown }).compat; const normalized = normalizeModelCompat(model); expect(normalized.compat?.supportsDeveloperRole).toBe(false); }); it("leaves non-zai models untouched", () => { const model = { ...baseModel(), provider: "openai", baseUrl: "https://api.openai.com/v1", }; delete (model as { compat?: unknown }).compat; const normalized = normalizeModelCompat(model); expect(normalized.compat).toBeUndefined(); }); it("does not override explicit z.ai compat false", () => { const model = baseModel(); model.compat = { supportsDeveloperRole: false }; const normalized = normalizeModelCompat(model); expect(normalized.compat?.supportsDeveloperRole).toBe(false); }); });