Skip to content

coolswood/coolswood-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект создан на базе create react app.

Выбранные библиотеки

Проект создан на React с использованием классического окружения - react-redux и react-router-dom. Также для упрощения работы с redux используется redux-thunk.

Структура проекта

Проект структурирован для лучшего масштабирования. В целом названия папок отражают их сущности. Отдельно стоит остановиться на pages, UI, wigets.

pages - содержит крупные компоненты (страницы), имеет сильную связку с проектом (использует redux для связки данных), при этом все равно присутствует модульность (экшены, редьюсеры, константы хранятся изолированно в папке страницы).

UI - содержит самые мелкие части приложения, которые используются повсеместно. Каждый UI компонент независим от инфраструктуры приложения, может быть безболезненно перенесен в другой проект.

wigets - по смыслу похож на UT, однако, содержит большие составные модули.

Компонент VendingSeller

Принимает на вход массив элементов с информацией о товаре. Внутри себя содержит элементы управления и вывода информации, а на вход возвращает id выбранного пользователем товара.

Тестирование

Для UNIT тестирования функций используется jest. Мною показан пример тестирования reducer и action. В первом случае мы пробрасываем action и проверяем итоговый результат. В случае с action все несколько сложнее, мы вынуждены использовать моки для асинхронной функции получения данных, также мы проверяем, что action задиспачил нужные нам данные.

Для тестирования компонентов используется @testing-library/react. В этом случае мы рендерим компоненты с заготовленными props и делаем снимок итогового результата. Методы проверяем с помощью мока функций.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published