reactjs React测试库用户事件键盘不工作

beq87vna  于 2022-11-04  发布在  React
关注(0)|答案(1)|浏览(222)

我正在使用react测试库user-event来测试我的ag网格上的键盘交互。我正在尝试输入CTRL +,它在我的网格上做了一些事情,但是没有按照我期望的方式工作。看起来它没有正确地注册CTRL +,但是我不确定。
下面是我做的userevent键盘代码,它不做特定的输入。我复制了相同的函数,并将其设置为当你单击'p'时,它做同样的事情,在测试中有效,但CTRL +不起作用。有什么想法吗?
我试了几种方法都没用。

await user.keyboard('{ctrl},{/ctrl}');

await user.keyboard('{ctrl}{,/}{/ctrl}');

await user.keyboard('{ctrl}[,]{/ctrl}');
jv2fixgn

jv2fixgn1#

问题是逗号不是修饰键,所以它不能和ctrl键一起使用,解决方法是使用keydown事件而不是keypress事件。
下面是一个例子:

import { fireEvent, render } from '@testing-library/react';

test('can type "p"', () => {
  const { getByTestId } = render(<input data-testid="input" />);
  const input = getByTestId('input');
  fireEvent.keyDown(input, { key: 'p', code: 80, ctrlKey: true });
  expect(input.value).toBe('p');
});

相关问题