Files
OmniRoute/tests/unit/quota-constrain-connections.test.ts
Hernan Javier Ardila Sanchez fd26e601a2 fix(dashboard): use lightweight ping endpoint for MaintenanceBanner (fixes #3040) (#3043)
Integrated into release/v3.8.8. Applied review fixes: moved the SELECT 1 into a pingDb() db helper (no raw SQL in route, Hard Rule #5) + the 503 catch no longer leaks err.message (Hard Rule #12). Thanks @herjarsa!
2026-06-01 14:30:17 -03:00

39 lines
1.4 KiB
TypeScript

/**
* tests/unit/quota-constrain-connections.test.ts
*
* TDD coverage for src/lib/quota/quotaKey.ts::constrainConnectionsToQuota.
* Pure-function tests — no DB setup needed.
*
* Cases:
* 1. Non-quota key (empty quotaConnectionIds) → existing returned unchanged.
* 2. No prior constraint (empty existing) + quota [c1,c2] → [c1,c2].
* 3. Existing [c1,c2,c3] ∩ quota [c2] → [c2].
* 4. Disjoint sets → [].
*/
import { test } from "node:test";
import assert from "node:assert/strict";
import { constrainConnectionsToQuota } from "../../src/lib/quota/quotaKey.ts";
test("non-quota key: empty quotaConnectionIds returns existing unchanged", () => {
const existing = ["c1", "c2", "c3"];
const result = constrainConnectionsToQuota(existing, []);
assert.deepStrictEqual(result, existing);
});
test("no prior constraint: empty existing with quota [c1,c2] returns [c1,c2]", () => {
const result = constrainConnectionsToQuota([], ["c1", "c2"]);
assert.deepStrictEqual(result, ["c1", "c2"]);
});
test("intersection: existing [c1,c2,c3] ∩ quota [c2] returns [c2]", () => {
const result = constrainConnectionsToQuota(["c1", "c2", "c3"], ["c2"]);
assert.deepStrictEqual(result, ["c2"]);
});
test("disjoint sets: no common elements returns empty array", () => {
const result = constrainConnectionsToQuota(["c1", "c2"], ["c3", "c4"]);
assert.deepStrictEqual(result, []);
});