将 @testing-library/user-event 更新到 v.14 时出错

jak*_*son 7 reactjs react-testing-library testing-library user-event

我正在遵循最新版本的所有说明@testing-library/user-event

前:

  test('request support action',() => {
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    userEvent.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });
Run Code Online (Sandbox Code Playgroud)

后:

  test('request support action', async () => {
    const user = userEvent.setup();
    
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    await user.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });
Run Code Online (Sandbox Code Playgroud)

requestSupport在更高的范围内被嘲笑const requestSupport = jest.fn();

我收到的错误是:

类型错误:range.cloneRange 不是函数

我的所有测试在库更新之前都通过了,现在全部失败了。

jak*_*son 5

我终于找到了解决方案,错误是由于一些旧的模拟而发生的,这是以前的测试环境所需要的。必须做的就是从 jest 配置文件中删除以下内容:

global.document.createRange = () => ({ ... });
Run Code Online (Sandbox Code Playgroud)