Skip to content

Commit

Permalink
fix: enhance coverage reporting with handling for undefined coverageB…
Browse files Browse the repository at this point in the history
…efore
  • Loading branch information
timcreatedit committed Nov 5, 2024
1 parent ad75c2a commit ac32f5b
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 4 deletions.
52 changes: 50 additions & 2 deletions __tests__/message.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ describe('buildMessage', () => {
coverage: [],
coverageBefore: [],
coverageFile: 'packages/project_a/coverage/lcov.info'
}
} as CoveredProject

const projectB = {
name: 'project_b',
Expand All @@ -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]
Expand All @@ -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
Expand Down Expand Up @@ -89,6 +99,44 @@ Description B
![0% - fail](http://img.shields.io/badge/project__b-0.00%25-critical) ➡️ 0.00%
<details>
<summary>Coverage Details for <strong>project_b</strong></summary>
| File | Line Percentage | Line Count |
| --- | --- | --- |
</details>
`

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)
<details>
<summary>Coverage Details for <strong>project_a</strong></summary>
| File | Line Percentage | Line Count |
| --- | --- | --- |
</details>
## \`project_b\`
Description B
![0% - fail](http://img.shields.io/badge/project__b-0.00%25-critical)
<details>
<summary>Coverage Details for <strong>project_b</strong></summary>
Expand Down
7 changes: 5 additions & 2 deletions src/lcov.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down

0 comments on commit ac32f5b

Please sign in to comment.