chore: codify frontend local verification

This commit is contained in:
2026-08-24 19:55:28 +03:00
parent 1fc269adec
commit 11be786943
6 changed files with 75 additions and 31 deletions
+5 -1
View File
@@ -1,6 +1,10 @@
# Frontend Documentation
Эти документы задают правила AI-разработки и дополняют `AGENTS.md`. Фактические версии зависимостей и scripts всегда определяются конфигурацией проекта.
Эти документы задают frontend-local conventions и дополняют `AGENTS.md`.
Общая engineering policy находится в
[`../../docs/development/engineering-governance.md`](../../docs/development/engineering-governance.md),
а фактические версии зависимостей и scripts всегда определяются конфигурацией
проекта.
- `CONVENTIONS.md` - обязательные правила кода и i18n.
- `API-LAYER.md` - OpenAPI, generated types и typed client.
+15 -1
View File
@@ -1,9 +1,23 @@
# Testing
Тесты запускаются `npm run test:run` через Vitest и Testing Library. `npm run test:coverage` создаёт локальный coverage report.
Canonical completion gate — `npm run verify`; он запускает Vitest один раз
через `npm run test:coverage`. `npm run test:run` остаётся короткой локальной
командой без coverage report.
Выбор нового теста определяется риском поведения, а не фактом изменения файла.
Автоматический тест обязателен для security/privacy, денежных расчётов,
целостности данных, concurrency, публичного контракта, критического journey и
регрессии. DTO без логики, декларативная конфигурация, тонкая orchestration и
поведение зависимости отдельного unit test не требуют, пока у них нет
собственного branching, transformation, invariant или regression. Полная
policy находится в [engineering governance](../../docs/development/engineering-governance.md).
MSW запускается только Vitest setup в `src/test/`; handlers покрывают текущий API. Не добавлять service worker, browser mocking или mock development mode. Для transport проверять заголовки и retry через MSW, не через реальный backend.
Проверяйте наблюдаемое поведение, а не детали реализации. UI-тест строится как Arrange, Act, Assert; для интерактивных действий предпочитайте `userEvent`. Форма должна проверять валидацию и отсутствие запроса при невалидных данных; маршруты - редиректы и доступность экрана.
Colocated tests finance views фиксируют выбор loading/error/empty/loaded и доступные recovery actions. Route boundary tests используют test-only throwing route и проверяют безопасную ссылку и reset после navigation.
Coverage floors остаются anti-regression constraint. Нельзя добавлять тест,
который только повторяет декларативную структуру или внутренности зависимости,
ради повышения процента.