Как проверить meta.valid отреагировать на окончательную форму - PullRequest
0 голосов
/ 25 сентября 2018

Я использую реагирующую окончательную форму для проверки поля ввода, как показано ниже:

buildInputComponent() {
return (
  <InputField
    id="input-field"
    label="description"
    isInvalid={meta.touched && !meta.valid}
    error={meta.error}
    value=input.value
    required
    onChange={(event) => {
      input.onChange(event.target.value);
    }}
  />);
}

Я проверил это следующим образом:

it('sets the frequency state to the value in the frequency select', () 
=>   {
       const inputValue = '30';
       testInput.find('input-field').find('input').hostNodes()
          .simulate('change', { target: { value: inputValue } });
     testInput.update();

   expect(testInput.find('ReactFinalForm').instance().state.schedule.frequency).toEqual(frequency);

  });'

Это относится к тесту для мета.touched, но отчет о покрытии показывает, что он не покрывает тест для! meta.valid Я не знаю, как покрыть тест для! meta.valid Я попытался создать пустое поле, как показано ниже:

testInput.find('input-field').find('input').hostNodes()
      .simulate('change', { target: { value: frequency } });

Но это не распространяется, пожалуйста, помогите

1 Ответ

0 голосов
/ 26 сентября 2018

Я подозреваю, что ваше touched всегда ложно, потому что вы не фокусируете и не размываете поле, поэтому вторая половина && никогда не оценивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...