0.2.1-beta.0 • Published 4 years ago
@abinavseelan/papers-please v0.2.1-beta.0
papers-please
jest-based test case mandating tool for new code.
Install
npm install -D papers-pleaseRequires 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!