Почему библиотека / шутка для тестирования реакции получает ввод DOM в обратном направлении?

#reactjs #dom #jestjs #react-testing-library

Вопрос:

При тестировании формы я использую UserEvent для ввода «привет» в текстовое поле, а затем при тестировании значения указанного текстового поля сразу после этого, используя toHaveValue (), он возвращает строку в обратном направлении…

  render(<Form />)
 userEvent.clear(screen.getAllByRole('textbox')[0])
 userEvent.type(screen.getAllByRole('textbox')[0], 'hello')
 expect(screen.getAllByRole('textbox')[0]).toHaveValue('hello')
 

Ошибка в консоли после запуска теста пряжи:
введите описание изображения здесь

Версии пакетов:

     "react-scripts": "^3.4.3",
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/react": "^12.0.0",
    "@testing-library/user-event": "^13.1.9",
 

Комментарии:

1. Можете ли вы предоставить кодовое поле для воспроизведения этого?

2. Для этого существует известная проблема: github.com/testing-library/user-event/issues/369 Но это уже должно было быть решено в 12.0.4.

3. У меня такая же проблема при работе над проектом SharePoint Framework. Я думаю, что есть какой -то конфликт зависимостей, который вызывает это. Но это довольно трудно точно определить :/

4. Не могу воспроизвести это в другом месте, но я собираюсь предположить, что это проблема с CRA и ее зависимостью от jest. Довольно неприятно -.-

Ответ №1:

Я испытал то же самое, и ранее я был на jest ^24.8.0, и после обновления до последней версии (jest ^27.2.1) проблема была решена.