React コンポーネントにコンテキストを渡そうとしていますが、Enzyme でテストしているため、コンポーネントをその親に動的に追加して、その状態を調べることができます。テストは次のようになります。
describe('<BeaconConfig />', () => {
it('inherits the config from BeaconConfig', () => {
mount(<BeaconConfig persistent><div id="parent"></div></BeaconConfig>, { attachTo: document.body });
const wrapper = mount(<Beacon/>, { attachTo: document.getElementById('parent') });
expect(wrapper.state('persistent')).to.be(true);
});
});
コンテキストを介して継承する必要がありますが、コンポーネントの状態のpersistent
プロパティが であるため、テストは失敗します。Beacon
undefined
BeaconConfig
Beacon
マウント時にJSX内に直接配置しようとすると正常に動作しますが、この場合、ルートではないため、BeaconConfig
Enzymeはコンポーネントの状態に到達できません。Beacon
コンポーネントを親に動的に追加したときに、React がコンポーネントにコンテキストを伝播しないのは正常ですか?