Files
CursorAi/.cursor/rules/agent-test-gates-mandatory.mdc
2026-05-11 22:20:28 +08:00

49 lines
3.4 KiB
Plaintext

---
description: Mandatory testing gates for all code repos (same rigor)
alwaysApply: true
---
# Обязательные тестовые гейты
## Политика **вариант A** (репозитории без полного CI как у плеера)
Для **`project-converter`** и **`DndGamePlayerLicenseServer`**: любое изменение поведения сопровождается в **том же PR** скриптом **`npm test`** (если его ещё не было) и автотестами; merge без этого **запрещён** правилами (исключение — только явное согласование при объективной блокировке). См. **`project.mdc`**.
## 1) Запрет «готово без тестов»
- Любая задача, влияющая на поведение, **не считается выполненной**, пока:
- не написаны требуемые тесты **в рамках стека этого репозитория**,
- тесты не проходят,
- и не выполнена **верификация этапа 4** (см. `agent-3-ui-tester.mdc`, `agents-pipeline-order.mdc`): UI (Electron/браузер) или HTTP-сценарии для сервера.
## 2) Какие виды тестов обязательны
Подбирать по риску. Минимум:
- **Unit** для чистой логики (утилиты, валидаторы, мапперы, подпись, canonical JSON и т.д.).
- **Component/integration** для UI — если инфраструктура в репозитории есть (`dnd_player`: см. `npm run test`).
- **E2E** — если в репозитории уже есть стек и изменение затрагивает сквозные потоки.
- **A11y smoke** — если инструменты есть в репо.
Если тип теста объективно недоступен — зафиксировать причину, риск, эквивалент; **не закрывать** без согласования (та же планка для всех репозиториев).
## 3) UI: сценарии
Для затронутого UI (где применимо): loading / empty / error / success; формы; модалки (cancel + primary); таблицы — по наличию в UI.
## 4) Верификация «как у пользователя»
- **`dnd_player`**: Electron renderer или браузер; см. также `npm run dev` / сценарии задачи.
- **`project-converter`**: окно Electron, выбор файла, конвертация.
- **`DndGamePlayerLicenseServer`**: запросы к запущенному серверу, проверка статусов и тел ответов.
## 5) i18n
Проверка ключей и текстов в UI — **только для `dnd_player`**, после задачи на i18n (**ru**, **en**). До неё — согласованность литералов и UX.
## 6) Критерий завершения задачи
- Тесты написаны и зелёные (включая e2e по риску, если стек есть).
- Верификация этапа 4 выполнена (UI или API).
- В ответе — краткий test plan и результат.