在Jest中使用Window进行条件渲染

时间:2018-05-07 20:23:55

标签: reactjs jestjs enzyme

我正在开发一个简单的React应用程序,该应用程序打开一个带有window.open()的新选项卡,用于只读“演示者”视图,其中演示者不再看到控制按钮。它工作得很好,但在我的Jest测试中,当我更新窗口名称时,组件保持渲染。

这是组件:

const AdjustTimerButtonGroup = props => {
if (window.name === 'presenter') {
  return null;
}
return(
  //rest of button 
  )
];

这是我目前拥有的测试:

  it('does not render if in presenter window', () => {
    wrapper = shallow(<AdjustTimerButtonGroup />);
    global.window.name = 'presenter';
    wrapper.update();
    expect(wrapper.type()).toEqual(null);
  });

1 个答案:

答案 0 :(得分:0)

我相信{j}中global windowglobal.window.name。当你做window.window.name时,它基本上就像写global.name一样。尝试使用window.name或{{1}}