From 49701851f76d0ed73be4d4fddef99e29a5d14903 Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 30 May 2018 20:35:30 +0800 Subject: [PATCH] [Improvement] Switch: add test cases (#1202) --- packages/checkbox/test/index.spec.js | 4 +- .../test/__snapshots__/index.spec.js.snap | 21 +++ packages/contact-card/test/index.spec.js | 160 ++++++++++-------- packages/switch-cell/test/index.spec.js | 13 ++ packages/switch/test/index.spec.js | 13 ++ 5 files changed, 143 insertions(+), 68 deletions(-) create mode 100644 packages/contact-card/test/__snapshots__/index.spec.js.snap create mode 100644 packages/switch-cell/test/index.spec.js create mode 100644 packages/switch/test/index.spec.js diff --git a/packages/checkbox/test/index.spec.js b/packages/checkbox/test/index.spec.js index 23a9d824b..1b4f43c07 100644 --- a/packages/checkbox/test/index.spec.js +++ b/packages/checkbox/test/index.spec.js @@ -46,7 +46,7 @@ test('checkbox group', () => { const wrapper = mount({ template: ` - + `, components: { @@ -56,7 +56,7 @@ test('checkbox group', () => { data() { return { result: [], - list: ['a', 'b', 'c', 'd'] + list: ['a', 'b', 'c'] }; } }); diff --git a/packages/contact-card/test/__snapshots__/index.spec.js.snap b/packages/contact-card/test/__snapshots__/index.spec.js.snap new file mode 100644 index 000000000..27336c7ce --- /dev/null +++ b/packages/contact-card/test/__snapshots__/index.spec.js.snap @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ContactList render 1`] = ` +
+
+
+
+
+ + + +
新建联系人 + +
+ + + + +
+
+`; diff --git a/packages/contact-card/test/index.spec.js b/packages/contact-card/test/index.spec.js index 7c254fc50..2579cf616 100644 --- a/packages/contact-card/test/index.spec.js +++ b/packages/contact-card/test/index.spec.js @@ -1,3 +1,5 @@ +import ContactCard from '..'; +import ContactList from '../../contact-list'; import ContactEdit from '../../contact-edit'; import { mount } from '@vue/test-utils'; @@ -6,79 +8,105 @@ const contactInfo = { tel: '123123213' }; -const createComponent = () => { - const wrapper = mount(ContactEdit, { - propsData: { - contactInfo - } - }); +describe('ContactCard', () => { + test('click event', () => { + const wrapper = mount(ContactCard, { + propsData: { + editable: false + } + }); - const button = wrapper.find('.van-button'); - const field = wrapper.findAll('.van-field__control'); - const { errorInfo, data } = wrapper.vm; - return { - wrapper, - data, - field, - button, - errorInfo + wrapper.trigger('click'); + expect(wrapper.emitted('click')).toBeFalsy(); + + wrapper.setProps({ editable: true }); + wrapper.trigger('click'); + expect(wrapper.emitted('click')).toBeTruthy(); + }); +}); + +describe('ContactList', () => { + test('render', () => { + const wrapper = mount(ContactList); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); + +describe('ContactEdit', () => { + const createComponent = () => { + const wrapper = mount(ContactEdit, { + propsData: { + contactInfo + } + }); + + const button = wrapper.find('.van-button'); + const field = wrapper.findAll('.van-field__control'); + const { errorInfo, data } = wrapper.vm; + return { + wrapper, + data, + field, + button, + errorInfo + }; }; -}; -test('valid name', () => { - const { data, field, button, errorInfo } = createComponent(); + test('valid name', () => { + const { data, field, button, errorInfo } = createComponent(); - // name empty - data.name = ''; - button.trigger('click'); - expect(errorInfo.name).toBeTruthy(); - field.at(0).trigger('focus'); - expect(errorInfo.name).toBeFalsy(); + // name empty + data.name = ''; + button.trigger('click'); + expect(errorInfo.name).toBeTruthy(); + field.at(0).trigger('focus'); + expect(errorInfo.name).toBeFalsy(); - // name too long - data.name = '1'.repeat(30); - button.trigger('click'); - expect(errorInfo.name).toBeTruthy(); - field.at(0).trigger('focus'); - expect(errorInfo.name).toBeFalsy(); -}); - -it('valid tel', () => { - const { data, field, button, errorInfo, wrapper } = createComponent(); - data.tel = ''; - button.trigger('click'); - expect(errorInfo.tel).toBeTruthy(); - field.at(1).trigger('focus'); - expect(errorInfo.tel).toBeFalsy(); - - data.tel = '13000000000'; - button.trigger('click'); - expect(errorInfo.tel).toBeFalsy(); - expect(wrapper.emitted('save')[0][0]).toEqual({ - name: 'test', - tel: '13000000000' - }); -}); - -test('watch contact info', () => { - const wrapper = mount(ContactEdit); - wrapper.setProps({ contactInfo: { name: '123' }}); - expect(wrapper.vm.data.name).toEqual('123'); -}); - -test('delete contact', done => { - const wrapper = mount(ContactEdit, { - propsData: { - isEdit: true - } + // name too long + data.name = '1'.repeat(30); + button.trigger('click'); + expect(errorInfo.name).toBeTruthy(); + field.at(0).trigger('focus'); + expect(errorInfo.name).toBeFalsy(); }); - const deleteButton = wrapper.findAll('.van-button').at(1); - deleteButton.trigger('click'); - document.querySelector('.van-dialog__confirm').click(); + it('valid tel', () => { + const { data, field, button, errorInfo, wrapper } = createComponent(); + data.tel = ''; + button.trigger('click'); + expect(errorInfo.tel).toBeTruthy(); + field.at(1).trigger('focus'); + expect(errorInfo.tel).toBeFalsy(); - setTimeout(() => { - expect(wrapper.emitted('delete')).toBeTruthy(); - done(); + data.tel = '13000000000'; + button.trigger('click'); + expect(errorInfo.tel).toBeFalsy(); + expect(wrapper.emitted('save')[0][0]).toEqual({ + name: 'test', + tel: '13000000000' + }); + }); + + test('watch contact info', () => { + const wrapper = mount(ContactEdit); + wrapper.setProps({ contactInfo: { name: '123' }}); + expect(wrapper.vm.data.name).toEqual('123'); + }); + + test('delete contact', done => { + const wrapper = mount(ContactEdit, { + propsData: { + isEdit: true + } + }); + + const deleteButton = wrapper.findAll('.van-button').at(1); + deleteButton.trigger('click'); + document.querySelector('.van-dialog__confirm').click(); + + setTimeout(() => { + expect(wrapper.emitted('delete')).toBeTruthy(); + done(); + }); }); }); diff --git a/packages/switch-cell/test/index.spec.js b/packages/switch-cell/test/index.spec.js new file mode 100644 index 000000000..7e2658396 --- /dev/null +++ b/packages/switch-cell/test/index.spec.js @@ -0,0 +1,13 @@ +import SwitchCell from '..'; +import { mount } from '@vue/test-utils'; + +test('emit event', () => { + const wrapper = mount(SwitchCell); + + wrapper.vm.$on('input', value => { + wrapper.setProps({ value }); + }); + wrapper.find('.van-switch').trigger('click'); + + expect(wrapper.emitted('change')).toBeTruthy(); +}); diff --git a/packages/switch/test/index.spec.js b/packages/switch/test/index.spec.js new file mode 100644 index 000000000..3d9e3095e --- /dev/null +++ b/packages/switch/test/index.spec.js @@ -0,0 +1,13 @@ +import Switch from '..'; +import { mount } from '@vue/test-utils'; + +test('emit event', () => { + const wrapper = mount(Switch); + wrapper.trigger('click'); + wrapper.trigger('click'); + wrapper.setProps({ disabled: true }); + wrapper.trigger('click'); + + expect(wrapper.emitted('input')).toEqual([[true], [true]]); + expect(wrapper.emitted('change')).toEqual([[true], [true]]); +});