@abinavseelan/papers-please
v0.2.1-beta.0
Published
jest-based test case mandating tool for new code
Downloads
9
Maintainers
Readme
papers-please
jest-based test case mandating tool for new code.
Install
npm install -D papers-please
Requires Node 8+ and Jest 25.x+
⚠️ For coverage reporting, Jest coverage needs be be collected as 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. :smile:
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!