У меня есть модульный тест, записанный как:
it('shows validation message when predicate is violated', () => {
const input = subject.find('input').at(0);
input.simulate('change', { target: { value: " " } });
input.simulate('blur');
expect(subject.find('[role="alert"]').length).toEqual(1);
});
, который я получаю Ожидаемое значение, равное: 1, Получено: 0.
Проверка входных данных выбирает пустое значение и возвращаетсообщение об ошибке.Я проверил, что subject.find('[role="alert"]')
будет ловить сообщение об ошибке, если оно появляется, и input.props().value
также дает пустую строку.Так что я подозреваю, что simulate('click')
не сработало.Я прошел через многие, многие связанные проблемы, но не нашел своего ответа, надеюсь, кто-нибудь может помочь!
Мой элемент ввода прост:
<Field
name="customerFirstName"
label = "First name"
type="text"
component={inputField}
validate={required}
/>
const inputField = props => {
const { input, label, type, meta: { touched, error }} = props;
return (
<FormGroup>
<ControlLabel>{label}</ControlLabel>
<FormControl {...input} placeholder={label} type={type} />
{ touched && error && <span>{error}</span> }
</FormGroup>
)
}
Проверка правильности:
export const required = value => {
if (value) { value = value.trim() };
return value ? undefined : ErrorMessage('This field is required')
}