Skip to content

Commit

Permalink
fix(validatable): update external messages to accept null value
Browse files Browse the repository at this point in the history
fixes #6025
  • Loading branch information
johnleider committed Jan 2, 2019
1 parent 6102624 commit eef7d4f
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 5 deletions.
10 changes: 5 additions & 5 deletions packages/vuetify/src/mixins/validatable.ts
Expand Up @@ -79,7 +79,7 @@ export default mixins(
)
},
externalError (): boolean {
return this.errorMessages.length > 0 || this.error
return this.internalErrorMessages.length > 0 || this.error
},
hasMessages (): boolean {
return this.validationTarget.length > 0
Expand Down Expand Up @@ -127,7 +127,7 @@ export default mixins(
return undefined
},
validationTarget (): VuetifyRuleValidations {
if (this.errorMessages.length > 0) {
if (this.internalErrorMessages.length > 0) {
return this.internalErrorMessages
} else if (this.successMessages.length > 0) {
return this.internalSuccessMessages
Expand Down Expand Up @@ -196,9 +196,9 @@ export default mixins(

methods: {
genInternalMessages (messages: VuetifyMessage): VuetifyRuleValidations {
if (Array.isArray(messages)) return messages

return [messages]
if (!messages) return []
else if (Array.isArray(messages)) return messages
else return [messages]
},
/** @public */
reset () {
Expand Down
20 changes: 20 additions & 0 deletions packages/vuetify/test/unit/mixins/validatable.spec.js
Expand Up @@ -343,4 +343,24 @@ test('validatable.js', ({ mount }) => {
expect(wrapper.vm.isResetting).toBe(true)
expect(wrapper.vm.internalValue).toEqual([])
})

// https://github.com/vuetifyjs/vuetify/issues/6025
it('should accept null for external messages', () => {
const wrapper = mount(Mock, {
propsData: {
errorMessages: ['Foobar']
}
})

expect(wrapper.vm.externalError).toBe(true)

wrapper.setProps({ errorMessages: [] })
expect(wrapper.vm.externalError).toBe(false)

wrapper.setProps({ errorMessages: 'Fizzbuzz' })
expect(wrapper.vm.externalError).toBe(true)

wrapper.setProps({ errorMessages: null })
expect(wrapper.vm.externalError).toBe(false)
})
})

0 comments on commit eef7d4f

Please sign in to comment.