@@ -2046,15 +2046,16 @@ function run() {
2046
2046
. toString ( )
2047
2047
. trim ( ) ;
2048
2048
const diffChecker = new DiffChecker_1 . DiffChecker ( codeCoverageNew , codeCoverageOld ) ;
2049
- let messageToPost = `Code coverage diff between base branch:${ branchNameBase } and head branch: ${ branchNameHead } \n` ;
2049
+ let messageToPost = `## Test coverage results :test_tube: \n
2050
+ Code coverage diff between base branch:${ branchNameBase } and head branch: ${ branchNameHead } \n` ;
2050
2051
const coverageDetails = diffChecker . getCoverageDetails ( ! fullCoverage , `${ currentDirectory } /` ) ;
2051
2052
if ( coverageDetails . length === 0 ) {
2052
2053
messageToPost =
2053
2054
'No changes to code coverage between the base branch and the head branch' ;
2054
2055
}
2055
2056
else {
2056
2057
messageToPost +=
2057
- 'File | % Stmts | % Branch | % Funcs | % Lines \n -----|---------|----------|---------|------ \n' ;
2058
+ 'Status | File | % Stmts | % Branch | % Funcs | % Lines \n -----| -----|---------|----------|---------|------ \n' ;
2058
2059
messageToPost += coverageDetails . join ( '\n' ) ;
2059
2060
}
2060
2061
yield githubClient . issues . createComment ( {
@@ -6676,6 +6677,9 @@ module.exports = isPlainObject;
6676
6677
6677
6678
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
6678
6679
exports . DiffChecker = void 0 ;
6680
+ const increasedCoverageIcon = ':green_circle:' ;
6681
+ const decreasedCoverageIcon = ':red_circle:' ;
6682
+ const newCoverageIcon = ':new:' ;
6679
6683
class DiffChecker {
6680
6684
constructor ( coverageReportNew , coverageReportOld ) {
6681
6685
this . diffCoverageReport = { } ;
@@ -6744,9 +6748,7 @@ class DiffChecker {
6744
6748
const keys = Object . keys ( diffCoverageData ) ;
6745
6749
for ( const key of keys ) {
6746
6750
if ( diffCoverageData [ key ] . oldPct !== diffCoverageData [ key ] . newPct ) {
6747
- const oldValue = Number ( diffCoverageData [ key ] . oldPct ) ;
6748
- const newValue = Number ( diffCoverageData [ key ] . newPct ) ;
6749
- if ( oldValue - newValue > delta ) {
6751
+ if ( - this . getPercentageDiff ( diffCoverageData [ key ] ) > delta ) {
6750
6752
return true ;
6751
6753
}
6752
6754
}
@@ -6756,12 +6758,16 @@ class DiffChecker {
6756
6758
}
6757
6759
createDiffLine ( name , diffFileCoverageData ) {
6758
6760
if ( ! diffFileCoverageData . branches . oldPct ) {
6759
- return `**${ name } ** | **${ diffFileCoverageData . statements . newPct } ** | **${ diffFileCoverageData . branches . newPct } ** | **${ diffFileCoverageData . functions . newPct } ** | **${ diffFileCoverageData . lines . newPct } **` ;
6761
+ // No old coverage found so that means we added a new file coverage
6762
+ return ` ${ newCoverageIcon } | **${ name } ** | **${ diffFileCoverageData . statements . newPct } ** | **${ diffFileCoverageData . branches . newPct } ** | **${ diffFileCoverageData . functions . newPct } ** | **${ diffFileCoverageData . lines . newPct } **` ;
6760
6763
}
6761
6764
else if ( ! diffFileCoverageData . branches . newPct ) {
6762
- return `~~${ name } ~~ | ~~${ diffFileCoverageData . statements . oldPct } ~~ | ~~${ diffFileCoverageData . branches . oldPct } ~~ | ~~${ diffFileCoverageData . functions . oldPct } ~~ | ~~${ diffFileCoverageData . lines . oldPct } ~~` ;
6765
+ // No new coverage found so that means we added a new deleted coverage
6766
+ return ` ${ decreasedCoverageIcon } | ~~${ name } ~~ | ~~${ diffFileCoverageData . statements . oldPct } ~~ | ~~${ diffFileCoverageData . branches . oldPct } ~~ | ~~${ diffFileCoverageData . functions . oldPct } ~~ | ~~${ diffFileCoverageData . lines . oldPct } ~~` ;
6763
6767
}
6764
- return `${ name } | ~~${ diffFileCoverageData . statements . oldPct } ~~ **${ diffFileCoverageData . statements . newPct } ** | ~~${ diffFileCoverageData . branches . oldPct } ~~ **${ diffFileCoverageData . branches . newPct } ** | ~~${ diffFileCoverageData . functions . oldPct } ~~ **${ diffFileCoverageData . functions . newPct } ** | ~~${ diffFileCoverageData . lines . oldPct } ~~ **${ diffFileCoverageData . lines . newPct } **` ;
6768
+ // Coverage existed before so calculate the diff status
6769
+ const statusIcon = this . getStatusIcon ( diffFileCoverageData ) ;
6770
+ return ` ${ statusIcon } | ${ name } | ${ diffFileCoverageData . statements . newPct } **(${ this . getPercentageDiff ( diffFileCoverageData . statements ) } )** | ${ diffFileCoverageData . branches . newPct } **(${ this . getPercentageDiff ( diffFileCoverageData . branches ) } )** | ${ diffFileCoverageData . functions . newPct } **(${ this . getPercentageDiff ( diffFileCoverageData . functions ) } )** | ${ diffFileCoverageData . lines . newPct } **(${ this . getPercentageDiff ( diffFileCoverageData . lines ) } )**` ;
6765
6771
}
6766
6772
compareCoverageValues ( diffCoverageData ) {
6767
6773
const keys = Object . keys ( diffCoverageData ) ;
@@ -6775,6 +6781,22 @@ class DiffChecker {
6775
6781
getPercentage ( coverageData ) {
6776
6782
return coverageData . pct ;
6777
6783
}
6784
+ getStatusIcon ( diffFileCoverageData ) {
6785
+ let overallDiff = 0 ;
6786
+ Object . values ( diffFileCoverageData ) . forEach ( coverageData => {
6787
+ overallDiff = overallDiff + this . getPercentageDiff ( coverageData ) ;
6788
+ } ) ;
6789
+ if ( overallDiff < 0 ) {
6790
+ return decreasedCoverageIcon ;
6791
+ }
6792
+ return increasedCoverageIcon ;
6793
+ }
6794
+ getPercentageDiff ( diffData ) {
6795
+ // get diff
6796
+ const diff = Number ( diffData . newPct ) - Number ( diffData . oldPct ) ;
6797
+ // round off the diff to 2 decimal places
6798
+ return Math . round ( ( diff + Number . EPSILON ) * 100 ) / 100 ;
6799
+ }
6778
6800
}
6779
6801
exports . DiffChecker = DiffChecker ;
6780
6802
@@ -9710,4 +9732,4 @@ function onceStrict (fn) {
9710
9732
9711
9733
/***/ } )
9712
9734
9713
- /******/ } ) ;
9735
+ /******/ } ) ;
0 commit comments