import { describe, expect, it } from "vitest"; import { scanOpenRouterModels } from "./model-scan.js"; function createFetchFixture(payload: unknown): typeof fetch { return async () => new Response(JSON.stringify(payload), { status: 200, headers: { "content-type": "application/json" }, }); } describe("scanOpenRouterModels", () => { it("lists free models without probing", async () => { const fetchImpl = createFetchFixture({ data: [ { id: "acme/free-by-pricing", name: "Free By Pricing", context_length: 16_384, max_completion_tokens: 1024, supported_parameters: ["tools", "tool_choice", "temperature"], modality: "text", pricing: { prompt: "0", completion: "0", request: "0", image: "0" }, created_at: 1_700_000_000, }, { id: "acme/free-by-suffix:free", name: "Free By Suffix", context_length: 8_192, supported_parameters: [], modality: "text", pricing: { prompt: "0", completion: "0" }, }, { id: "acme/paid", name: "Paid", context_length: 4_096, supported_parameters: ["tools"], modality: "text", pricing: { prompt: "0.000001", completion: "0.000002" }, }, ], }); const results = await scanOpenRouterModels({ fetchImpl, probe: false, }); expect(results.map((entry) => entry.id)).toEqual([ "acme/free-by-pricing", "acme/free-by-suffix:free", ]); const [byPricing] = results; expect(byPricing).toBeTruthy(); if (!byPricing) { throw new Error("Expected pricing-based model result."); } expect(byPricing.supportsToolsMeta).toBe(true); expect(byPricing.supportedParametersCount).toBe(3); expect(byPricing.isFree).toBe(true); expect(byPricing.tool.skipped).toBe(true); expect(byPricing.image.skipped).toBe(true); }); it("requires an API key when probing", async () => { const fetchImpl = createFetchFixture({ data: [] }); const previousKey = process.env.OPENROUTER_API_KEY; try { delete process.env.OPENROUTER_API_KEY; await expect( scanOpenRouterModels({ fetchImpl, probe: true, apiKey: "", }), ).rejects.toThrow(/Missing OpenRouter API key/); } finally { if (previousKey === undefined) { delete process.env.OPENROUTER_API_KEY; } else { process.env.OPENROUTER_API_KEY = previousKey; } } }); });