import { readFileSync } from "node:fs"; import assert from "node:assert/strict"; import { join } from "node:path"; import test from "node:test"; import { createOpenRouterProvider } from "../lib/ai/openrouter-provider"; const providerSource = readFileSync( join(process.cwd(), "lib", "ai", "openrouter-provider.ts"), "utf8", ); test("provider reads OPENROUTER_API_KEY from environment and requires it", () => { assert.equal( /OPENROUTER_API_KEY/.test(providerSource), true, "Provider should read OPENROUTER_API_KEY.", ); assert.equal( /OPENROUTER_APP_NAME/.test(providerSource), true, "Provider should include optional OPENROUTER_APP_NAME.", ); assert.equal( /OPENROUTER_APP_URL/.test(providerSource), true, "Provider should include optional OPENROUTER_APP_URL.", ); assert.throws( () => createOpenRouterProvider({ OPENROUTER_API_KEY: undefined, OPENROUTER_APP_NAME: "local-audit-tool", OPENROUTER_APP_URL: "https://example.local", }), /OPENROUTER_API_KEY is required/i, ); }); test("provider forwards optional app metadata to createOpenRouter call", () => { const provider = createOpenRouterProvider({ OPENROUTER_API_KEY: "dummy-key", OPENROUTER_APP_NAME: "local-audit-tool", OPENROUTER_APP_URL: "https://example.local", }); assert.equal(typeof provider, "function"); assert.equal(provider !== null, true); });