Тесты и CI
Что где
Заголовок раздела «Что где»| Репозиторий | Инструменты | Тест-файлов | Что делает CI |
|---|---|---|---|
poker-api |
Jest + supertest, unit для packages/rating |
51 | prisma generate → сборка → тайпчек → тесты, PostgreSQL 16 сервисом |
poker-admin |
Vitest + Testing Library + msw | 20 | тесты → tsc -b && vite build |
poker-organizer |
jest-expo + Testing Library + msw | 24 | tsc --noEmit → тесты |
poker-player |
jest-expo + Testing Library + msw | 50 | tsc --noEmit → тесты |
CI — GitHub Actions, во всех четырёх репозиториях, на push в main и на pull
request. Число файлов посчитано 2026-08-24; число кейсов здесь не приводится,
чтобы не устаревало молча.
Серверные тесты
Заголовок раздела «Серверные тесты»E2E-стиль, по файлу на модуль, против реальной базы. Особенности, без которых они ведут себя загадочно:
maxWorkers: 1. Тесты идут последовательно.- База пересоздаётся в
globalSetup, своя на прогон. Общая база между параллельными прогонами — источник флейков, которые ловятся долго. - Сети в тестах нет. Внешние интеграции подменены фейками:
FakeOtpChannel,FakePushSender,FakeBoss. - Рассадка тестируема, потому что
rngв неё инъектируется.
Фронтовые тесты
Заголовок раздела «Фронтовые тесты»Сеть перехватывает msw, и незамоканный запрос валит тест — это осознанно: молча ушедший в никуда запрос хуже красного теста.
Две вещи, на которых теряют время:
- В Expo-приложениях нужен
--forceExit. Он уже прописан в скриптеtest: без него открытые хендлы не дают процессу завершиться, и прогон висит до таймаута. - Фильтр
-tс кириллицей молча не фильтрует. Запуск видаpnpm test -- -t "название"с русским текстом не отберёт ничего и не пожалуется — прогонит всё либо ничего. Фильтровать надёжнее по имени файла.
Что покрыто строже всего
Заголовок раздела «Что покрыто строже всего»packages/rating — 100% покрытия, и это условие, а не достижение: по этим
формулам считаются очки игроков. Подробнее — в статье про рейтинг.
Что рядом
Заголовок раздела «Что рядом»- Окружения, стенды и деплой — что происходит после зелёного CI.
- Карточки сервисов — команды запуска тестов по репозиториям.