File tree Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change @@ -194,6 +194,10 @@ workflows:
194194 - run :
195195 command : npx nyc report --check-coverage true --lines 100 --include unit-utils.js
196196 working_directory : examples/same-folder
197+ - run :
198+ command : node ../../scripts/check-coverage main.js
199+ - run :
200+ command : node ../../scripts/check-coverage unit-utils.js
197201
198202 - publish :
199203 filters :
Original file line number Diff line number Diff line change 1+ const { join } = require ( 'path' )
2+
3+ const filename = process . argv [ 2 ]
4+ if ( ! filename ) {
5+ console . error ( 'Usage: node %s <file name>' , __filename )
6+ process . exit ( 1 )
7+ }
8+ const coverageFilename = join ( process . cwd ( ) , '.nyc_output' , 'out.json' )
9+ const coverage = require ( coverageFilename )
10+ const fileCoverageKey = Object . keys ( coverage ) . find ( name => {
11+ const fileCover = coverage [ name ]
12+ if ( fileCover . path . endsWith ( filename ) ) {
13+ return fileCover
14+ }
15+ } )
16+
17+ if ( ! fileCoverageKey ) {
18+ console . error (
19+ 'Could not find file %s in coverage in file %s' ,
20+ filename ,
21+ coverageFilename
22+ )
23+ process . exit ( 1 )
24+ }
25+
26+ const fileCoverage = coverage [ fileCoverageKey ]
27+ const statementCounters = fileCoverage . s
28+ const isThereUncoveredStatement = Object . keys ( statementCounters ) . some (
29+ ( k , key ) => {
30+ return statementCounters [ key ] === 0
31+ }
32+ )
33+ if ( isThereUncoveredStatement ) {
34+ console . error (
35+ 'file %s has statements that were not covered by tests' ,
36+ fileCoverage . path
37+ )
38+ console . log ( 'statement counters %o' , statementCounters )
39+
40+ process . exit ( 1 )
41+ }
42+
43+ console . log (
44+ 'All statements in file %s (found for %s) were covered' ,
45+ fileCoverage . path ,
46+ filename
47+ )
You can’t perform that action at this time.
0 commit comments