54 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Frontend Test Hygiene
Дата: 2026-06-23
Статус: выполнено
## Контекст
Во frontend уже есть Vitest, Testing Library и MSW, но после нескольких фаз миграции тестовая
инфраструктура может накопить лишние абстракции, дублирующиеся helpers и разъехавшиеся conventions.
Это не проблема покрытия как такового, а проблема ясности, локальности и поддержки тестов.
Эта фича нужна, чтобы тестовый слой оставался простым: тесты должны быть рядом с кодом, helpers должны
быть минимальными, а сетевые и контекстные зависимости должны быть предсказуемыми.
## Цель
Упростить и нормализовать frontend test infrastructure так, чтобы тесты было легче писать, читать и
поддерживать без изменения продуктового поведения.
## Требования
### 1. Test helpers stay minimal
Общие test helpers должны содержать только действительно shared тестовую инфраструктуру. Дублирующие
или слишком широкие обёртки нужно убрать или сузить.
### 2. Testing conventions stay consistent
Frontend тесты должны следовать единым правилам по расположению, mock strategy, QueryClient setup и
MSW usage. Новые тестовые паттерны не должны вводить отдельные локальные договорённости без причины.
### 3. Coverage is preserved
Рефакторинг тестовой инфраструктуры не должен уменьшать существующее покрытие или ломать тесты в
колокации с кодом.
### 4. No production behavior changes
Фича касается только test layer. Production code changes допускаются только если они неизбежны для
упрощения тестовой поверхности, и тогда должны быть минимальными.
## Ограничения
- Не переписывать всю тестовую базу целиком.
- Не добавлять новую тестовую платформу.
- Не менять backend test strategy.
## Критерии приемки
- Test helpers и wrappers стали проще или уже, чем до фичи.
- Основные frontend тесты продолжают проходить.
- Тестовая документация описывает актуальные conventions.
- Не изменено пользовательское runtime-поведение.