Я использую Jest и React Test Renderer для тестирования компонента React Native, в который я добавляю некоторые параметры к объекту реагировать-навигации при монтировании, например:
componentDidMount() {
const { setParams } = this.props.navigation;
setParams({ subTitle: this.props.user.outlet.name.toUpperCase() });
}
Это нормально работает в пользовательском интерфейсе, но в тестах я получаю ошибку TypeError: Cannot read property 'outlet' of undefined
Пропуск navigation
через пропеллер работает нормально, но я предполагаю, что не пропускаю user
правильно. Что я делаю не так?
Вот мой тест (все, что я не считал релевантным, пропущено):
const props = {
navigation: {
navigate: jest.fn()
},
user: {
// user info here
}
};
const tree = renderer.create(
<MockApp mocks={{ ...baseMocks, ...mocks }}>
<Home {...props} />
</MockApp>
);
await wait(0);
expect(tree.toJSON()).toMatchSnapshot();