Вы, кажется, делаете обе проверки неверно, вы хотите вернуть true
, если проверка прошла успешно, и false
, если проверка не пройдена.
При первой проверке value && value.length < 2 ? true : false
вы ищетеvalue.length > 2
вместо <
, а также нет необходимости иметь троичный, так как оператор сравнения вернет значение true / false после оценки.
Во второй проверке !/^[A-Za-z]+$/.test(value);
вы отрицаете проверку, используя !
Вот исправленный код проверки:
object().shape({
firstname: string()
.required('First Name is required')
.test('length', 'First Name must have more than 1 character', (value) => {
return value && value.length > 2;
})
.test('alphabets', 'Name must only contain alphabets', (value) => {
return /^[A-Za-z]+$/.test(value);
})
});