Make the test gate fail when no tests match
vitest.config.ts set passWithNoTests: true, added in the7dd4abbscaffolding commit when the repo genuinely had no tests yet. Once tests existed it became the same hazard as the oxlint bugs fixed in91f46ff: if the include globs ever stopped matching, the suite would exit 0 having run nothing. Vitest already defaults to failing in that case, so removing the line is the whole fix — a broken glob now reports "No test files found, exiting with code 1". Verified by pointing the globs at a nonexistent directory. Extends the gate check to flag the option coming back, and renames it from check-lint-gate to check-gates now that it covers more than oxlint. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,15 +48,21 @@ function failsOnWarnings(oxlintScript) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Reports ways the oxlint gate could pass without checking anything, which is
|
||||
* Reports ways a quality gate could pass without checking anything, which is
|
||||
* indistinguishable from a clean run.
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export function checkLintGate() {
|
||||
export function checkGates() {
|
||||
/** @type {Record<string, string>} */
|
||||
const scripts = JSON.parse(read("package.json")).scripts;
|
||||
const violations = findGatesWithOwnFlags(scripts);
|
||||
|
||||
// Vitest defaults to failing when no test file matches. Setting this puts
|
||||
// the test gate back to exiting 0 if the include globs ever stop matching.
|
||||
if (read("vitest.config.ts").includes("passWithNoTests")) {
|
||||
violations.push("vitest.config.ts sets passWithNoTests");
|
||||
}
|
||||
|
||||
// The canary rule below is not type-aware, so the probe alone cannot
|
||||
// detect type-aware rules being switched off.
|
||||
if (!scripts.oxlint.includes("--type-aware")) {
|
||||
Reference in New Issue
Block a user