Skip to content

Commit

Permalink
fix: sorting on each coverage format handler
Browse files Browse the repository at this point in the history
  • Loading branch information
mcarvin8 committed Jan 16, 2025
1 parent ca65dd0 commit b7b9244
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 4 deletions.
5 changes: 5 additions & 0 deletions src/handlers/cloverCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ export class CloverCoverageHandler implements CoverageHandler {
}

public finalize(): CloverCoverageObject {
if (this.coverageObj.coverage?.project?.file) {
this.coverageObj.coverage.project.file.sort((a, b) =>
a['@path'].localeCompare(b['@path'])
);
}
return this.coverageObj;
}
}
12 changes: 12 additions & 0 deletions src/handlers/coberturaCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,18 @@ export class CoberturaCoverageHandler implements CoverageHandler {
}

public finalize(): CoberturaCoverageObject {
if (this.coverageObj.coverage?.packages?.package) {
this.coverageObj.coverage.packages.package.sort((a, b) =>
a['@name'].localeCompare(b['@name'])
);
for (const pkg of this.coverageObj.coverage.packages.package) {
if (pkg.classes?.class) {
pkg.classes.class.sort((a, b) =>
a['@filename'].localeCompare(b['@filename'])
);
}
}
}
return this.coverageObj;
}
}
5 changes: 5 additions & 0 deletions src/handlers/lcovCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ export class LcovCoverageHandler implements CoverageHandler {
}

public finalize(): LcovCoverageObject {
if ('files' in this.coverageObj && Array.isArray(this.coverageObj.files)) {
this.coverageObj.files.sort((a, b) =>
a.sourceFile.localeCompare(b.sourceFile)
);
}
return this.coverageObj;
}
}
5 changes: 5 additions & 0 deletions src/handlers/sonarCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ export class SonarCoverageHandler implements CoverageHandler {
}

public finalize(): SonarCoverageObject {
if (this.coverageObj.coverage?.file) {
this.coverageObj.coverage.file.sort((a, b) =>
a['@path'].localeCompare(b['@path'])
);
}
return this.coverageObj;
}
}
4 changes: 0 additions & 4 deletions src/helpers/generateReport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ export function generateReport(
if (format === 'lcovonly') {
if ('files' in coverageObj) {
let lcovOutput = '';
coverageObj.files.sort((a, b) => a.sourceFile.localeCompare(b.sourceFile));
for (const file of coverageObj.files) {
lcovOutput += `TN:\nSF:${file.sourceFile}\n`;
lcovOutput += 'FNF:0\nFNH:0\n';
Expand All @@ -29,9 +28,6 @@ export function generateReport(
}

const isHeadless = format === 'cobertura' || format === 'clover';
if ('files' in coverageObj) {
coverageObj.files.sort((a, b) => a.sourceFile.localeCompare(b.sourceFile));
}
let xml = create(coverageObj).end({ prettyPrint: true, indent: ' ', headless: isHeadless });

if (format === 'cobertura') {
Expand Down

0 comments on commit b7b9244

Please sign in to comment.