apex-code-coverage-transformer
Version:
Transform Salesforce Apex code coverage JSONs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
35 lines • 1.22 kB
JavaScript
;
export class LcovCoverageHandler {
coverageObj;
constructor() {
this.coverageObj = { files: [] };
}
processFile(filePath, fileName, lines) {
const uncoveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 0)
.map(Number);
const coveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 1)
.map(Number);
const lcovFile = {
sourceFile: filePath,
lines: [],
totalLines: uncoveredLines.length + coveredLines.length,
coveredLines: coveredLines.length,
};
for (const [lineNumber, isCovered] of Object.entries(lines)) {
lcovFile.lines.push({
lineNumber: Number(lineNumber),
hitCount: isCovered === 1 ? 1 : 0,
});
}
this.coverageObj.files.push(lcovFile);
}
finalize() {
if ('files' in this.coverageObj && Array.isArray(this.coverageObj.files)) {
this.coverageObj.files.sort((a, b) => a.sourceFile.localeCompare(b.sourceFile));
}
return this.coverageObj;
}
}
//# sourceMappingURL=lcov.js.map