From b89832c03e4b9cdf1bcf3fe367b59717fa8fe8ad Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 26 Dec 2020 15:09:57 +0800 Subject: [PATCH] fix(Stepper): change event emitted twice (#7820) --- src/stepper/index.js | 5 +++++ src/stepper/test/index.spec.js | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/stepper/index.js b/src/stepper/index.js index 29183bdbd..ae60d071b 100644 --- a/src/stepper/index.js +++ b/src/stepper/index.js @@ -193,6 +193,11 @@ export default createComponent({ event.target.value = formatted; } + // perfer number type + if (formatted === String(+formatted)) { + formatted = +formatted; + } + this.emitChange(formatted); }, diff --git a/src/stepper/test/index.spec.js b/src/stepper/test/index.spec.js index 389c73af6..89428318a 100644 --- a/src/stepper/test/index.spec.js +++ b/src/stepper/test/index.spec.js @@ -125,7 +125,7 @@ test('filter value during user input', () => { input.element.value = '2'; input.trigger('input'); expect(input.element.value).toEqual('2'); - expect(wrapper.emitted('input')[1][0]).toEqual('2'); + expect(wrapper.emitted('input')[1][0]).toEqual(2); }); test('shoud watch value and format it', () => { @@ -149,12 +149,11 @@ test('only allow interger', () => { }); const input = wrapper.find('input'); - input.element.value = '1.2'; + input.element.value = '2.2'; input.trigger('input'); input.trigger('blur'); - expect(wrapper.emitted('input')[0][0]).toEqual('1'); - expect(wrapper.emitted('input')[1][0]).toEqual(1); + expect(wrapper.emitted('input')[0][0]).toEqual(2); }); test('input invalid value and blur', () => { @@ -246,8 +245,8 @@ test('async-change prop', () => { input.element.value = '3'; input.trigger('input'); - expect(wrapper.emitted('input')[1][0]).toEqual('3'); - expect(wrapper.emitted('change')[1][0]).toEqual('3'); + expect(wrapper.emitted('input')[1][0]).toEqual(3); + expect(wrapper.emitted('change')[1][0]).toEqual(3); }); test('min value is 0', () => {