fix: number field validation (#4233)

This commit is contained in:
Jarrod Flesch
2023-11-21 10:12:26 -05:00
committed by GitHub
parent dcf14f5f71
commit 19fcfc27af
2 changed files with 10 additions and 2 deletions

View File

@@ -413,6 +413,11 @@ describe('Field Validations', () => {
const result = number(val, numberOptions) const result = number(val, numberOptions)
expect(result).toBe(true) expect(result).toBe(true)
}) })
it('should validate 0', () => {
const val = 0
const result = number(val, { ...numberOptions, required: true })
expect(result).toBe(true)
})
it('should validate 2', () => { it('should validate 2', () => {
const val = 1.5 const val = 1.5
const result = number(val, numberOptions) const result = number(val, numberOptions)

View File

@@ -205,8 +205,11 @@ export const number: Validate<unknown, unknown, NumberField> = (
if (typeof lengthValidationResult === 'string') return lengthValidationResult if (typeof lengthValidationResult === 'string') return lengthValidationResult
} }
if (!value && required) return t('validation:required') if (!value && !isNumber(value)) {
if (!value && !required) return true // if no value is present, validate based on required
if (required) return t('validation:required')
if (!required) return true
}
const numbersToValidate: number[] = Array.isArray(value) ? value : [value] const numbersToValidate: number[] = Array.isArray(value) ? value : [value]