У меня есть компонент без сохранения состояния:
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: Невозможно прочитать свойство' равное 'из неопределенного'. Как правильно вызывать эти функции?