diff --git a/scripts/coverage/diff.mjs b/scripts/coverage/diff.mjs index 3145bcb..b50e0b6 100644 --- a/scripts/coverage/diff.mjs +++ b/scripts/coverage/diff.mjs @@ -47,6 +47,7 @@ const ALLOWED_GLOBS = [ /\.ya?ml$/, /\.gitignore$/, /\.npmrc$/, + /(^|\/)\.env(\.[^/]+)?$/, // .env, .env.example, .env.local, etc. // Shell scripts (not Vitest-covered) /\.sh$/, /\.bash$/, diff --git a/scripts/coverage/diff.test.mjs b/scripts/coverage/diff.test.mjs index 5aa9626..e9ffdf4 100644 --- a/scripts/coverage/diff.test.mjs +++ b/scripts/coverage/diff.test.mjs @@ -154,6 +154,19 @@ describe("computeDiffCoverage", () => { assert.equal(result.summary.filesChanged, 4); }); + test("skips .env template files (.env, .env.example, .env.local)", () => { + const lcov = parseLcov(lcovText); + const diff = new Map([ + [".env.example", new Set([1, 2, 3])], + [".env.local", new Set([1])], + [".env", new Set([1])], + ]); + const result = computeDiffCoverage(diff, lcov); + assert.equal(result.status, "pass"); + assert.equal(result.summary.filesGated, 0); + assert.equal(result.summary.filesChanged, 3); + }); + test("end-to-end fixture: mixed pass/fail/skip/no-data", () => { const lcov = parseLcov(lcovText); const diff = parseGitDiff(diffText);