mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-21 22:09:16 +08:00
test(Form): add test cases of methods
This commit is contained in:
parent
2970599c27
commit
a29ddf3fad
17
src/form/test/__snapshots__/methods.spec.js.snap
Normal file
17
src/form/test/__snapshots__/methods.spec.js.snap
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`resetValidation method - reset one field 1`] = `
|
||||||
|
<form class="van-form">
|
||||||
|
<div class="van-cell van-field">
|
||||||
|
<div class="van-cell__value van-cell__value--alone van-field__value">
|
||||||
|
<div class="van-field__body"><input type="text" name="A" class="van-field__control"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="van-cell van-field van-field--error">
|
||||||
|
<div class="van-cell__value van-cell__value--alone van-field__value">
|
||||||
|
<div class="van-field__body"><input type="text" name="B" class="van-field__control"></div>
|
||||||
|
<div class="van-field__error-message">B failed</div>
|
||||||
|
</div>
|
||||||
|
</div> <button type="submit" class="van-button van-button--default van-button--normal"></button>
|
||||||
|
</form>
|
||||||
|
`;
|
@ -1,5 +1,5 @@
|
|||||||
import { later } from '../../../test';
|
import { later } from '../../../test';
|
||||||
import { mountForm } from './shared';
|
import { mountForm, mountSimpleRulesForm } from './shared';
|
||||||
|
|
||||||
test('submit event', async () => {
|
test('submit event', async () => {
|
||||||
const onSubmit = jest.fn();
|
const onSubmit = jest.fn();
|
||||||
@ -23,20 +23,7 @@ test('submit event', async () => {
|
|||||||
|
|
||||||
test('failed event', async () => {
|
test('failed event', async () => {
|
||||||
const onFailed = jest.fn();
|
const onFailed = jest.fn();
|
||||||
const wrapper = mountForm({
|
const wrapper = mountSimpleRulesForm({
|
||||||
template: `
|
|
||||||
<van-form @failed="onFailed">
|
|
||||||
<van-field name="A" :rules="rulesA" value="" />
|
|
||||||
<van-field name="B" :rules="rulesB" value="" />
|
|
||||||
<van-button native-type="submit" />
|
|
||||||
</van-form>
|
|
||||||
`,
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
rulesA: [{ required: true, message: 'A failed' }],
|
|
||||||
rulesB: [{ required: true, message: 'B failed' }],
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
onFailed,
|
onFailed,
|
||||||
},
|
},
|
||||||
|
74
src/form/test/methods.spec.js
Normal file
74
src/form/test/methods.spec.js
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
import { later } from '../../../test';
|
||||||
|
import { mountForm, mountSimpleRulesForm } from './shared';
|
||||||
|
|
||||||
|
test('submit method', async () => {
|
||||||
|
const onSubmit = jest.fn();
|
||||||
|
|
||||||
|
mountForm({
|
||||||
|
template: `
|
||||||
|
<van-form ref="form" @submit="onSubmit">
|
||||||
|
<van-field name="A" value="bar" />
|
||||||
|
<van-button native-type="submit" />
|
||||||
|
</van-form>
|
||||||
|
`,
|
||||||
|
mounted() {
|
||||||
|
this.$refs.form.submit();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onSubmit,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await later();
|
||||||
|
expect(onSubmit).toHaveBeenCalledWith({ A: 'bar' });
|
||||||
|
});
|
||||||
|
|
||||||
|
test('validate method - validate all fields', done => {
|
||||||
|
mountSimpleRulesForm({
|
||||||
|
mounted() {
|
||||||
|
this.$refs.form.validate().catch(err => {
|
||||||
|
expect(err).toEqual([
|
||||||
|
{ message: 'A failed', name: 'A' },
|
||||||
|
{ message: 'B failed', name: 'B' },
|
||||||
|
]);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('validate method - validate one field', done => {
|
||||||
|
mountSimpleRulesForm({
|
||||||
|
mounted() {
|
||||||
|
this.$refs.form.validate('A').catch(err => {
|
||||||
|
expect(err).toEqual({ message: 'A failed', name: 'A' });
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('resetValidation method - reset all fields', done => {
|
||||||
|
const wrapper = mountSimpleRulesForm({
|
||||||
|
mounted() {
|
||||||
|
this.$refs.form.validate().catch(() => {
|
||||||
|
this.$refs.form.resetValidation();
|
||||||
|
const errors = wrapper.findAll('.van-field__error-message');
|
||||||
|
expect(errors.length).toEqual(0);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('resetValidation method - reset one field', done => {
|
||||||
|
const wrapper = mountSimpleRulesForm({
|
||||||
|
mounted() {
|
||||||
|
this.$refs.form.validate().catch(() => {
|
||||||
|
this.$refs.form.resetValidation('A');
|
||||||
|
expect(wrapper).toMatchSnapshot();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
@ -1,21 +1,18 @@
|
|||||||
import { mount, later } from '../../../test';
|
import { mount, later } from '../../../test';
|
||||||
import { mountForm } from './shared';
|
import { mountForm, getSimpleRules } from './shared';
|
||||||
|
|
||||||
test('validate-first prop', async () => {
|
test('validate-first prop', async () => {
|
||||||
const onFailed = jest.fn();
|
const onFailed = jest.fn();
|
||||||
const wrapper = mountForm({
|
const wrapper = mountForm({
|
||||||
template: `
|
template: `
|
||||||
<van-form validate-first @failed="onFailed">
|
<van-form validate-first @failed="onFailed">
|
||||||
<van-field name="A" :rules="rulesA" value="" />
|
<van-field name="A" :rules="rulesA" value="" />
|
||||||
<van-field name="B" :rules="rulesB" value="" />
|
<van-field name="B" :rules="rulesB" value="" />
|
||||||
<van-button native-type="submit" />
|
<van-button native-type="submit" />
|
||||||
</van-form>
|
</van-form>
|
||||||
`,
|
`,
|
||||||
data() {
|
data() {
|
||||||
return {
|
return getSimpleRules();
|
||||||
rulesA: [{ required: true, message: 'A failed' }],
|
|
||||||
rulesB: [{ required: true, message: 'B failed' }],
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onFailed,
|
onFailed,
|
||||||
|
@ -3,3 +3,26 @@ import { mount } from '../../../test';
|
|||||||
export function mountForm(options) {
|
export function mountForm(options) {
|
||||||
return mount(options, { attachToDocument: true });
|
return mount(options, { attachToDocument: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getSimpleRules() {
|
||||||
|
return {
|
||||||
|
rulesA: [{ required: true, message: 'A failed' }],
|
||||||
|
rulesB: [{ required: true, message: 'B failed' }],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function mountSimpleRulesForm(options) {
|
||||||
|
return mountForm({
|
||||||
|
template: `
|
||||||
|
<van-form ref="form" @failed="onFailed">
|
||||||
|
<van-field name="A" :rules="rulesA" value="" />
|
||||||
|
<van-field name="B" :rules="rulesB" value="" />
|
||||||
|
<van-button native-type="submit" />
|
||||||
|
</van-form>
|
||||||
|
`,
|
||||||
|
data() {
|
||||||
|
return getSimpleRules();
|
||||||
|
},
|
||||||
|
...options,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user