Fix: isNumeric and other type validators incorrectly accepting arrays #1344
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes #1323 where
isNumericand other type validators incorrectly accepted arrays (including empty arrays) instead of rejecting them. The issue occurred because empty arrays would skip validation entirely since theforEachloop had no elements to iterate over, causing the validation to incorrectly pass.The fix adds array rejection logic to
StandardValidationthat checks if the validator is a type validator (likeisNumeric,isInt,isBoolean, etc.) and rejects arrays before processing individual elements. This ensures that arrays are properly validated as invalid input for type validators since an array is not a number, string, or boolean.Changes include:
shouldRejectArrays()method to identify type validators that should reject arraysStandardValidation.run()to reject arrays for type validators before element processingTo-do list