Я пытаюсь проверить компонент, который наследует контекст от корневого компонента, без загрузки/рендеринга всего от корня вниз. Я пробовал и искал примеры того, как издеваться над контекстом, но не может найти ничего (по крайней мере, это не использует шутки).
Вот упрощенный пример того, чего я пытаюсь достичь.
Есть ли простой способ, с помощью которого я могу moker reactEl.context для теста?
/**
* Root Element that sets up & shares context
*/
class Root extends Component {
getChildContext() {
return {
language: { text: 'A String'}
};
}
render() {
return (
<div>
<ElWithContext />
</div>
);
}
}
Root.childContextTypes = { language: React.PropTypes.object };
/**
* Child Element which uses context
*/
class ElWithContext extends React.Component{
render() {
const {language} = this.context;
return <p>{language.text}</p>
}
}
ElWithContext.contextTypes = { language: React.PropTypes.object }
/**
* Example test where context is unavailable.
*/
let el = React.createElement(ElWithContext)
element = TestUtils.renderIntoDocument(el);
// ERROR: undefined is not an object (evaluating 'language.text')
describe("ElWithContext", () => {
it('should contain textContent from context', () => {
const node = ReactDOM.findDOMNode(element);
expect(node.textContent).to.equal('A String');
});
})