1.4.0 • Published 2 years ago
@crishellco/vue-coy v1.4.0
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