Add foundational phase documentation for mod development
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Фаза 28. Тесты экранов
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 13](13-management-tab.md), [Фаза 17](17-timetable-screen.md) — самые крупные экраны уже есть
|
||||
|
||||
## Зачем
|
||||
|
||||
`AGENTS.md` говорит: у экранов тестов нет, потому что DOM-окружение стоило бы зависимости,
|
||||
которой у проекта нет. На первой фазе это было верно — экран состоял из часов. Сейчас в клиенте
|
||||
несколько тысяч строк с диалогами, сеткой расписания, редактором карты и панелью управления, а
|
||||
vitest уже стоит: DOM-окружение — это одна девзависимость.
|
||||
|
||||
Цель не «покрыть клиент», а закрыть те места, где на клиенте есть **логика**: сборка запроса из
|
||||
фильтров, разбор кода ошибки в текст, блокировки в диалоге создания.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `happy-dom` как девзависимость и окружение vitest для тестов экранов
|
||||
- [ ] Тесты панели людей: фильтры собирают правильный запрос, пейджер не уезжает за границы
|
||||
- [ ] Тесты диалога создания: `core` нельзя снять, сброс карты возвращает дефолт, кнопка
|
||||
блокируется на время запроса
|
||||
- [ ] Тесты сетки расписания: код отказа планировщика превращается в текст, а не в молчание
|
||||
- [ ] Тесты панели управления: отказ по пределу фонда показывается текстом
|
||||
- [ ] Политика тестирования в `AGENTS.md` переписывается: что теперь проверяется тестом, а что
|
||||
по-прежнему глазами
|
||||
- [ ] Прогон экранов не должен заметно удлинять `npm test`
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
Сами тесты и есть содержание фазы; закрывают её четыре набора выше.
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- `npm --prefix src/HSchool.Client test` гоняет экраны и проходит
|
||||
- CI не удлинился настолько, чтобы это раздражало
|
||||
- Сломать `t(...)` в одном из экранов — тест краснеет
|
||||
|
||||
## Стоп
|
||||
|
||||
Не тащить фреймворк ради тестов. Не проверять вёрстку и стили — только поведение.
|
||||
Reference in New Issue
Block a user