mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
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!
39 lines
1.4 KiB
TypeScript
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, []);
|
|
});
|