A CLI tool to help identify missing Vue Options API component tests.
A CLI tool to help identify missing Vue Options API component tests.
# in a project
yarn add -D @crishellco/vue-coy
# globally
yarn global add @crishellco/vue-coy
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',
];
// coy.config.json
{
"ignore": ["node_modules"],
"paths": ["**"],
"regex": "(.+)?{key}(.+)?",
"testFileExtension": "spec.js"
}
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 |
# 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
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 |
-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
}
}
<script>
export default {
methods: {
// coy-ignore-next
foo() {}
}
}
</script>