Задать вопрос
@Zashamee

Почему useEvent.type (React TestingLibrari) работает не правильно???

Пишу хук под смену фокуса на стрелочки в строке поиска. Возникли проблемы при тестировании.
Не проходит unit-test - выдает следующую ошибку:
64c281eac653b574892653.png

Так выглядит код теста:
describe('useArrowChangeFocus', () => {
  it('should useArrowChangeFocus is works if push ArrowDown', async() => {
    browserHistory.push(AppRoutes.Catalog);
    render(fakeApp);

    const searchInput = await screen.findByPlaceholderText('Поиск по сайту');

    userEvent.type(searchInput, 'Ретрокамера');


    const lowerElement = await screen.findByTestId('1');

    await userEvent.keyboard('[ArrowDown]');
    await userEvent.keyboard('[ArrowDown]');
    expect(lowerElement).toHaveFocus();
    await userEvent.keyboard('[ArrowDown]');
    expect(searchInput).toHaveFocus();
  });

  it('should useArrowChangeFocus is works', async() => {
    browserHistory.replace(AppRoutes.Catalog);
    render(fakeApp);

    const searchInput = await screen.findByPlaceholderText('Поиск по сайту');
    await userEvent.clear(searchInput)
     await userEvent.type(searchInput, 'Привет');

    expect(searchInput).toHaveValue('Привет');
  });
});


А это часть компонента - тот самый инпут с которым я взаимодействую:
const [inputValue, setInputValue] = useState<string>('');

  const onClickClearInput = () => {
    setInputValue('');
  };

  const searchProducts = productNames.filter((el) => el.name.toLocaleLowerCase().includes(inputValue.toLocaleLowerCase()));

          <input className="form-search__input" type="text" autoComplete="off" placeholder="Поиск по сайту" onChange={onChangeSetInputValue} value={inputValue}
            data-testid={'search-bar-test'}
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы