From aca86a8c212dfbae897bf3535475cfb40f95dc7d Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 25 Jul 2020 09:57:48 +0800 Subject: [PATCH] fix(Field): failed to reset validation when message is empty (#6867) * fix(Field): failed to reset validation when message is empty * fix: test case --- src/field/index.js | 2 +- .../test/__snapshots__/methods.spec.js.snap | 19 ----------- src/form/test/methods.spec.js | 34 +++++++++++++++---- 3 files changed, 28 insertions(+), 27 deletions(-) delete mode 100644 src/form/test/__snapshots__/methods.spec.js.snap diff --git a/src/field/index.js b/src/field/index.js index abf59cb12..8150656f3 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -282,7 +282,7 @@ export default createComponent({ }, resetValidation() { - if (this.validateMessage) { + if (this.validateFailed) { this.validateFailed = false; this.validateMessage = ''; } diff --git a/src/form/test/__snapshots__/methods.spec.js.snap b/src/form/test/__snapshots__/methods.spec.js.snap deleted file mode 100644 index 6c019b6b1..000000000 --- a/src/form/test/__snapshots__/methods.spec.js.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`resetValidation method - reset one field 1`] = ` -
-
-
-
-
-
-
-
-
-
B failed
-
-
-
-`; diff --git a/src/form/test/methods.spec.js b/src/form/test/methods.spec.js index d00cd0679..5acb4549b 100644 --- a/src/form/test/methods.spec.js +++ b/src/form/test/methods.spec.js @@ -50,12 +50,12 @@ test('validate method - validate one field and passed', (done) => { test('validate method - validate one field and failed', (done) => { mountForm({ - template: ` - - - - - + template: ` + + + + + `, 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(); }); },