@crishellco/vue-coy
v1.4.0
Published
A CLI tool to help identify missing Vue component tests.
Downloads
14
Readme
Vue Coy
A CLI tool to help identify missing Vue component tests.
Table of contents
Install
# in a project
yarn add -D @crishellco/vue-coy
# globally
yarn global add @crishellco/vue-coy
Usage
What does it look for?
exports.GROUPS_TO_TEST = ['watch', 'computed', 'methods'];
exports.HOOKS_TO_TEST = [
'beforeCreate',
'created',
'beforeMount',
'mounted',
'beforeUpdate',
'updated',
'activated',
'deactivated',
'beforeUnmount',
'unmounted',
'beforeDestroy',
'destroyed',
'renderTracked',
'renderTriggered',
'errorCaptured',
];
When should you use it?
- in your test suite
- in your pre-commit hooks
- in your builds
- manually as a sanity check
Config (optional)
// coy.config.json
{
"ignore": ["node_modules"],
"paths": ["**"],
"regex": "(.+)?{key}(.+)?",
"testFileExtension": "spec.js"
}
Options
| Name | Type | Default | Description |
|---------------------|----------|--------------------------|-----------------------------------------------------------------------------------------------------|
| ignore
| Array
| ['**/node_modules/**']
| Which folders to ignore (globs) |
| paths
| Array
| ['**']
| Where to look for Vue files (globs) |
| regex
| String
| '(.*?{key}.*?)'
| How to determine if a test exists (regex). {key}
gets replaced with the name of the missing item. |
| testFileExtension
| String
| 'spec.js'
| Test file extension |
Command Line
# in a project
$ yarn coy
$ yarn coy -c
$ yarn coy -c master
$ yarn coy -s
$ yarn coy -s path/to/save/report.json
$ yarn coy -w
# globally
$ coy
$ coy -c
$ coy -c master
$ coy -s
$ coy -s path/to/save/report.json
$ coy -w
Options
| Flag | Argument | Default | Description |
|-----------------|---------------------|----------------------------|------------------------------------------------|
| -c, --changed
| branch
(optional) | master
| Only analyze changes compared to a branch |
| -s, --save
| file
(optional) | missing-test-report.json
| Saves missing test report to a JSON file |
| -w, --watch
| | | Watch for changes and reevaluate missing tests |
| -h, --help
| | | Display help for command |
Display In Terminal (default)
Save To File (with -s
)
{
"test/fixtures/missing.vue": {
"missing": {
"methods": [
{
"key": "foo",
"link": "test/fixtures/missing.vue:10"
}
]
},
"testFile": "test/fixtures/missing.spec.js",
"testSource": "describe('index.vue', () => {\n describe('methods', () => {});\n});\n"
},
"test/fixtures/no-test.vue": {
"missing": {
"methods": [
{
"key": "foo",
"link": "test/fixtures/no-test.vue:10"
}
]
},
"testFile": "test/fixtures/no-test.spec.js",
"testSource": null
}
}
Ignoring Code
<script>
export default {
methods: {
// coy-ignore-next
foo() {}
}
}
</script>
How to Contribute
Pull Requests
- Fork the repository
- Create a new branch for each feature or improvement
- Please follow semantic-release commit format
- Send a pull request from each feature branch to the develop branch