From c9ee71b769e66c31444da873ad536d5c97fc67c5 Mon Sep 17 00:00:00 2001 From: Veaceslav Medvedev Date: Sat, 26 Feb 2022 20:15:03 +0100 Subject: [PATCH] Refactor code --- dist/index.js | 22 +++++++++++++--------- src/comments.js | 16 ++++++++-------- src/index.js | 2 ++ tests/report.test.js | 3 ++- 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/dist/index.js b/dist/index.js index 4428615..245c65b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14941,21 +14941,21 @@ function generateTableRow(title, { } function generateTable({ - report, + report: { metrics, threshold: { metric } }, context, }) { - const metric = report.metrics[report.threshold.metric]; + const { rate, level } = metrics[metric]; return `${generateCommentHeader({ context })} -## ${context}${generateEmoji(metric)} +## ${context}${generateEmoji({ rate })} -| Totals | ![Coverage](${generateBadgeUrl(metric)}) | +| Totals | ![Coverage](${generateBadgeUrl({ rate, level })}) | | :-- | :-- | ${[ - generateTableRow('Statements', report.metrics.statements), - generateTableRow('Methods', report.metrics.methods), - generateTableRow('Lines', report.metrics.lines), - generateTableRow('Branches', report.metrics.branches), + generateTableRow('Statements', metrics.statements), + generateTableRow('Methods', metrics.methods), + generateTableRow('Lines', metrics.lines), + generateTableRow('Branches', metrics.branches), ].join('')}`; } @@ -14994,7 +14994,9 @@ function toBool(value, def) { } function toBips(value, def) { - return Math.round(Number(value) * 100) || def; + return value !== undefined + ? Math.round(Number(value) * 100) + : def; } function getWorkingDirectory() { @@ -15637,6 +15639,8 @@ async function run() { const report = generateReport(threshold, await parseFile(workingDir, coveragePath, coverageFormat)); + core.debug(`Report generated: ${JSON.stringify(report)}`); + if (pr) { const client = github.getOctokit(githubToken).rest; diff --git a/src/comments.js b/src/comments.js index 8958e4a..f59bb3f 100644 --- a/src/comments.js +++ b/src/comments.js @@ -19,21 +19,21 @@ function generateTableRow(title, { } function generateTable({ - report, + report: { metrics, threshold: { metric } }, context, }) { - const metric = report.metrics[report.threshold.metric]; + const { rate, level } = metrics[metric]; return `${generateCommentHeader({ context })} -## ${context}${generateEmoji(metric)} +## ${context}${generateEmoji({ rate })} -| Totals | ![Coverage](${generateBadgeUrl(metric)}) | +| Totals | ![Coverage](${generateBadgeUrl({ rate, level })}) | | :-- | :-- | ${[ - generateTableRow('Statements', report.metrics.statements), - generateTableRow('Methods', report.metrics.methods), - generateTableRow('Lines', report.metrics.lines), - generateTableRow('Branches', report.metrics.branches), + generateTableRow('Statements', metrics.statements), + generateTableRow('Methods', metrics.methods), + generateTableRow('Lines', metrics.lines), + generateTableRow('Branches', metrics.branches), ].join('')}`; } diff --git a/src/index.js b/src/index.js index 4ab5b71..76b6e1c 100644 --- a/src/index.js +++ b/src/index.js @@ -35,6 +35,8 @@ async function run() { const report = generateReport(threshold, await parseFile(workingDir, coveragePath, coverageFormat)); + core.debug(`Report generated: ${JSON.stringify(report)}`); + if (pr) { const client = github.getOctokit(githubToken).rest; diff --git a/tests/report.test.js b/tests/report.test.js index db34884..6bb8448 100644 --- a/tests/report.test.js +++ b/tests/report.test.js @@ -97,7 +97,8 @@ describe(`${calculateLevel.name}`, () => { { rate: 90, threshold: defaultThreshold, level: 'green' }, { rate: 91, threshold: defaultThreshold, level: 'green' }, { rate: 100, threshold: defaultThreshold, level: 'green' }, - ])('calculates level $rate with $threshold', async ({ rate, threshold, level }) => { + { rate: 95, threshold: { ...defaultThreshold, alert: 0 }, level: 'green' }, + ])('calculates level $rate with $threshold is $level', async ({ rate, threshold, level }) => { expect.hasAssertions(); expect(calculateLevel(rate, threshold)).toBe(level); });