| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
| import test from "node:test";
|
| import assert from "node:assert/strict";
|
| import { parseOmniRoutePluginOptions } from "../src/index.js";
|
|
|
| test("parseOmniRoutePluginOptions: undefined β {}", () => {
|
| assert.deepEqual(parseOmniRoutePluginOptions(undefined), {});
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: null β {}", () => {
|
| assert.deepEqual(parseOmniRoutePluginOptions(null), {});
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: empty object β {}", () => {
|
| assert.deepEqual(parseOmniRoutePluginOptions({}), {});
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: valid providerId β returns it", () => {
|
| const r = parseOmniRoutePluginOptions({ providerId: "omniroute-preprod" });
|
| assert.equal(r.providerId, "omniroute-preprod");
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: invalid providerId (special chars) β throws", () => {
|
| assert.throws(
|
| () => parseOmniRoutePluginOptions({ providerId: "omniroute prod!" }),
|
| /providerId.*slug/i
|
| );
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: empty providerId β throws", () => {
|
| assert.throws(() => parseOmniRoutePluginOptions({ providerId: "" }), /providerId/i);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: valid modelCacheTtl β returns it", () => {
|
| const r = parseOmniRoutePluginOptions({ modelCacheTtl: 60_000 });
|
| assert.equal(r.modelCacheTtl, 60_000);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: negative modelCacheTtl β throws", () => {
|
| assert.throws(() => parseOmniRoutePluginOptions({ modelCacheTtl: -1 }), /modelCacheTtl/i);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: zero modelCacheTtl β throws (positive required)", () => {
|
| assert.throws(() => parseOmniRoutePluginOptions({ modelCacheTtl: 0 }), /modelCacheTtl/i);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: invalid baseURL (not a URL) β throws", () => {
|
| assert.throws(() => parseOmniRoutePluginOptions({ baseURL: "not-a-url" }), /baseURL/i);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: unknown key β throws (strict mode catches typos)", () => {
|
| assert.throws(
|
| () =>
|
| parseOmniRoutePluginOptions({
|
| providerId: "omniroute",
|
| provider_id: "typo-here",
|
| }),
|
| /provider_id|unrecognized/i
|
| );
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: all four fields populated correctly β returns them", () => {
|
| const opts = {
|
| providerId: "omniroute-prod",
|
| displayName: "OmniRoute Production",
|
| modelCacheTtl: 120_000,
|
| baseURL: "https://or.example.com/v1",
|
| };
|
| const r = parseOmniRoutePluginOptions(opts);
|
| assert.deepEqual(r, opts);
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: error message lists every issue path", () => {
|
|
|
| try {
|
| parseOmniRoutePluginOptions({
|
| providerId: "",
|
| baseURL: "garbage",
|
| });
|
| assert.fail("expected throw");
|
| } catch (err) {
|
| const msg = (err as Error).message;
|
| assert.match(msg, /providerId/);
|
| assert.match(msg, /baseURL/);
|
| }
|
| });
|
|
|
| test("parseOmniRoutePluginOptions: module import alone does NOT throw", async () => {
|
|
|
|
|
| const mod = await import("../src/index.js");
|
| assert.equal(typeof mod.parseOmniRoutePluginOptions, "function");
|
| });
|
|
|