If you remove {sync: false}
from
const _mount = () => mount(TestComponent, {sync: false});
in component.test.js
, the test will break. If you keep it, everything is fine.
module.exports = { | |
presets: [ | |
[ | |
'@babel/preset-env', | |
{ | |
targets: { | |
node: 'current', | |
}, | |
}, | |
], | |
], | |
}; |
import TestComponent from './component.vue'; | |
import {mount} from '@vue/test-utils'; | |
import Vue from 'vue'; | |
import Vuetify from 'vuetify'; | |
Vue.use(Vuetify); | |
describe('test', () => { | |
const _mount = () => mount(TestComponent, {sync: false}); | |
const findForm = (wrapper) => wrapper.find({ref: 'form'}); | |
const findTextField = (wrapper) => wrapper.find({ref: 'textField'}); | |
const nextTickPromise = (wrapper) => new Promise(resolve => wrapper.vm.$nextTick(resolve)); | |
it('should be valid', async () => { | |
// Given | |
const wrapper = _mount(); | |
// When | |
findTextField(wrapper).vm.$emit('input', 'testText'); | |
await nextTickPromise(wrapper); | |
// Then | |
expect(findForm(wrapper).vm.value).toEqual(true); | |
}); | |
it('should ne invalid', () => { | |
const wrapper = _mount(); | |
expect(findForm(wrapper).vm.value).toEqual(false); | |
}) | |
}); |
<template> | |
<v-form v-model="valid" ref="form"> | |
<v-text-field | |
v-model="text" | |
ref="textField" | |
:rules="rules"/> | |
</v-form> | |
</template> | |
<script> | |
export default { | |
data () { | |
return { | |
rules: [ | |
(v) => v.length > 0 || 'field required' | |
], | |
text: '', | |
valid: false | |
} | |
} | |
} | |
</script> |
module.exports = { | |
moduleFileExtensions: ["js", "json", "vue"], | |
transform: { | |
"^.+\\.js$": "babel-jest", | |
"^.+\\.vue$": "vue-jest" | |
} | |
} |
{ | |
"name": "vuetify-form", | |
"version": "1.0.0", | |
"scripts": { | |
"test": "jest" | |
}, | |
"devDependencies": { | |
"@babel/core": "^7.2.2", | |
"@babel/preset-env": "^7.3.1", | |
"@vue/test-utils": "^1.0.0-beta.29", | |
"babel-core": "^7.0.0-bridge.0", | |
"jest": "^24.1.0", | |
"vue-jest": "^3.0.2", | |
"vue-template-compiler": "^2.6.3" | |
}, | |
"dependencies": { | |
"vue": "^2.6.3", | |
"vuetify": "^1.5.0" | |
} | |
} |