Files

51 lines
2.2 KiB
JavaScript

import assert from "node:assert/strict";
import test from "node:test";
async function loadSubject(path) {
try {
const { createJiti } = await import("jiti");
return createJiti(import.meta.url).import(path);
} catch {
return import(path);
}
}
const { buildModelsListUrl, parseDiscoveredModels } = await loadSubject("./model-discovery.ts");
const { resolveModelDiscoveryAuth } = await loadSubject("./model-discovery-auth.ts");
test("builds protocol-appropriate model list URLs", () => {
assert.equal(buildModelsListUrl("https://api.example.com/v1/", "openai-completions").toString(), "https://api.example.com/v1/models");
assert.equal(buildModelsListUrl("https://api.anthropic.com", "anthropic-messages").toString(), "https://api.anthropic.com/v1/models?limit=1000");
assert.equal(buildModelsListUrl("https://generativelanguage.googleapis.com", "google-generative-ai").toString(), "https://generativelanguage.googleapis.com/v1beta/models?pageSize=1000");
assert.equal(buildModelsListUrl("https://api.example.com/custom/models", "openai-responses").toString(), "https://api.example.com/custom/models");
});
test("parses OpenAI, Anthropic, Google, and string model lists", () => {
assert.deepEqual(parseDiscoveredModels({ data: [{ id: "gpt-5" }, { id: "claude", display_name: "Claude" }] }), [
{ id: "claude", name: "Claude" },
{ id: "gpt-5" },
]);
assert.deepEqual(parseDiscoveredModels({ models: [{ name: "models/gemini-2.5-pro", displayName: "Gemini 2.5 Pro" }] }), [
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
]);
assert.deepEqual(parseDiscoveredModels(["zeta", "alpha", "alpha"]), [
{ id: "alpha" },
{ id: "zeta" },
]);
});
test("resolves environment-backed headers without an API key", async () => {
process.env.PI_WEB_DISCOVERY_TEST_TOKEN = "resolved-token";
try {
const auth = await resolveModelDiscoveryAuth("pi-web-header-only-test", {
baseUrl: "https://example.invalid/v1",
api: "openai-completions",
headers: { "X-Discovery-Token": "$PI_WEB_DISCOVERY_TEST_TOKEN" },
});
assert.equal(auth.apiKey, undefined);
assert.deepEqual(auth.headers, { "X-Discovery-Token": "resolved-token" });
} finally {
delete process.env.PI_WEB_DISCOVERY_TEST_TOKEN;
}
});