Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To use copy/paste in version 14 of @testing-library/user-event, you first need to install the package:

npm install @testing-library/user-event@latest

Then, you can use the userEvent method to simulate copy and paste. Here is an example:

import { render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';

test('copy and paste text', () => {
  const text = 'hello world';
  const input = render(<input type="text" />);
  const inputNode = input.getByRole('textbox');

  userEvent.type(inputNode, text);
  expect(inputNode).toHaveValue(text);

  userEvent.clear(inputNode);
  expect(inputNode).toHaveValue('');

  userEvent.clipboardText(text);
  userEvent.paste(inputNode);
  expect(inputNode).toHaveValue(text);
});

In this example, we simulate typing hello world in an input field, then clear the input, simulate copying hello world to the clipboard, and finally simulate pasting it into the input field.