diff --git a/changelog.d/fixes/0000-test-masking-allowlist-check-workflows.md b/changelog.d/fixes/0000-test-masking-allowlist-check-workflows.md new file mode 100644 index 000000000000..66e05c5fba6e --- /dev/null +++ b/changelog.d/fixes/0000-test-masking-allowlist-check-workflows.md @@ -0,0 +1 @@ +- **fix(quality):** allowlist the `check-workflows.test.ts` assert reduction (73->67) from #14497's fail-closed refactor - the graceful-fallback asserts were replaced by fail-closed `assert.throws`, verified legitimate, not test masking. diff --git a/config/quality/test-masking-allowlist.json b/config/quality/test-masking-allowlist.json index de0154921330..9792c1e717d5 100644 --- a/config/quality/test-masking-allowlist.json +++ b/config/quality/test-masking-allowlist.json @@ -262,5 +262,6 @@ "tests/unit/startup-stale-cooldown-recovery.test.ts": "v3.8.50 #11355: o contrato do startup foi INVERTIDO — clearStaleCrashCooldowns deixou de limpar todo cooldown transiente e passa a limpar apenas os EXPIRADOS/não-parseáveis, preservando um rateLimitedUntil futuro (quota semanal/mensal que era apagada a cada restart). Os asserts das pós-condições da limpeza deixaram de existir e foram substituídos pelos da preservação (cleared === 0 + campos intactos), net 24→21. Asserts migrados ao novo contrato, não enfraquecidos. Prune após v3.8.50 mergear para main.", "tests/unit/8134-github-t5-fallback-filter.test.ts": "v3.8.50 #11280: #10952 adicionou claude-opus-4.6 ao catálogo do github, então o papel de 'tier provadamente ausente' migrou para claude-opus-4-6-thinking. Os asserts desenrolados de 2 hops viraram um LOOP de 3 hops (cada hop assere pertencimento ao catálogo + ausência do tier morto) mais uma igualdade exata no hop final — cobertura ESTRITAMENTE MAIOR com contagem estática menor (10→9). Verificado legítimo. Prune após v3.8.50 mergear para main.", "tests/unit/model-capabilities-registry.test.ts": "v3.8.50 2764812ee4 (eliminate Gemini 3.5 Flash): os IDs gemini-3.5-flash{,-extra-low,-low} e gemini-3-flash-agent foram RETIRADOS do MODEL_SPECS, então os 6 asserts de capabilities por ID (contextWindow/maxOutputTokens/supportsThinking/Tools/Vision) deixaram de ter objeto e foram substituídos pelo assert da ausência (MODEL_SPECS[id] === undefined), net 77→72. Superfície aposentada, não mascaramento. Prune após v3.8.50 mergear para main.", - "tests/unit/openrouter-free-model-credits-exhausted.test.ts": "v3.8.52 #15436: serve only catalogued free-access models on credits-exhausted connections — the positive `:free` assert moved to tests/unit/openrouter-credits-exhausted-catalog-access.test.ts (a catalogued free-access model is still served); net 5→4 is a split, not masking." + "tests/unit/openrouter-free-model-credits-exhausted.test.ts": "v3.8.52 #15436: serve only catalogued free-access models on credits-exhausted connections — the positive `:free` assert moved to tests/unit/openrouter-credits-exhausted-catalog-access.test.ts (a catalogued free-access model is still served); net 5→4 is a split, not masking.", + "tests/unit/build/check-workflows.test.ts": "v3.8.52 #14497: fix(ci) fail closed on incomplete workflow audits — os asserts de fallback graceful do parseZizmorOutput (empty/invalid/unknown output → count=0) foram substituídos por assert.throws fail-closed, e o bloco de pinning do build advisory da quality.yml foi substituído pelo contrato de admission-delegation. Asserts migrados ao contrato fail-closed novo, não enfraquecidos (net 73→67). Verificado legítimo. Prune após v3.8.52 mergear para main." }