В данном проекте я реализовал роутинг в React-приложении с помощью библиотеки React-Router, написал Unit-тесты для каждого компонента, используя React-Testing-Library. В качестве сборщика используется vite.
Как только Вы откроете приложение, Вы увидите главную страницу (MainPage). Вы можете переходить на другие страницы выбрав в навигационном меню либо 'Пользователи' (UsersPage), либо 'Плэйлисты' (PlaylistsPage), на которых будет представлен список пользователей и плэйлистов соответственно. При переходе вы можете увидеть изменения в поисковой строке браузера (Роутинг). Также на страницах 'Пользователи' и 'Плэйлисты' есть поля для фильтрации. При введении в поля каких либо символов Вы сможете наблюдать также изменения поисковых параметров в поисковой строке. При клике на какого-либо пользователя (или плэйлиста) вас перенесет на страницу с информацией о пользователе (о плэйлисте). При этом вы также сможете наблюдать изменения в поисковой строке, добавится id пользователя, представляющий собой динамический путь.
Также в данном приложении есть Unit-тесты для каждой страницы в приложении, они расположены в папочке tests.
Чтобы выполнить данное тестирование надо в терминале прописать:
npm test src/pages/MainPage/tests/MainPage.test.tsxЗдесь будет выполняться Snapshot-тестирование и в папочке tests появится папочка 'snapshots' и в ней будет фаил 'MainPage.test.tsx.snap', в котором вы можете увидеть, как будет выглядеть данный компонент в момент тестирования по HTML.
Чтобы выполнить данное тестирование надо в терминале прописать:
npm test src/pages/PlaylistsPage/tests/PlaylistPage.test.tsxЗдесь единственный тест, проверяющий правильность вызова setSearchParam с теми данными, которые вводятся в input
Чтобы выполнить данное тестирование надо в терминале прописать:
npm test src/pages/UsersPage/tests/UsersPage.test.tsxЗдесь единственный аналогичный тест с тестом страницы PlaylistsPage
Чтобы выполнить данное тестирование надо в терминале прописать:
npm test src/pages/UserInfoPage/tests/UserInfoPage.test.tsxЗдесь два теста, которые проверяют:
- Отображение соответствующего текста при несуществующем UserId;
- Отображение данных о User при передаче существующего userId
Чтобы выполнить данное тестирование надо в терминале прописать:
npm test src/pages/PlaylistInfoPage/tests/PlaylistInfoPage.test.tsxЗдесь два аналогичных теста с тестом страницы UserInfoPage
Для того, чтобы запустить приложение надо:
- Открыть проект и запустить терминал
- Установить необходимые зависимости, для этого в терминале надо прописать:
npm install- Запустить приложение, для этого в терминале надо прописать:
npm run dev- После запустка в терминале появится строка с ссылкой по которой надо перейти:
[1] ➜ Local: http://localhost:5173/