Files
h-school/docs/phases/06-foundation/28-screen-tests.md
T

2.8 KiB

Фаза 28. Тесты экранов

Зависимости

Зачем

AGENTS.md говорит: у экранов тестов нет, потому что DOM-окружение стоило бы зависимости, которой у проекта нет. На первой фазе это было верно — экран состоял из часов. Сейчас в клиенте несколько тысяч строк с диалогами, сеткой расписания, редактором карты и панелью управления, а vitest уже стоит: DOM-окружение — это одна девзависимость.

Цель не «покрыть клиент», а закрыть те места, где на клиенте есть логика: сборка запроса из фильтров, разбор кода ошибки в текст, блокировки в диалоге создания.

Задачи

  • happy-dom как девзависимость и окружение vitest для тестов экранов
  • Тесты панели людей: фильтры собирают правильный запрос, пейджер не уезжает за границы
  • Тесты диалога создания: core нельзя снять, сброс карты возвращает дефолт, кнопка блокируется на время запроса
  • Тесты сетки расписания: код отказа планировщика превращается в текст, а не в молчание
  • Тесты панели управления: отказ по пределу фонда показывается текстом
  • Политика тестирования в AGENTS.md переписывается: что теперь проверяется тестом, а что по-прежнему глазами
  • Прогон экранов не должен заметно удлинять npm test

Тесты, без которых фаза не закрыта

Сами тесты и есть содержание фазы; закрывают её четыре набора выше.

Критерий готовности

  • npm --prefix src/HSchool.Client test гоняет экраны и проходит
  • CI не удлинился настолько, чтобы это раздражало
  • Сломать t(...) в одном из экранов — тест краснеет

Стоп

Не тащить фреймворк ради тестов. Не проверять вёрстку и стили — только поведение.