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

4.0 KiB
Raw Blame History

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"].
  • 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).