Files
OmniRoute/tests/unit/combo-config.test.mjs
diegosouzapw 592ca9b5c4 fix: remove hardcoded localhost default arg from GET /api/keys, unify coverage to single coverage/ dir, fix test to pass explicit Request
- Remove `new Request('http://localhost/api/keys')` default arg from GET handler in src/app/api/keys/route.ts (line 26)
- Fix api-key-reveal-route.test.mjs to pass explicit Request instead of calling GET() with no args
- Add --output-dir coverage to all c8 scripts in package.json
- Add coverage.reportsDirectory: 'coverage' to vitest.config.ts and vitest.mcp.config.ts
- Fix CHANGELOG.md structure (# Changelog + [Unreleased] to top)
- Remove 30+ stale coverage-* directories from project root
- Coverage: Statements 78.76% | Branches 72.75% | Functions 80.93% | Lines 78.76% (all thresholds passed)
2026-04-05 23:21:08 -03:00

98 lines
2.5 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
const { resolveComboConfig, getDefaultComboConfig } =
await import("../../open-sse/services/comboConfig.ts");
test("getDefaultComboConfig returns a fresh copy of the defaults", () => {
const first = getDefaultComboConfig();
const second = getDefaultComboConfig();
assert.notEqual(first, second);
assert.equal(first.strategy, "priority");
assert.equal(first.maxRetries, 1);
assert.equal(first.timeoutMs, 600000);
first.strategy = "weighted";
assert.equal(second.strategy, "priority");
});
test("resolveComboConfig applies the full cascade from defaults to combo overrides", () => {
const result = resolveComboConfig(
{
config: {
maxRetries: 4,
timeoutMs: 45000,
},
},
{
comboDefaults: {
strategy: "round-robin",
timeoutMs: 120000,
},
providerOverrides: {
openai: {
timeoutMs: 60000,
retryDelayMs: 500,
},
},
},
"openai"
);
assert.equal(result.strategy, "round-robin");
assert.equal(result.retryDelayMs, 500);
assert.equal(result.timeoutMs, 45000);
assert.equal(result.maxRetries, 4);
assert.equal(result.healthCheckEnabled, true);
});
test("resolveComboConfig ignores null and undefined overrides", () => {
const result = resolveComboConfig(
{
config: {
timeoutMs: null,
trackMetrics: false,
},
},
{
comboDefaults: {
timeoutMs: undefined,
queueTimeoutMs: 15000,
},
providerOverrides: {
openai: {
strategy: null,
concurrencyPerModel: 9,
},
},
},
"openai"
);
assert.equal(result.timeoutMs, 600000);
assert.equal(result.queueTimeoutMs, 15000);
assert.equal(result.concurrencyPerModel, 9);
assert.equal(result.trackMetrics, false);
assert.equal(result.strategy, "priority");
});
test("resolveComboConfig skips provider overrides when provider is absent", () => {
const result = resolveComboConfig(
{ config: {} },
{
comboDefaults: { strategy: "random" },
providerOverrides: {
openai: { strategy: "weighted" },
},
}
);
assert.equal(result.strategy, "random");
});
test("resolveComboConfig tolerates invalid or missing inputs and falls back to defaults", () => {
assert.deepEqual(resolveComboConfig(null, null, "openai"), getDefaultComboConfig());
assert.deepEqual(resolveComboConfig({}, { comboDefaults: null }, null), getDefaultComboConfig());
});