chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* tests/unit/combo-hedging.test.ts
|
||||
*
|
||||
* Previously a placeholder (two `assert.ok(true)`). Now exercises the two
|
||||
* zero-latency features it claims to cover:
|
||||
* 1. Predictive-TTFT circuit-breaker DECISION (shouldSkipForPredictedTtft).
|
||||
* 2. Hedging / zero-latency CONFIG resolution (defaults + per-combo override),
|
||||
* i.e. the knobs the combo engine reads before racing/skip-ahead.
|
||||
*
|
||||
* The full hedging DISPATCH (Promise.race + loser abort) is covered end-to-end
|
||||
* in combo-routing-engine.test.ts; here we pin the decision logic + config
|
||||
* plumbing that gate it (both opt-in / off by default).
|
||||
*/
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { shouldSkipForPredictedTtft } from "../../open-sse/services/combo.ts";
|
||||
import { getDefaultComboConfig, resolveComboConfig } from "../../open-sse/services/comboConfig.ts";
|
||||
|
||||
// ── Predictive-TTFT circuit breaker (decision) ────────────────────────────────
|
||||
test("predictive-TTFT — skips a model whose avg latency exceeds the ceiling (enough samples)", () => {
|
||||
assert.equal(shouldSkipForPredictedTtft({ requests: 10, avgLatencyMs: 5000 }, 2000), true);
|
||||
});
|
||||
|
||||
test("predictive-TTFT — does NOT skip with too few samples (< 5)", () => {
|
||||
assert.equal(shouldSkipForPredictedTtft({ requests: 4, avgLatencyMs: 9000 }, 2000), false);
|
||||
});
|
||||
|
||||
test("predictive-TTFT — does NOT skip when avg latency is within the ceiling", () => {
|
||||
assert.equal(shouldSkipForPredictedTtft({ requests: 50, avgLatencyMs: 1200 }, 2000), false);
|
||||
});
|
||||
|
||||
test("predictive-TTFT — disabled (ceiling <= 0) never skips", () => {
|
||||
assert.equal(shouldSkipForPredictedTtft({ requests: 50, avgLatencyMs: 9000 }, 0), false);
|
||||
});
|
||||
|
||||
test("predictive-TTFT — null/missing metric never skips", () => {
|
||||
assert.equal(shouldSkipForPredictedTtft(null, 2000), false);
|
||||
assert.equal(shouldSkipForPredictedTtft(undefined, 2000), false);
|
||||
});
|
||||
|
||||
// ── Hedging / zero-latency config resolution ──────────────────────────────────
|
||||
test("hedging — defaults are opt-in (off) so normal combos never race", () => {
|
||||
const d = getDefaultComboConfig();
|
||||
assert.equal(d.hedging, false);
|
||||
assert.equal(d.hedgeDelayMs, 500);
|
||||
assert.equal(d.predictiveTtftMs, 0);
|
||||
assert.equal(d.zeroLatencyOptimizationsEnabled, false);
|
||||
});
|
||||
|
||||
test("hedging — per-combo config overrides the zero-latency defaults", () => {
|
||||
const resolved = resolveComboConfig(
|
||||
{
|
||||
config: {
|
||||
hedging: true,
|
||||
hedgeDelayMs: 200,
|
||||
zeroLatencyOptimizationsEnabled: true,
|
||||
predictiveTtftMs: 3000,
|
||||
},
|
||||
},
|
||||
null
|
||||
);
|
||||
assert.equal(resolved.hedging, true);
|
||||
assert.equal(resolved.hedgeDelayMs, 200);
|
||||
assert.equal(resolved.zeroLatencyOptimizationsEnabled, true);
|
||||
assert.equal(resolved.predictiveTtftMs, 3000);
|
||||
});
|
||||
Reference in New Issue
Block a user