Я пытаюсь протестировать опору компонента React, который заключен в ContextConsumer, но при запуске тестов Enzyme сообщает мне, что Method “props” is meant to be run on 1 node. 0 found instead.
компонент, который я пытаюсь протестировать, такжезавернутый в другой общий компонент.Дерево наследования всего этого выглядит следующим образом:
-> MainComponent
(который я создаю с помощью enzyme.shallow()
)
--------> SubComponent
(вложено в MainComponent
, в которое я погружаюсь через .find()
. Этот компонент обернут в потребителя контекста React)
---------------> propOfSubComponent
(Реактивная опора, которая содержит конкретный компонент для тестирования)
------------------------> SubSubComponent
(последний компонент, к которому я пытаюсь получить доступ, используя .find()
)
--------------------------------> propOfSubSubComponent
(последняя опора для тестирования)
Я пробовал массу способов решить проблему, но безрезультатно.
Ниже приведен мой реальный код.
<MainComponent {...someDefaultProps}>
<SubComponent
propOfSubComponent={
//this component is wrapped in another file
//into a React ContextConsumer
<SubSubComponent propOfSubSubComponent />
}
/>
</MainComponent>;
describe('Main component', () => {
it('the prop is correctly passed', () => {
const wrapper = enzyme.shallow(<MainComponent {...someDefaultProps} />);
const SubSubComponent = wrapper
.find('SubComponent')
.dive()
.find('SubSubComponent');
expect(SubSubComponent.props().propOfSubSubComponent).toBe(0);
});
});
Ферментные журналы:
Method “props” is meant to be run on 1 node. 0 found instead.
(ошибка возникает при попытке выполнить SubSubComponent.props()
в .expect()
)
Есть предложения?
Заранее спасибо !!!