Не удалось обновить значение TextField пользовательского интерфейса Office Fabric в ферментном тесте - PullRequest
1 голос
/ 09 ноября 2019

У меня есть компонент React, который использует TextField из office-ui-fabric-реаги * . Я использую Enzyme / Jest для написания модульных тестов. У меня возникают проблемы при обновлении значения TextField.

. Я пытался использовать .simulate('change', { target: { value: 'Input Value'} }.

. Вот упрощенная версия моего компонента:

const FeedbackForm = (props: IFeedbackFormProps): JSX.Element => {
  const [comments, setComments] = React.useState<string>('');

  const onCommentChange = (_event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue: string): void => {
    setComments(newValue);
  };

  return (
          <TextField
            value={comments}
            onChange={onCommentChange}
          />
  );
};

Это мой тест:

it('should enable the submit button when the user enters a comment', () => {
     const wrapper = shallow(<FeedbackForm {...mockProps} />);
     const commentBox = wrapper.find(TextField);
     const submitButton = wrapper.find('[type="submit"]');

     commentBox.simulate('change', { target: { value: 'test value' } });

     // This button gets enabled when the text area is not empty
     expect(submitButton.is('[disabled]')).toBe(false);
   });

Пользовательский интерфейс работает, как и ожидалось. Глядя на commentBox.debug(), value компонента не меняется.

Я также убедился, что onCommentChange вызывается при вызове commentBox.simulate(...).

...