雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

React @testing-library UserEvent.paste用法更新到14版本后不生效

2024-09-01 42

把testing-library从13.5.0更新到了14.1.1,发现原来paste的case过不了。

官网上V13的用法和Demo是这样的:

paste(element, text, eventInit, options)

test('should paste text in input', () => {
  render(<MyInput />)

  const text = 'Hello, world!'
  const element = getByRole('textbox', {name: /paste your greeting/i})
  userEvent.paste(element, text)
  expect(element).toHaveValue(text)
})

但是更新V14包后这样写就有问题,paste方法第一个参数不再传element,而是先focus到目标元素上再进行paste操作。更新后的写法是这样的:

paste(clipboardData?: DataTransfer|string): Promise<void>

it('should paste', async () => {
  render(<Screen />)
  screen.getByRole('textbox').focus()
  await userEvent.paste('1234')
})

这个问题在GitHub上也看到很多人提出了。

更新于:2个月前
赞一波!

文章评论

评论问答