import Vue from 'vue' describe('Directive v-model component', () => { it('should work', done => { const vm = new Vue({ data: { msg: 'hello' }, template: `

{{ msg }}

`, components: { validate: { template: '
', props: ['value'], methods: { onInput (e) { // something validate ... this.$emit('input', e) } }, mounted () { this.$el.addEventListener('input', this.onInput) }, destroyed () { this.$el.removeEventListener('input', this.onInput) } } } }).$mount() document.body.appendChild(vm.$el) waitForUpdate(() => { expect('v-model is not supported on element type').not.toHaveBeenWarned() const input = vm.$el.querySelector('input') input.value = 'world' triggerEvent(input, 'input') }).then(() => { expect(vm.msg).toBe('world') }).then(() => { document.body.removeChild(vm.$el) vm.$destroy() }).then(done) }) })