51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
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);
|
|
});
|