fix(Field): failed to reset validation when message is empty (#6867)

* fix(Field): failed to reset validation when message is empty

* fix: test case
This commit is contained in:
neverland 2020-07-25 09:57:48 +08:00 committed by GitHub
parent e12b468843
commit aca86a8c21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 27 deletions

View File

@ -282,7 +282,7 @@ export default createComponent({
},
resetValidation() {
if (this.validateMessage) {
if (this.validateFailed) {
this.validateFailed = false;
this.validateMessage = '';
}

View File

@ -1,19 +0,0 @@
// 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">
<div class="van-button__content"></div>
</button>
</form>
`;

View File

@ -50,12 +50,12 @@ test('validate method - validate one field and passed', (done) => {
test('validate method - validate one field and failed', (done) => {
mountForm({
template: `
<van-form ref="form" @failed="onFailed">
<van-field name="A" :rules="rulesA" value="123" />
<van-field name="B" :rules="rulesB" value="" />
<van-button native-type="submit" />
</van-form>
template: `
<van-form ref="form" @failed="onFailed">
<van-field name="A" :rules="rulesA" value="123" />
<van-field name="B" :rules="rulesB" value="" />
<van-button native-type="submit" />
</van-form>
`,
data: getSimpleRules,
mounted() {
@ -90,7 +90,27 @@ test('resetValidation method - reset one field', (done) => {
mounted() {
this.$refs.form.validate().catch(() => {
this.$refs.form.resetValidation('A');
expect(wrapper).toMatchSnapshot();
expect(wrapper.findAll('.van-field--error').length).toEqual(1);
this.$refs.form.resetValidation('B');
expect(wrapper.findAll('.van-field--error').length).toEqual(0);
done();
});
},
});
});
test('resetValidation method - reset when rule message is empty', (done) => {
const wrapper = mountSimpleRulesForm({
data() {
return {
rulesA: [{ required: true, message: '' }],
rulesB: [{ required: true, message: '' }],
};
},
mounted() {
this.$refs.form.validate().catch(() => {
this.$refs.form.resetValidation('A');
expect(wrapper.findAll('.van-field--error').length).toEqual(1);
done();
});
},