Files
OmniRoute/tests/unit/check-docs-counts-quality-pinning.test.ts
Dizzle 9795372ef1 fix(auto-combo): give every mode pack quality and reliability weights (#12731)
Validado numa worktree combinada com a onda de roteamento/free-tier desta leva sobre `release/v3.8.51`: typecheck:core limpo, check-api-typecheck OK (288), check-file-size OK após rebaseline, 84/85 nos testes focados.

`reliability-first` que não pesava reliability é o defeito mais constrangedor possível num mode pack, e a causa é clara: `modePacks.ts:13` substituía os defaults por inteiro. Financiar os novos pesos com `quota`/`costInv`/`tierPriority` mantendo cada pack somando 1.0 é a parte que exige cuidado e você fez.

Manter `quality-first` em 0.03, igual ao default, para que ele não fique mais fraco que `balanced`, é o tipo de detalhe que só aparece quando se checa a tabela inteira.

**Integração:** conflitou com o #12794 no `computeSnapshotWeights`; os dois compõem e ambos ficaram.
2026-09-10 09:13:04 -03:00

23 lines
881 B
TypeScript

import { test } from "node:test";
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import { MODE_PACKS } from "../../open-sse/services/autoCombo/modePacks.ts";
// Every pack pins quality explicitly so none silently inherits a future DEFAULT.
// Locks, not TDD: green on existing behavior, break on silent regression.
test("every pack pins quality explicitly (no silent DEFAULT inheritance)", () => {
for (const [name, pack] of Object.entries(MODE_PACKS)) {
assert.ok(
typeof (pack as { quality?: unknown }).quality === "number",
`${name} must pin quality`
);
}
});
test("scoring fallback stays neutral (no DEFAULT inheritance)", () => {
const src = readFileSync("open-sse/services/autoCombo/scoring.ts", "utf8");
assert.match(src, /weights\.quality \?\? 0\)/);
assert.match(src, /factors\.quality \?\? 0\.5\)/);
});