From 61672ce0e21efa0fb18d669ce48d16c0269ddb75 Mon Sep 17 00:00:00 2001 From: baiyaaaaa Date: Wed, 22 Feb 2017 16:33:30 +0800 Subject: [PATCH] fix input change time (#2956) --- packages/input/src/input.vue | 7 +++--- test/unit/specs/cascader.spec.js | 43 ++++++++++++++++---------------- test/unit/specs/input.spec.js | 2 +- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/input/src/input.vue b/packages/input/src/input.vue index fb0b8c84a..dbb71b675 100644 --- a/packages/input/src/input.vue +++ b/packages/input/src/input.vue @@ -170,7 +170,10 @@ this.$emit('focus', event); }, handleInput(event) { - this.setCurrentValue(event.target.value); + const value = event.target.value; + this.$emit('input', value); + this.setCurrentValue(value); + this.$emit('change', value); }, handleIconClick(event) { if (this.onIconClick) { @@ -184,8 +187,6 @@ this.resizeTextarea(); }); this.currentValue = value; - this.$emit('input', value); - this.$emit('change', value); if (this.validateEvent) { this.dispatch('ElFormItem', 'el.form.change', [value]); } diff --git a/test/unit/specs/cascader.spec.js b/test/unit/specs/cascader.spec.js index 54973e7ac..5d024e768 100644 --- a/test/unit/specs/cascader.spec.js +++ b/test/unit/specs/cascader.spec.js @@ -498,30 +498,31 @@ describe('Cascader', () => { } }, true); expect(vm.$el).to.be.exist; - vm.$refs.cascader.inputValue = 'z'; vm.$el.click(); - - setTimeout(_ => { - expect(document.body.querySelector('.el-cascader-menus')).to.be.exist; - - const menu = vm.$refs.cascader.menu; - const menuElm = menu.$el; - const item1 = menuElm.querySelector('.el-cascader-menu__item'); - - expect(menuElm.children.length).to.be.equal(1); - expect(menuElm.children[0].children.length).to.be.equal(3); - done(); - - item1.click(); - + vm.$nextTick(_ => { + vm.$refs.cascader.handleInputChange('z'); setTimeout(_ => { - expect(document.body.querySelector('.el-cascader-menus').style.display).to.be.equal('none'); - expect(vm.selectedOptions[0]).to.be.equal('zhejiang'); - expect(vm.selectedOptions[1]).to.be.equal('hangzhou'); - expect(vm.selectedOptions[2]).to.be.equal('xihu'); + expect(document.body.querySelector('.el-cascader-menus')).to.be.exist; + + const menu = vm.$refs.cascader.menu; + const menuElm = menu.$el; + const item1 = menuElm.querySelector('.el-cascader-menu__item'); + + expect(menuElm.children.length).to.be.equal(1); + expect(menuElm.children[0].children.length).to.be.equal(3); done(); - }, 500); - }, 300); + + item1.click(); + + setTimeout(_ => { + expect(document.body.querySelector('.el-cascader-menus').style.display).to.be.equal('none'); + expect(vm.selectedOptions[0]).to.be.equal('zhejiang'); + expect(vm.selectedOptions[1]).to.be.equal('hangzhou'); + expect(vm.selectedOptions[2]).to.be.equal('xihu'); + done(); + }, 500); + }, 300); + }); }); it('props', done => { vm = createVue({ diff --git a/test/unit/specs/input.spec.js b/test/unit/specs/input.spec.js index f638a7dcb..5cc1bcf41 100644 --- a/test/unit/specs/input.spec.js +++ b/test/unit/specs/input.spec.js @@ -214,7 +214,7 @@ describe('Input', () => { vm.input = 'b'; vm.$nextTick(_ => { - expect(spy.withArgs('b').calledOnce).to.be.true; + expect(spy.withArgs('b').calledOnce).to.be.false; done(); }); });