From 796c78e7dac233e772b68965b64c2dd0d49468fb Mon Sep 17 00:00:00 2001 From: Ade Attwood Date: Sat, 26 Aug 2023 10:26:23 +0100 Subject: [PATCH] feat: exit with non-zero status code if coverage is below 90% --- src/index.ts | 3 ++- src/report.ts | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index 5391e8c..035f69a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -69,5 +69,6 @@ export const run = async (argv = process.argv) => { const diff = parseDiff.default(diffText.stdout); - report(diff, baseCoverage); + const { percentage } = report(diff, baseCoverage); + process.exit(percentage > 90 ? 0 : 1); }; diff --git a/src/report.ts b/src/report.ts index dad386e..77fdf81 100644 --- a/src/report.ts +++ b/src/report.ts @@ -35,7 +35,7 @@ interface Diff { } export const printReport = (diff: Diff[], coverage: any) => { - const report = { total: 0, covered: 0 }; + const report = { total: 0, covered: 0, percentage: 0 }; for (const file of diff) { const fileCoverage = getCoverageForFile(file, coverage); @@ -77,13 +77,13 @@ export const printReport = (diff: Diff[], coverage: any) => { } } - const percentage = (report.covered / report.total) * 100; - const color = percentage > 90 ? "\x1b[32m" : "\x1b[31m"; + report.percentage = (report.covered / report.total) * 100; + const color = report.percentage > 90 ? "\x1b[32m" : "\x1b[31m"; console.log(""); console.log("Total Lines: ", report.total.toString()); console.log("Lines Covered: ", report.covered.toString()); - console.log("Coverage Percentage", color, percentage.toString() + "%", "\x1b[0m"); + console.log("Coverage Percentage", color, report.percentage.toString() + "%", "\x1b[0m"); return report; };