From a848427fdff739cd5aafe0cc8ce466ba8ab5b88e Mon Sep 17 00:00:00 2001 From: anashamidkh Date: Tue, 5 Dec 2023 19:45:01 +0500 Subject: [PATCH] feat(report): add support for listing uncovered branch lines --- bin/cli.js | 4 +++- coverageOnDiff.js | 6 ++++++ package.json | 2 +- test/testCoverageOnDiff.js | 8 ++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 007b381..9d3e0a8 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -120,11 +120,12 @@ try { */ if (argv.report.includes('text')) { const data = []; - data.push(['File', '% Stmt', '% Branch', 'Uncovered Line #s', 'Lines Changed']); + data.push(['File', '% Stmt', '% Branch', 'Uncovered Line #s', 'Uncovered Branch Line #s', 'Lines Changed']); data.push(['All changed files', getColorMessage(totalStmtPercentage, `${totalStmtPercentage}%`), getColorMessage(totalBranchPercentage, `${totalBranchPercentage}%`), '', + '', '']); _.forEach(diffCodeCoverage, (value, key) => { @@ -140,6 +141,7 @@ try { getColorMessage(stmtPercentage, `${stmtPercentage}%`), getColorMessage(branchPercentage, `${branchPercentage}%`), value.stmt.unCoveredLines.toString(), + value.branch.unCoveredLines.toString(), value.lines]); }); const options = { diff --git a/coverageOnDiff.js b/coverageOnDiff.js index 9e8a42c..62761bd 100644 --- a/coverageOnDiff.js +++ b/coverageOnDiff.js @@ -98,12 +98,16 @@ function changedBranchCoverage(coverage, changedLines) { let nCovered = 0; let nUncovered = 0; + const changedCoveredLines = []; + const unchangedCoveredLines = []; for (const line of changedLines) { if (coveredLines.includes(line)) { + changedCoveredLines.push(line); nCovered++; } if (uncoveredLines.includes(line)) { + unchangedCoveredLines.push(line); nUncovered++; } } @@ -111,6 +115,8 @@ function changedBranchCoverage(coverage, changedLines) { return { nCovered, nUncovered, + coveredLines: changedCoveredLines, + unCoveredLines: unchangedCoveredLines, }; } diff --git a/package.json b/package.json index b2fd12f..aa9e2c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coverage-on-diff", - "version": "0.0.3", + "version": "0.0.4", "description": "A tool to get code coverage on new lines added based on a diff", "main": "index.js", "scripts": { diff --git a/test/testCoverageOnDiff.js b/test/testCoverageOnDiff.js index abd14c8..4828c4a 100644 --- a/test/testCoverageOnDiff.js +++ b/test/testCoverageOnDiff.js @@ -174,6 +174,8 @@ describe('CoverageOnDiff Test', () => { result.should.eql({ nCovered: 0, nUncovered: 0, + coveredLines: [], + unCoveredLines: [], }); }); it('should have covered branch changes', () => { @@ -181,6 +183,8 @@ describe('CoverageOnDiff Test', () => { result.should.eql({ nCovered: 1, nUncovered: 0, + coveredLines: [10], + unCoveredLines: [], }); }); it('should have uncovered branch changes', () => { @@ -188,6 +192,8 @@ describe('CoverageOnDiff Test', () => { result.should.eql({ nCovered: 0, nUncovered: 1, + coveredLines: [], + unCoveredLines: [15], }); }); it('should be uncovered branch when there is at least 1 uncovered path', () => { @@ -195,6 +201,8 @@ describe('CoverageOnDiff Test', () => { result.should.eql({ nCovered: 0, nUncovered: 1, + coveredLines: [], + unCoveredLines: [30], }); }); });