Files
diegosouzapw--omniroute/tests/unit/routing-settings-ux-6147.test.ts
2026-07-13 13:39:12 +08:00

54 lines
2.5 KiB
TypeScript

// #6147 — routing/settings UX clarity. Pure-function guards for two of the three
// sub-fixes:
// 1. Weighted effective-share % (weight ÷ Σweights), incl. total===0 and sum≠100.
// 3. Opt-in base-URL override eligibility predicate for built-in providers.
// (Item 2 is a display-only label rename with no pure seam — manual verification.)
import { test } from "node:test";
import assert from "node:assert/strict";
import { effectiveSharePercent } from "../../src/app/(dashboard)/dashboard/combos/WeightTotalBar.tsx";
import {
isBaseUrlOverrideEligibleProvider,
isBaseUrlConfigurableProvider,
} from "../../src/app/(dashboard)/dashboard/providers/[id]/providerPageHelpers.ts";
test("effectiveSharePercent — sum === 100 keeps raw weight", () => {
assert.equal(effectiveSharePercent(30, 100), 30);
assert.equal(effectiveSharePercent(70, 100), 70);
});
test("effectiveSharePercent — sum !== 100 rescales to the effective share", () => {
// Two equal weights of 30 (total 60) are each an effective 50%.
assert.equal(effectiveSharePercent(30, 60), 50);
// Over-100 total: 150 total, weight 75 → 50%.
assert.equal(effectiveSharePercent(75, 150), 50);
});
test("effectiveSharePercent — guards total === 0 and non-positive weight (no NaN)", () => {
assert.equal(effectiveSharePercent(0, 0), 0);
assert.equal(effectiveSharePercent(50, 0), 0);
assert.equal(effectiveSharePercent(0, 100), 0);
assert.equal(effectiveSharePercent(-10, 100), 0);
assert.ok(!Number.isNaN(effectiveSharePercent(10, 0)));
});
test("isBaseUrlOverrideEligibleProvider — built-in providers are opt-in eligible", () => {
// A plain built-in that has no dedicated base-URL field today.
assert.equal(isBaseUrlOverrideEligibleProvider("openai"), true);
assert.equal(isBaseUrlOverrideEligibleProvider("groq"), true);
});
test("isBaseUrlOverrideEligibleProvider — providers with an always-on field are NOT re-offered", () => {
// Everything already covered by the configurable set stays false here so the
// override does not double up on the existing dedicated field.
for (const id of ["azure-openai", "databricks", "siliconflow"]) {
assert.equal(isBaseUrlConfigurableProvider(id), true);
assert.equal(isBaseUrlOverrideEligibleProvider(id), false);
}
});
test("isBaseUrlOverrideEligibleProvider — empty/nullish ids are not eligible", () => {
assert.equal(isBaseUrlOverrideEligibleProvider(""), false);
assert.equal(isBaseUrlOverrideEligibleProvider(null), false);
assert.equal(isBaseUrlOverrideEligibleProvider(undefined), false);
});