Skip to content

kotoyama/aviasales-test-task

Repository files navigation

✈ aviasales-test-task

Описание задания можно посмотреть здесь.
С задеплоенным приложением можно ознакомиться тут.
Файлик .env с переменными среды не добавлен в .gitignore в целях удобства.

Как запустить

# установка зависимостей
$ yarn install

# запуск в режиме разработки
$ yarn start

Стек

Почему именно эти инструменты

Бандлер

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

Стейт-менеджер

Мир фронтенда — event-driven: пользователь всё время генерирует событие за событием, а эффектор помогает справляться с задачами декларативным путём.

Стили

Взяла линарию из-за схожести API со styled-components, к тому же это zero-runtime CSS-in-JS.

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

Изначально планировала покрыть ими всё приложение по максимуму, включая тесты на вьюху, но мне это довольно быстро наскучило. Однако если какой-нибудь из компонентов будет выполнять нетривиальные вычисления, я лучше напишу тест, чем буду накликивать в браузере. На данный момент тестами покрыты все модели с бизнес-логикой и некоторые библиотеки.

Доступные скрипты

  • yarn start - запуск локального сервера в режиме разработки
  • yarn build - запуск сборки бандла для продакшена
  • yarn build:live - запуск собранного бандла в локальном режиме
  • yarn format - запуск форматирования кода
  • yarn lint:code - запуск линтинга кода
  • yarn lint:code:fix - запуск линтинга кода с автофиксом
  • yarn lint:styles - запуск линтинга стилей
  • yarn lint:styles:fix - запуск линтинга стилей с автофиксом
  • yarn test - запуск тестов
  • yarn test:watch - запуск тестов в watch-режиме
  • yarn test:coverage - запуск тестов с генерацией отчета по покрытию
  • yarn commit - генерация осмысленного коммита