diff --git a/src/form/test/index.spec.js b/src/form/test/index.spec.js index e76fc2be8..6f515be80 100644 --- a/src/form/test/index.spec.js +++ b/src/form/test/index.spec.js @@ -1 +1,58 @@ -// import { mount } from '../../../test'; +import { mount, later } from '../../../test'; + +function mountForm(options) { + return mount(options, { attachToDocument: true }); +} + +test('submit event', async () => { + const onSubmit = jest.fn(); + const wrapper = mountForm({ + template: ` + + + + + `, + methods: { + onSubmit, + }, + }); + + wrapper.find('.van-button').trigger('click'); + + await later(); + expect(onSubmit).toHaveBeenCalledWith({ A: 'bar' }); +}); + +test('failed event', async () => { + const onFailed = jest.fn(); + const wrapper = mountForm({ + template: ` + + + + + + `, + data() { + return { + rulesA: [{ required: true, message: 'A failed' }], + rulesB: [{ required: true, message: 'B failed' }], + }; + }, + methods: { + onFailed, + }, + }); + + wrapper.find('.van-button').trigger('click'); + + await later(); + expect(onFailed).toHaveBeenCalledWith({ + errors: [ + { name: 'A', message: 'A failed' }, + { name: 'B', message: 'B failed' }, + ], + values: { A: '', B: '' }, + }); +});