@@ -2033,13 +2033,18 @@ function run() {
20332033 const commandToRun = core . getInput ( 'runCommand' ) ;
20342034 const commandAfterSwitch = core . getInput ( 'afterSwitchCommand' ) ;
20352035 const delta = Number ( core . getInput ( 'delta' ) ) ;
2036+ const rawTotalDelta = core . getInput ( 'total_delta' ) ;
20362037 const githubClient = github . getOctokit ( githubToken ) ;
20372038 const prNumber = github . context . issue . number ;
20382039 const branchNameBase = ( _a = github . context . payload . pull_request ) === null || _a === void 0 ? void 0 : _a . base . ref ;
20392040 const branchNameHead = ( _b = github . context . payload . pull_request ) === null || _b === void 0 ? void 0 : _b . head . ref ;
20402041 const useSameComment = JSON . parse ( core . getInput ( 'useSameComment' ) ) ;
20412042 const commentIdentifier = `<!-- codeCoverageDiffComment -->` ;
20422043 const deltaCommentIdentifier = `<!-- codeCoverageDeltaComment -->` ;
2044+ let totalDelta = null ;
2045+ if ( rawTotalDelta !== null ) {
2046+ totalDelta = Number ( rawTotalDelta ) ;
2047+ }
20432048 let commentId = null ;
20442049 child_process_1 . execSync ( commandToRun ) ;
20452050 const codeCoverageNew = ( JSON . parse ( fs_1 . default . readFileSync ( 'coverage-summary.json' ) . toString ( ) ) ) ;
@@ -2073,7 +2078,7 @@ function run() {
20732078 }
20742079 yield createOrUpdateComment ( commentId , githubClient , repoOwner , repoName , messageToPost , prNumber ) ;
20752080 // check if the test coverage is falling below delta/tolerance.
2076- if ( diffChecker . checkIfTestCoverageFallsBelowDelta ( delta ) ) {
2081+ if ( diffChecker . checkIfTestCoverageFallsBelowDelta ( delta , totalDelta ) ) {
20772082 if ( useSameComment ) {
20782083 commentId = yield findComment ( githubClient , repoName , repoOwner , prNumber , deltaCommentIdentifier ) ;
20792084 }
@@ -6713,12 +6718,32 @@ module.exports = isPlainObject;
67136718/***/ } ) ,
67146719
67156720/***/ 563 :
6716- /***/ ( function ( __unusedmodule , exports ) {
6721+ /***/ ( function ( __unusedmodule , exports , __webpack_require__ ) {
67176722
67186723"use strict" ;
67196724
6725+ var __createBinding = ( this && this . __createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
6726+ if ( k2 === undefined ) k2 = k ;
6727+ Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
6728+ } ) : ( function ( o , m , k , k2 ) {
6729+ if ( k2 === undefined ) k2 = k ;
6730+ o [ k2 ] = m [ k ] ;
6731+ } ) ) ;
6732+ var __setModuleDefault = ( this && this . __setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
6733+ Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
6734+ } ) : function ( o , v ) {
6735+ o [ "default" ] = v ;
6736+ } ) ;
6737+ var __importStar = ( this && this . __importStar ) || function ( mod ) {
6738+ if ( mod && mod . __esModule ) return mod ;
6739+ var result = { } ;
6740+ if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) __createBinding ( result , mod , k ) ;
6741+ __setModuleDefault ( result , mod ) ;
6742+ return result ;
6743+ } ;
67206744Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
67216745exports . DiffChecker = void 0 ;
6746+ const core = __importStar ( __webpack_require__ ( 470 ) ) ;
67226747const increasedCoverageIcon = ':green_circle:' ;
67236748const decreasedCoverageIcon = ':red_circle:' ;
67246749const newCoverageIcon = ':sparkles: :new:' ;
@@ -6766,20 +6791,24 @@ class DiffChecker {
67666791 }
67676792 return returnStrings ;
67686793 }
6769- checkIfTestCoverageFallsBelowDelta ( delta ) {
6770- const keys = Object . keys ( this . diffCoverageReport ) ;
6771- for ( const key of keys ) {
6772- const diffCoverageData = this . diffCoverageReport [ key ] ;
6794+ checkIfTestCoverageFallsBelowDelta ( delta , totalDelta ) {
6795+ const files = Object . keys ( this . diffCoverageReport ) ;
6796+ for ( const file of files ) {
6797+ const diffCoverageData = this . diffCoverageReport [ file ] ;
67736798 const keys = Object . keys ( diffCoverageData ) ;
67746799 // No new coverage found so that means we deleted a file coverage
67756800 const fileRemovedCoverage = Object . values ( diffCoverageData ) . every ( coverageData => coverageData . newPct === 0 ) ;
67766801 if ( fileRemovedCoverage ) {
6802+ core . info ( `${ file } : deleted or renamed and is not considered for coverage diff.` ) ;
67776803 // since the file is deleted don't include in delta calculation
67786804 continue ;
67796805 }
67806806 for ( const key of keys ) {
67816807 if ( diffCoverageData [ key ] . oldPct !== diffCoverageData [ key ] . newPct ) {
6782- if ( - this . getPercentageDiff ( diffCoverageData [ key ] ) > delta ) {
6808+ const deltaToCompareWith = file === 'total' && totalDelta !== null ? totalDelta : delta ;
6809+ if ( - this . getPercentageDiff ( diffCoverageData [ key ] ) > deltaToCompareWith ) {
6810+ const percentageDiff = this . getPercentageDiff ( diffCoverageData [ key ] ) ;
6811+ core . info ( `percentage Diff: ${ percentageDiff } is greater than delta for ${ file } ` ) ;
67836812 return true ;
67846813 }
67856814 }
0 commit comments