Тестирование функций внутри компонента React без учета состояния с помощью Enzyme - PullRequest
1 голос
/ 15 марта 2019

У меня есть компонент без сохранения состояния:

export default function TripReportFooter(props) {
  const { tripReport, user, toggleFavorite, navigation } = props;


  handleShare = async slug => {
    try {
      const result = await Share.share({
        message: `Check out this Trip Report:\n/p/${slug}/`
      });

      if (result.action === Share.sharedAction) {
        if (result.activityType) {
        } else {
          // shared
        }
      } else if (result.action === Share.dismissedAction) {
      }
    } catch (error) {
      alert(error.message);
    }
  };

  handleFavorite = async id => {
    const token = await AsyncStorage.getItem("token");
    toggleFavorite(id, token);
  };

  return (
    ... // handleFavorite and handleShare called with TouchableOpacities.
  );
}

Имеет две функции: handleShare и handleFavorite. Я хочу проверить, как эти функции вызываются, а также что handleFavorite вызывает функцию prop, чтобы переключать избранное.

Я пробовал wrapper.instance (). HandleFavorite (), но, поскольку это компонент без состояния, он возвращает ноль.

Далее кто-то в Stack Overflow предложил использовать шпиона следующим образом:

    wrapper = shallow(<TripReportFooter {...props} handleFavorite={press} />);
    wrapper
      .find("TouchableOpacity")
      .at(0)
      .simulate("press");
    expect(press.called).to.equal(true);
  });

но это вернуло 'TypeError: Невозможно прочитать свойство' равное 'из неопределенного'. Как правильно вызывать эти функции?

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