Skip to content

Commit 83ca418

Browse files
authored
fix(handlers): use correct data types for sonar and cobertura attributes (#233)
1 parent 61bf345 commit 83ca418

File tree

4 files changed

+10
-13
lines changed

4 files changed

+10
-13
lines changed

baselines/cobertura_baseline.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<packages>
88
<package name="force-app" line-rate="0.871" branch-rate="1">
99
<classes>
10-
<class name="AccountProfile" filename="force-app/main/default/classes/AccountProfile.cls" line-rate="0.8710" branch-rate="1">
10+
<class name="AccountProfile" filename="force-app/main/default/classes/AccountProfile.cls" line-rate="0.871" branch-rate="1">
1111
<methods/>
1212
<lines>
1313
<line number="52" hits="0" branch="false"/>
@@ -47,7 +47,7 @@
4747
</package>
4848
<package name="packaged" line-rate="0.871" branch-rate="1">
4949
<classes>
50-
<class name="AccountTrigger" filename="packaged/triggers/AccountTrigger.trigger" line-rate="0.8710" branch-rate="1">
50+
<class name="AccountTrigger" filename="packaged/triggers/AccountTrigger.trigger" line-rate="0.871" branch-rate="1">
5151
<methods/>
5252
<lines>
5353
<line number="52" hits="0" branch="false"/>

src/handlers/cobertura.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ export class CoberturaCoverageHandler extends BaseHandler {
5454
const classObj: CoberturaClass = {
5555
'@name': fileName,
5656
'@filename': filePath,
57-
'@line-rate': '0',
58-
'@branch-rate': '1',
57+
'@line-rate': 0,
58+
'@branch-rate': 1,
5959
methods: {},
6060
lines: { line: [] },
6161
};
@@ -69,7 +69,7 @@ export class CoberturaCoverageHandler extends BaseHandler {
6969
}
7070

7171
if (totalLines > 0) {
72-
classObj['@line-rate'] = (coveredLines / totalLines).toFixed(4);
72+
classObj['@line-rate'] = parseFloat((coveredLines / totalLines).toFixed(4));
7373
}
7474

7575
this.coverageObj.coverage['@lines-valid'] += totalLines;
@@ -83,10 +83,7 @@ export class CoberturaCoverageHandler extends BaseHandler {
8383
this.coverageObj.coverage.packages.package = Array.from(this.packageMap.values());
8484

8585
for (const pkg of this.coverageObj.coverage.packages.package) {
86-
const totalLines = pkg.classes.class.reduce(
87-
(sum, cls) => sum + parseFloat(cls['@line-rate']) * cls.lines.line.length,
88-
0
89-
);
86+
const totalLines = pkg.classes.class.reduce((sum, cls) => sum + cls['@line-rate'] * cls.lines.line.length, 0);
9087
const totalClasses = pkg.classes.class.reduce((sum, cls) => sum + cls.lines.line.length, 0);
9188

9289
pkg['@line-rate'] = parseFloat((totalLines / totalClasses).toFixed(4));

src/handlers/sonar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class SonarCoverageHandler extends BaseHandler {
2525
lineToCover: [],
2626
};
2727
for (const [lineNumberString, value] of Object.entries(lines)) {
28-
const covered = value === 1 ? 'true' : 'false';
28+
const covered = value === 1;
2929
fileObj.lineToCover.push({
3030
'@lineNumber': Number(lineNumberString),
3131
'@covered': covered,

src/utils/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export type CoverageProcessingContext = {
4646

4747
type SonarLine = {
4848
'@lineNumber': number;
49-
'@covered': string;
49+
'@covered': boolean;
5050
};
5151

5252
export type SonarClass = {
@@ -78,8 +78,8 @@ export type CoberturaLine = {
7878
export type CoberturaClass = {
7979
'@name': string;
8080
'@filename': string;
81-
'@line-rate': string;
82-
'@branch-rate': string;
81+
'@line-rate': number;
82+
'@branch-rate': number;
8383
methods: Record<string, never>;
8484
lines: {
8585
line: CoberturaLine[];

0 commit comments

Comments
 (0)