Предположим, у нас есть следующий код

const Task = ({ data }) => {
  if (data.state === 'closed') return <Redirect to='/tasks' />
  return <Task />
}

Если задача закрыта, мы должны быть перенаправлены в список задач. Как протестировать этот код? В response-router нет очевидного способа описанного. Позвольте мне показать вам путь. Это не идеальный способ, но он может вам помочь.

Компонент, который использует ‹Redirect›, должен быть помещен в оболочку ‹Router› из react-router. Для нашего теста мы будем использовать поддельный маршрутизатор, созданный специально для тестирования.

У нашего фальшивого роутера будет всего 2 маршрута.

Первый будет отображать корневой путь с протестированным компонентом.
Второй будет отображать только RedirectUrl.

Если наш компонент перенаправляет на требуемый путь, мы можем проверить это с помощью простого сопоставления строк.

Давайте создадим помощника по тестированию с помощью тестового маршрутизатора.

Давайте воспользуемся нашим тестовым маршрутизатором для тестирования.

Если компонент ‹Task /› перенаправляет на правильный URL-адрес, тест будет пройден.

Вот и все.

Вы знаете способ получше? Пожалуйста, поделитесь этим в комментариях. Спасибо!

Удачного тестирования!