fix: number field validation (#4233)
This commit is contained in:
@@ -413,6 +413,11 @@ describe('Field Validations', () => {
|
||||
const result = number(val, numberOptions)
|
||||
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', () => {
|
||||
const val = 1.5
|
||||
const result = number(val, numberOptions)
|
||||
|
||||
@@ -205,8 +205,11 @@ export const number: Validate<unknown, unknown, NumberField> = (
|
||||
if (typeof lengthValidationResult === 'string') return lengthValidationResult
|
||||
}
|
||||
|
||||
if (!value && required) return t('validation:required')
|
||||
if (!value && !required) return true
|
||||
if (!value && !isNumber(value)) {
|
||||
// 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]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user