diff --git a/__tests__/message.test.ts b/__tests__/message.test.ts index b551fe1..db7ebdc 100644 --- a/__tests__/message.test.ts +++ b/__tests__/message.test.ts @@ -16,7 +16,7 @@ describe('buildMessage', () => { coverage: [], coverageBefore: [], coverageFile: 'packages/project_a/coverage/lcov.info' - } + } as CoveredProject const projectB = { name: 'project_b', @@ -25,7 +25,7 @@ describe('buildMessage', () => { coverage: [], coverageBefore: [], coverageFile: 'packages/project_b/coverage/lcov.info' - } + } as CoveredProject it('returns the correct message when projects array has one project', () => { const projects: CoveredProject[] = [projectA] @@ -40,6 +40,16 @@ describe('buildMessage', () => { const result = buildMessage(projects, sha) expect(result).toEqual(expected2Projects) }) + + it("returns correct message when projects don't have coverage before", () => { + const projects: CoveredProject[] = [ + { ...projectA, coverageBefore: undefined }, + { ...projectB, coverageBefore: undefined } + ] + const sha = 'abcdef1234567890' + const result = buildMessage(projects, sha) + expect(result).toEqual(expected2ProjectsNoBefore) + }) }) const expected1Project = `# Coverage Report @@ -89,6 +99,44 @@ Description B ![0% - fail](http://img.shields.io/badge/project__b-0.00%25-critical) ➡️ 0.00% +
+Coverage Details for project_b + +| File | Line Percentage | Line Count | +| --- | --- | --- | + +
+ +` + +const expected2ProjectsNoBefore = `# Coverage Report +This is an automatic coverage report for abcdef12, proudly generated by [Dart Coverage Assistant](https://github.com/whynotmake-it/dart-coverage-assistant) 🎯🧪. + +## Monorepo coverage +This repository contains 2 Dart projects. This is is the total coverage across all of them: + +![0% - fail](http://img.shields.io/badge/0.00%25-critical) + +## \`project_a\` +Description A + +![0% - fail](http://img.shields.io/badge/project__a-0.00%25-critical) + + +
+Coverage Details for project_a + +| File | Line Percentage | Line Count | +| --- | --- | --- | + +
+ +## \`project_b\` +Description B + +![0% - fail](http://img.shields.io/badge/project__b-0.00%25-critical) + +
Coverage Details for project_b diff --git a/dist/index.js b/dist/index.js index 049f167..b5caed0 100644 --- a/dist/index.js +++ b/dist/index.js @@ -20452,7 +20452,10 @@ function getTotalPercentage(projects) { } exports.getTotalPercentage = getTotalPercentage; function getTotalPercentageBefore(projects) { - return getLineCoverage(getSectionSummaries(projects, 'coverageBefore')); + if (projects.some(p => p.coverageBefore !== undefined)) { + return getLineCoverage(getSectionSummaries(projects, 'coverageBefore')); + } + return undefined; } exports.getTotalPercentageBefore = getTotalPercentageBefore; function getSectionSummaries(projects, coverageKey) { @@ -20711,7 +20714,7 @@ function buildBody(project) { } function buildDiffString(diff) { if (diff === undefined) { - return '-'; + return ''; } if (diff === 0) { return `➡️ ${diff.toFixed(2)}%`; diff --git a/src/lcov.ts b/src/lcov.ts index d2c309e..e39fd68 100644 --- a/src/lcov.ts +++ b/src/lcov.ts @@ -119,8 +119,11 @@ export function getTotalPercentage( export function getTotalPercentageBefore( projects: CoveredProject[] -): LineCoverage { - return getLineCoverage(getSectionSummaries(projects, 'coverageBefore')) +): LineCoverage | undefined { + if (projects.some(p => p.coverageBefore !== undefined)) { + return getLineCoverage(getSectionSummaries(projects, 'coverageBefore')) + } + return undefined } function getSectionSummaries( diff --git a/src/message.ts b/src/message.ts index 5fa2730..ea10b32 100644 --- a/src/message.ts +++ b/src/message.ts @@ -123,7 +123,7 @@ function buildBody(project: CoveredProject): string { function buildDiffString(diff: number | undefined): string { if (diff === undefined) { - return '-' + return '' } if (diff === 0) { return `➡️ ${diff.toFixed(2)}%`