Skip to content

shlensky/yandex-arcanum

Repository files navigation

Домашнее задание для ШРИ-2019 (Москва)

Сделать React приложение, которое позволит просматривать содержимое git репозиториев.

Установка

npm install
cp .env.example .env

Разработка

npm start

Сервер будет доступен по адресу http://localhost:7777/

Продакшен сборка

npm run build

Логические блоки системы

Сервер состоит из набора middleware.

Часть middleware отвечают за SSR:

  • prepareState - Подготавливает данные для отрисовки приложения на сервере (SSR).
  • clientAssets - Подготавливает ссылки на .js и .css файлы, для последующего подключения на страницу (SSR).
  • renderPage - Отрисовывает приложение (с помощью renderToStaticMarkup) в строку, и отправляет клиенту (SSR).

Другие обрабатывают ajax запросы:

  • routeApi - Отдает данные для определенного url. Это те же данные, с которыми страница отрисовывается на сервере.
  • standaloneApi - API для одиночных запросов, которые не связаны с роутингом и SSR.

Еще есть dataSource - функции для получения данных от обертки над утилитой git. И непосредственно сама обертка над утилитой git, находится в файле server/lig/git.ts.

Модульные тесты

npm test

Запуск e2e тестов

Перед запуском тестов нужно установить и запустить selenium:

npm install selenium-standalone@latest -g
selenium-standalone install 
selenium-standalone start

Нужно инициализировать подмодули git с тестовыми репозиториями, они будут склонированы в директорию ./tests/e2e/repos:

git submodule init
git submodule update  

Еще нужно запустить само приложение, которое будем тестировать. Тесты полагаются, что сервер будет раздавать репозитории из папки ./tests/e2e/repos:

REPOS_DIR=./tests/e2e/repos npm start

Запускаем тесты (hermione):

npm run e2e

About

Web interface for git repositories

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published