Skip to content

Commit

Permalink
Make a helper method for calculation of change line total and covered
Browse files Browse the repository at this point in the history
  • Loading branch information
tmonck committed Feb 23, 2025
1 parent 868805a commit 19e81e1
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 6 deletions.
6 changes: 3 additions & 3 deletions src/parsers/cobertura.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CoverageParser, ICoverageData, ICoverageFile, ICoverageModule, ChangedFileWithLineNumbers } from '../data';
import { calculateCoverage, createCoverageModule, parseCoverage } from './common';
import { calculateCoverage, calculateChangedLineTotals, calculateChangedLinesCovered, createCoverageModule, parseCoverage } from './common';

const parseCobertura: CoverageParser = async (filePath: string, threshold: number, changedFilesAndLineNumbers: ChangedFileWithLineNumbers[]) =>
parseCoverage(filePath, threshold, changedFilesAndLineNumbers, parseSummary, parseModules);
Expand All @@ -11,8 +11,8 @@ const parseSummary = (file: any, modules: ICoverageModule[]): ICoverageData => {
Number(summary['lines-valid']) + Number(summary['branches-valid'])
);

const changedLinesTotal = Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesTotal), 0)), 0))
const changedLinesCovered = Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesCovered), 0)), 0))
const changedLinesTotal = calculateChangedLineTotals(modules);
const changedLinesCovered = calculateChangedLinesCovered(modules);

return {
totalCoverage,
Expand Down
7 changes: 7 additions & 0 deletions src/parsers/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ export const calculateCoverage = (covered: number, total: number): number => {
return total ? Math.round((covered / total) * 10000) / 100 : 100;
};

export const calculateChangedLineTotals = (modules: ICoverageModule[]): number => {
return Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesTotal), 0)), 0))
}
export const calculateChangedLinesCovered = (modules: ICoverageModule[]): number => {
return Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesCovered), 0)), 0))
}

export const createCoverageModule = (
name: string,
threshold: number,
Expand Down
6 changes: 3 additions & 3 deletions src/parsers/opencover.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CoverageParser, ICoverageData, ICoverageFile, ICoverageModule, ChangedFileWithLineNumbers } from '../data';
import { calculateCoverage, createCoverageModule, parseCoverage } from './common';
import { calculateCoverage, calculateChangedLineTotals, calculateChangedLinesCovered, createCoverageModule, parseCoverage } from './common';

const parseOpencover: CoverageParser = async (filePath: string, threshold: number, changedFilesAndLineNumbers: ChangedFileWithLineNumbers[]) =>
parseCoverage(filePath, threshold, changedFilesAndLineNumbers, parseSummary, parseModules);
Expand All @@ -10,8 +10,8 @@ const parseSummary = (file: any, modules: ICoverageModule[]): ICoverageData => {
Number(summary.visitedSequencePoints) + Number(summary.visitedBranchPoints),
Number(summary.numSequencePoints) + Number(summary.numBranchPoints)
);
const changedLinesTotal = Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesTotal), 0)), 0))
const changedLinesCovered = Number(modules.reduce((summ, m) => summ + Number(m.files.reduce((summ2, f) => summ2 + Number(f.changedLinesCovered), 0)), 0))
const changedLinesTotal = calculateChangedLineTotals(modules);
const changedLinesCovered = calculateChangedLinesCovered(modules);

return {
totalCoverage,
Expand Down

0 comments on commit 19e81e1

Please sign in to comment.