Skip to content

πŸŒπŸ“ˆ Automatically bump up global Jest thresholds whenever coverage goes above them

License

Notifications You must be signed in to change notification settings

rbardini/jest-it-up

Repository files navigation

jest-it-up

npm package version Build status Code coverage Dependencies status

Ensure incremental coverage gains are not lost, and positively reinforce good testing habits. Automatically bump up global Jest thresholds whenever coverage goes above them.

Demo

Requirements

  • Node.js 20+
  • Conventional jest.config.js (package.json config unsupported)
  • json-summary coverage report (see usage)

Installation

npm install --save-dev jest-it-up

Usage

jest-it-up exposes a standalone CLI tool (see options), but you most likely want to use it in a post-test script.

Within package.json:

{
  "scripts": {
    "test": "jest --coverage", // or set `collectCoverage` to `true` in Jest config
    "posttest": "jest-it-up" // must run from the same directory as `jest.config.js`
  }
}

within jest.config.js:

module.exports = {
  coverageReporters: [
    'json-summary', // plus any other reporters, e.g. "lcov", "text", "text-summary"
  ],
  coverageThreshold: {
    global: {
      branches: 0, // or your current numbers
      functions: 0,
      lines: 0,
      statements: 0,
    },
  },
}

Once tests finish running, jest-it-up will update configured thresholds to match higher coverage numbers, if any.

Options

$ jest-it-up --help
Usage: jest-it-up [options]

Options:
  -c, --config <path>          path to a Jest config file (default: 'jest.config.js')
  -m, --margin <margin>        minimum threshold increase (default: 0)
  -t, --tolerance <tolerance>  threshold difference from actual coverage
  -i, --interactive            ask for confirmation before applying changes
  -s, --silent                 do not output messages
  -d, --dry-run                process but do not change files
  -v, --version                output the version number
  -p, --precision              number of threshold decimal places to persist
  -h, --help                   display help for command