Files
orchestrator/docs/work-items/ORCH-080/03-acceptance-criteria.md

60 lines
4.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.
# 03-Acceptance Criteria — ORCH-080
Work Item ID: ORCH-080
Каждый критерий имеет явное условие PASS/FAIL.
## AC-1 — `disable_web_page_preview` в payload `sendMessage`
- **PASS:** JSON-payload вызова `httpx.post(.../sendMessage)` в `send_telegram()` содержит
ключ `"disable_web_page_preview"` со значением `True`.
- **FAIL:** ключ отсутствует или `False`.
- **Проверка:** unit-тест (мок `httpx`) инспектирует `httpx.post.call_args.kwargs["json"]`.
## AC-2 — `disable_web_page_preview` в payload `editMessageText`
- **PASS:** JSON-payload вызова `httpx.post(.../editMessageText)` в `edit_telegram()` содержит
ключ `"disable_web_page_preview"` со значением `True`.
- **FAIL:** ключ отсутствует или `False`.
- **Проверка:** unit-тест (мок `httpx`) инспектирует `httpx.post.call_args.kwargs["json"]`.
## AC-3 — баннер link-preview Plane исчез в карточке трекера
- **PASS:** в реальном чате Telegram карточка трекера задачи (режимы `bump` и `edit`)
больше не показывает баннер «Plane — Modern project management».
- **FAIL:** баннер всё ещё разворачивается.
- **Проверка:** ручная верификация на staging (8501) после деплоя — наблюдение карточки в
Telegram. Автоматически косвенно покрыто AC-1/AC-2 (payload содержит флаг).
## AC-4 — ссылка на задачу остаётся кликабельной
- **PASS:** в карточке/уведомлениях номер задачи `ORCH-NNN` остаётся кликабельной ссылкой
`<a href=...>` на issue в Plane; `parse_mode: "HTML"` сохранён в обоих payload.
- **FAIL:** `parse_mode` изменён/удалён, либо ссылка перестала рендериться как `<a href>`.
- **Проверка:** unit-тест проверяет, что `"parse_mode": "HTML"` присутствует в обоих payload;
существующие тесты ссылок (`test_notify_issue_links.py`) остаются зелёными.
## AC-5 — сохранены существующие поля payload
- **PASS:** `send_telegram` payload по-прежнему содержит `chat_id`, `text`, `parse_mode`,
`disable_notification`; `edit_telegram` payload — `chat_id`, `message_id`, `text`,
`parse_mode`. Возвращаемые значения функций не изменились
(`send_telegram → message_id|None`, `edit_telegram → EDIT_*`).
- **FAIL:** любое из перечисленных полей удалено/переименовано, либо изменился контракт
возврата.
- **Проверка:** unit-тесты payload + существующие тесты трекера/классификации исходов.
## AC-6 — never-raise сохранён, pytest зелёный
- **PASS:** при сетевой/HTTP-ошибке `send_telegram`/`edit_telegram` не бросают исключение
(возврат `None`/`EDIT_FAILED`); вся сюита `pytest tests/ -q` зелёная.
- **FAIL:** любое исключение наружу или красный pytest.
- **Проверка:** существующие тесты never-raise (`test_resilience.py`,
`test_telegram_tracker.py`) + полный прогон.
## AC-7 — документация обновлена в том же PR
- **PASS:** `CHANGELOG.md` содержит запись об ORCH-080; при необходимости — короткая ремарка
в `CLAUDE.md`/`docs/architecture/README.md` о подавлении link-preview.
- **FAIL:** функционал изменён, документация не обновлена (Reviewer → REQUEST_CHANGES).