我有一個Parent
組件,它呈現一個Child
組件。 Child
組件首先渲染獨特的道具(如「名稱」),然後父組件渲染通用道具(如「類型」),並使用React.Children.map
將這些道具注入Child
組件。如何等待Mocha使用酶完成React組件的渲染?
我的問題是酶不能檢測Section
組件提供的常見道具,所以我無法有效測試是否添加了常用道具。
測試:
const wrapper = shallow(
<Parent title="Test Parent">
<div>
<Child
name="FirstChild"
/>
</div>
</Parent>
)
// console.log(wrapper.find(Child).node.props) <- returns only "name" in the object
expect(wrapper.find(Child)).to.have.prop("commonPropOne")
expect(wrapper.find(Child)).to.have.prop("commonPropTwo")
expect(wrapper.find(Child)).to.have.prop("commonPropThree")
注入普通道具代碼:
const Parent = (props) => (
<div
className="group"
title={props.title}
>
{ React.Children.map(props.children, child => applyCommonProps(props, child)) }
</div>
)