1.0.3 • Published 4 years ago

jest-code-coverage-protection v1.0.3

Weekly downloads
20
License
MIT
Repository
github
Last release
4 years ago

jest-code-coverage-protection

Jest code coverage protection is a simple utility that allows you to compare code coverage between two branches during your ci/cd steps. All you will need to do is generate a json summary of the coverage on your current branch, checkout the desired comparison branch during the ci/cd step and generate a json summary of the coverage for that as well and point jest-code-coverage-protection to both summary files and it will tell you if code coverage on your code changes has increased or decreased using the exit code.

Requirements

  • Add json-summary as coverage reporter to jest configuration

Install

npm install jest-code-coverage-protection --save-dev

Add the command to package.json

  "scripts": {
    "jccp": "jccp"
  },

usage options

Usage: jccp [options]

Compare coverage-summary.json generated by jest

Options:
  -V, --version              output the version number
  -f, --file <filename>      The file generated by the (feature) branch you want to check (default: "coverage/coverage-summary.json")
  -c, --compare <filename>   The file generate by the (master) branch you want to compare against (default: "master/coverage/coverage-summary.json")
  -n, --new <threshold       The minimal threshold new code should have (default: "0.80")
  -v, --variance <variance>  Allow for variance, e.g. allow 0.05 to allow a 5% decrease using hold (default: "0")
  -m, --mode <mode>          Force <new> code threshold or do not allow decrease <hold> (default: "hold")
  -h, --help                 display help for command

Configure ci/cd:

  • Make sure your branches generate the coverage-summary.json file using the coverage reporter json summary
  • Add checkout of comparison branch(master) to your build step
  • Run jccp command
  • Catch exit codes of jccp, 0 = coverage check passed, 1 = coverage check failed

Examples

jccp -m new -n 0.9   <new code should have at least 90% code coverage>
jccp -m hold -v 0.5  <overall code coverage should be within 0.5% of comparison branch>
jccp -f cover.json   <specify input file for the feature branch>