papers-please
jest-based test case mandating tool for new code.
Install
npm install -D papers-please
Requires Node 8+ and Jest 25.x+
json-summary
.
// In jest.config.js
{
coverageReporters: ["json-summary"]
}
Usage
CLI
npx papers-please --trackGlobs="<comma separated list of file globs to track>" --baseBranch="<branch to check file diff against>"
Example
npx papers-please --trackGlobs="**/src/**/*.js,**/client/**/*.js,**/server/**/*.js" --baseBranch="main"
As an npm script
// In your package.json
{
"scripts": {
"validate": "npx papers-please --trackGlobs="**/src/**/*.js,**/client/**/*.js,**/server/**/*.js" --baseBranch="main""
}
}
As a git hook
papers-please can be used alongside husky to run validation on git commit and / or git push.
Options
Option | Type | Description | Default Value |
---|---|---|---|
--baseBranch | string | Base branch to validate your branch against to derive new and modified files | origin/main |
--projectRoot | string | Root directory for the project. Assume this to be where the .git folder resides | process.cwd() |
--coverageFile | string | Path to the jest coverage report. Note The coverage summary report should be the json summary output | ./coverage/coverage-summary.json |
--skipCoverage | boolean | Skip coverage metrics validation | false |
--trackGlobs | string | List of comma-separated source files / globs to track. Any file that is modified or added that matches the glob pattern will be validated. | */ |
--branchCoverageThreshold | number | Branch coverage threshold for new files (in percentage) | 80 |
--functionCoverageThreshold | number | Function coverage threshold for new files (in percentage) | 80 |
--lineCoverageThreshold | number | Line coverage threshold for new files (in percentage) | 80 |
--statementCoverageThreshold | number | Statement coverage threshold for new files (in percentage) | 80 |
--help | boolean | Show usage and available options | false |
--verbose | boolean | Show verbose output for each step | false |
--exposeMetrics | boolean | Exposes coverage metrics into a json file for the modified/added files which matches the glob pattern | false |
Contributing
Want to fix something, add a new feature or raise an issue? Please read the contributing guide to get started.
✨
Contributors Thanks goes to these wonderful people (emoji key):
Abinav Seelan |
Aditi Mohanty |
This project follows the all-contributors specification. Contributions of any kind welcome!