69 lines
4.4 KiB
Markdown
69 lines
4.4 KiB
Markdown
# Критерии приёмки — ORCH-047
|
||
|
||
Каждый критерий имеет однозначное условие PASS/FAIL.
|
||
|
||
## AC-01 — `result: PASS` проходит гейт (главный кейс ORCH-17)
|
||
- **Дано:** `13-test-report.md` с frontmatter, содержащим только `result: PASS` (без `verdict:`/`status:`).
|
||
- **Ожидается:** `check_tests_passed(...)` → `(True, ...)`, в reason присутствует «PASS».
|
||
- **PASS:** возвращается True. **FAIL:** возвращается False.
|
||
|
||
## AC-02 — `result: FAIL` откатывает задачу
|
||
- **Дано:** frontmatter с `result: FAIL` (без `verdict:`/`status:`).
|
||
- **Ожидается:** `(False, ...)`, reason содержит токен отрицания (`FAIL`).
|
||
- **PASS:** False. **FAIL:** True.
|
||
|
||
## AC-03 — Negative авторитетен поверх positive (в т.ч. между полями)
|
||
- **Дано:** `result: PASS`, но `verdict: BLOCKED` (или `status: failed`).
|
||
- **Ожидается:** `(False, ...)`, reason упоминает negative-токен (`BLOCKED`/`FAILED`).
|
||
- **PASS:** False. **FAIL:** True.
|
||
|
||
## AC-04 — Positive в любом из трёх полей даёт PASS
|
||
- **Дано (каждый подкейс отдельно):**
|
||
- только `verdict: PASS`;
|
||
- только `status: PASSED`;
|
||
- только `result: ready-to-deploy`.
|
||
- **Ожидается:** все три → `(True, ...)`.
|
||
- **PASS:** все True. **FAIL:** хоть один False.
|
||
|
||
## AC-05 — Обратная совместимость (enduro-trails / ORCH-016)
|
||
- **Дано:** существующие реальные формы из `TestCheckTestsPassed`:
|
||
- `verdict: PASS` + `status: pass`;
|
||
- `verdict: PASS — ready-to-deploy`;
|
||
- `verdict: ready-to-deploy` + `status: PASSED`;
|
||
- `verdict: stage:ready-to-deploy` + `status: pass`;
|
||
- `verdict: BLOCKED` + проза «23 passed».
|
||
- **Ожидается:** результаты идентичны прежним (PASS-кейсы → True, BLOCKED → False). Старые тесты `TestCheckTestsPassed` зелёные.
|
||
- **PASS:** поведение не изменилось. **FAIL:** любой регресс.
|
||
|
||
## AC-06 — Ни одно из трёх полей не задано → FAIL
|
||
- **Дано:** frontmatter без `result`/`verdict`/`status` (например, только `type:`/`version:`); тело может содержать «Result: PASS» прозой.
|
||
- **Ожидается:** `(False, ...)`, причина про отсутствие машиночитаемого вердикта.
|
||
- **PASS:** False. **FAIL:** True.
|
||
|
||
## AC-07 — Только проза, без frontmatter → FAIL
|
||
- **Дано:** отчёт без YAML-frontmatter, в теле «Result: PASS / All tests passed».
|
||
- **Ожидается:** `(False, ...)`, причина про отсутствие frontmatter. Прозу не читаем.
|
||
- **PASS:** False. **FAIL:** True.
|
||
|
||
## AC-08 — Битый YAML → FAIL без исключения
|
||
- **Дано:** некорректный YAML во frontmatter.
|
||
- **Ожидается:** `(False, ...)` c упоминанием YAML/frontmatter, функция НЕ бросает исключение.
|
||
- **PASS:** False и нет raise. **FAIL:** raise или True.
|
||
|
||
## AC-09 — Отчёт отсутствует → FAIL
|
||
- **Дано:** файла `13-test-report.md` нет.
|
||
- **Ожидается:** `(False, "...not found...")`.
|
||
- **PASS:** False. **FAIL:** True.
|
||
|
||
## AC-10 — Реестр гейтов неизменен
|
||
- **Ожидается:** `QG_CHECKS` содержит ровно те же ключи, что и до изменения; `tests/test_qg_registry_snapshot.py` зелёный.
|
||
- **PASS:** снапшот совпал. **FAIL:** снапшот изменился.
|
||
|
||
## AC-11 — Документация и ADR обновлены (правило 2/6 CLAUDE.md)
|
||
- **Ожидается:** заведён `docs/work-items/ORCH-047/06-adr/ADR-001-*.md`; обновлены `docs/architecture/README.md` (вердикт-парсер testing-гейта) и `CHANGELOG.md`.
|
||
- **PASS:** все три присутствуют и описывают изменение. **FAIL:** что-либо отсутствует → REQUEST_CHANGES на review.
|
||
|
||
## AC-12 — Полный регресс зелёный
|
||
- **Ожидается:** `pytest tests/ -q` — все тесты PASS.
|
||
- **PASS:** exit code 0. **FAIL:** любой упавший тест.
|