diff --git a/packages/stepper/test/__snapshots__/index.spec.js.snap b/packages/stepper/test/__snapshots__/index.spec.js.snap new file mode 100644 index 000000000..6bb1fa492 --- /dev/null +++ b/packages/stepper/test/__snapshots__/index.spec.js.snap @@ -0,0 +1,17 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`disable stepper input 1`] = ` +
+ + + +
+`; + +exports[`disabled stepper 1`] = ` +
+ + + +
+`; diff --git a/packages/stepper/test/index.spec.js b/packages/stepper/test/index.spec.js new file mode 100644 index 000000000..00b1b5b31 --- /dev/null +++ b/packages/stepper/test/index.spec.js @@ -0,0 +1,94 @@ +import Stepper from '..'; +import { mount } from '@vue/test-utils'; + +test('disabled stepper', () => { + const wrapper = mount(Stepper, { + propsData: { + disabled: true + } + }); + expect(wrapper.html()).toMatchSnapshot(); +}); + +test('disable stepper input', () => { + const wrapper = mount(Stepper, { + propsData: { + disableInput: true + } + }); + expect(wrapper.html()).toMatchSnapshot(); +}); + +test('click button', () => { + const wrapper = mount(Stepper, { + propsData: { + value: 1, + max: 2 + } + }); + + const plus = wrapper.find('.van-stepper__plus'); + const minus = wrapper.find('.van-stepper__minus'); + + plus.trigger('click'); + plus.trigger('click'); + minus.trigger('click'); + minus.trigger('click'); + + expect(wrapper.emitted('input')).toEqual([[2], [1]]); + expect(wrapper.emitted('overlimit')).toEqual([['plus'], ['minus']]); +}); + +test('correct value when value is not correct', () => { + const wrapper = mount(Stepper, { + propsData: { + value: 50, + max: 30, + min: 10 + } + }); + + const input = wrapper.find('input'); + input.element.value = 1; + input.trigger('input'); + input.element.value = 'abc'; + input.trigger('input'); + wrapper.setData({ value: 'abc' }); + input.trigger('input'); + wrapper.setData({ value: '' }); + input.trigger('input'); + wrapper.setData({ value: 40 }); + input.trigger('input'); + wrapper.setData({ value: 30 }); + input.trigger('input'); + + expect(wrapper.emitted('input')).toEqual([ + [30], + [10], + [''], + [10], + [10], + [30], + [30] + ]); +}); + +test('only allow interger', () => { + const wrapper = mount(Stepper, { + propsData: { + integer: true + } + }); + + const fn = jest.fn(); + wrapper.vm.onKeypress({ + keyCode: 46, + preventDefault: fn + }); + wrapper.vm.onKeypress({ + keyCode: 45, + preventDefault: fn + }); + + expect(fn.mock.calls.length).toEqual(1); +});