diff --git a/test/unit/specs/autocomplete.spec.js b/test/unit/specs/autocomplete.spec.js index 9b46c6d97..53634bc6c 100644 --- a/test/unit/specs/autocomplete.spec.js +++ b/test/unit/specs/autocomplete.spec.js @@ -1,4 +1,4 @@ -import { createVue, destroyVM } from '../util'; +import { createVue, triggerClick, destroyVM } from '../util'; describe('Autocomplete', () => { let vm; @@ -59,7 +59,7 @@ describe('Autocomplete', () => { expect(suggestions.style.display).to.not.equal('none'); expect(suggestions.querySelectorAll('.el-autocomplete-suggestion__list li').length).to.be.equal(4); - document.body.click(); + triggerClick(document); setTimeout(_ => { expect(suggestions.style.display).to.be.equal('none'); done(); diff --git a/test/unit/specs/input-number.spec.js b/test/unit/specs/input-number.spec.js index 5499388f1..9435e8a02 100644 --- a/test/unit/specs/input-number.spec.js +++ b/test/unit/specs/input-number.spec.js @@ -1,4 +1,4 @@ -import { createVue, triggerEvent, destroyVM } from '../util'; +import { createVue, triggerEvent, triggerClick, destroyVM } from '../util'; describe('InputNumber', () => { let vm; @@ -39,7 +39,7 @@ describe('InputNumber', () => { let btnDecrease = vm.$el.querySelector('.el-input-number__decrease'); triggerEvent(btnDecrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(4); @@ -64,7 +64,7 @@ describe('InputNumber', () => { let btnIncrease = vm.$el.querySelector('.el-input-number__increase'); triggerEvent(btnIncrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(2.5); @@ -90,14 +90,14 @@ describe('InputNumber', () => { let btnIncrease = vm.$el.querySelector('.el-input-number__increase'); triggerEvent(btnDecrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(2); expect(input.value).to.be.equal('2'); triggerEvent(btnIncrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(2); @@ -124,14 +124,14 @@ describe('InputNumber', () => { let btnDecrease = vm.$el.querySelector('.el-input-number__decrease'); triggerEvent(btnIncrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(8.2); expect(input.value).to.be.equal('8.2'); triggerEvent(btnDecrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(5); @@ -171,7 +171,7 @@ describe('InputNumber', () => { let btnDecrease = vm.$el.querySelector('.el-input-number__decrease'); triggerEvent(btnDecrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(6); @@ -210,7 +210,7 @@ describe('InputNumber', () => { let btnIncrease = vm.$el.querySelector('.el-input-number__increase'); triggerEvent(btnIncrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(vm.value).to.be.equal(8); @@ -282,7 +282,7 @@ describe('InputNumber', () => { vm.$refs.input.$on('change', spy); triggerEvent(btnIncrease, 'mousedown'); - triggerEvent(document, 'mouseup'); + triggerClick(document, 'mouseup'); vm.$nextTick(_ => { expect(spy.withArgs(2.5, 1.5).calledOnce).to.be.true; diff --git a/test/unit/specs/util.clickoutside.spec.js b/test/unit/specs/util.clickoutside.spec.js index c18a82c3f..1009ec5cc 100644 --- a/test/unit/specs/util.clickoutside.spec.js +++ b/test/unit/specs/util.clickoutside.spec.js @@ -1,6 +1,8 @@ import Clickoutside from 'element-ui/src/utils/clickoutside'; const ctx = '@@clickoutsideContext'; +import { triggerClick } from '../util'; + describe('Utils:Clickoutside', () => { it('create', () => { let count = 0; @@ -42,7 +44,7 @@ describe('Utils:Clickoutside', () => { }; Clickoutside.bind(el, binding, vnode); - document.body.click(); + triggerClick(document); expect(count).to.equal(1); }); @@ -61,9 +63,9 @@ describe('Utils:Clickoutside', () => { el.appendChild(insideElm); Clickoutside.bind(el, binding, vnode); - insideElm.click(); + triggerClick(insideElm); expect(count).to.equal(0); - document.body.click(); + triggerClick(document); expect(count).to.equal(1); }); @@ -83,9 +85,9 @@ describe('Utils:Clickoutside', () => { vnode.context.popperElm.appendChild(insideElm); Clickoutside.bind(el, binding, vnode); - insideElm.click(); + triggerClick(insideElm); expect(count).to.equal(0); - document.body.click(); + triggerClick(document); expect(count).to.equal(1); }); @@ -101,7 +103,7 @@ describe('Utils:Clickoutside', () => { Clickoutside.bind(el, binding, vnode); expect(count).to.equal(0); - document.body.click(); + triggerClick(document); expect(count).to.equal(1); }); @@ -139,9 +141,9 @@ describe('Utils:Clickoutside', () => { }; Clickoutside.bind(el, binding, vnode); - document.body.click(); + triggerClick(document); Clickoutside.unbind(el); - document.body.click(); + triggerClick(document); expect(count).to.equal(1); }); }); diff --git a/test/unit/util.js b/test/unit/util.js index e313dfa28..51fd6293f 100644 --- a/test/unit/util.js +++ b/test/unit/util.js @@ -83,3 +83,15 @@ exports.triggerEvent = function(elm, name, ...opts) { return elm; }; + +/** + * 触发 “mouseup” 和 “mousedown” 事件 + * @param {Element} elm + * @param {*} opts + */ +exports.triggerClick = function(elm, ...opts) { + exports.triggerEvent(elm, 'mousedown', ...opts); + exports.triggerEvent(elm, 'mouseup', ...opts); + + return elm; +};