fix: number field validation (#4233)
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user