如何测试meta.valid react最终形式

时间:2018-09-25 10:54:13

标签: reactjs react-native react-redux react-final-form

我正在使用react-final-form来验证输入字段,如下所示:

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);

  });'

这涵盖了meta.touched的测试,但是覆盖率报告显示它不涵盖!meta.valid的测试 我不知道如何涵盖!meta.valid的测试 我尝试过如下所示的空字段:

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

但是这没有涵盖它,请帮助

1 个答案:

答案 0 :(得分:0)

我怀疑您的touched总是错误的,因为您没有聚焦和模糊视野,因此&&的后半部分从未评估过。