У меня есть следующая проблема: перед каждым тестом я создаю контейнер
const container = shallow(<Provider store={mockStore}><ReportButton{...mockProps}/></Provider>).dive();
Так что, когда я пытаюсь найти () некоторые элементы, для имитации события, я получаю ошибку.
В снимке отображается сам компонент, но не внутренняя разметка.
<ReportButton
category={Array []}
count={100}
dataId=""
filter={Object {}}
fullReport={false}
isEmpty={false}
loading={false}
period_tariff_is_active={true}
type=""
/>
И я просто не могу попасть внутрь компонента.
Одно простое решение: как Redux DOCS посоветовал, тестирование компонента без переноса в провайдера. Итак, вам просто нужно добавить именованный экспорт для вашего компонента, как это сделано ниже
export default connect(mapStateToProps, mapDispatchToProps)(ReportButton);
export {ReportButton};
Поздравляем, теперь вы можете протестировать свой компонент.
Но если вы используете перехваты response-redux (useSelect например), тогда этот трюк не будет работать, потому что ваш компонент будет автоматически подключен. И вы будете экспортировать компонент так:
export default ReportButton;
Итак, проблема вернулась. И я не знаю, как это исправить.
Список используемых пакетов:
"react": "^16.9.0",
"redux": "^4.0.4",
"react-redux": "^7.1.1",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",