161 lines
6.2 KiB
YAML
161 lines
6.2 KiB
YAML
work_item: ORCH-042
|
||
description: >
|
||
Режим bump live-трекера (delete+send+repoint, тихо, fallback, never-raises),
|
||
сохранение режима edit без регрессий, и текстовые правки карточки
|
||
(Подтверждение BRD, ✅ после approve, русские метки стадий, «Внедрено»).
|
||
Сеть не трогаем: httpx / низкоуровневые helpers мокаются; изолированная temp-БД.
|
||
|
||
tests:
|
||
# --- config ---
|
||
- id: TC-01
|
||
type: unit
|
||
description: "Settings.tracker_mode по умолчанию 'edit' и читается из ORCH_TRACKER_MODE (AC-1)"
|
||
module: tests/test_config.py
|
||
expected: PASS
|
||
|
||
- id: TC-02
|
||
type: unit
|
||
description: "Неизвестное/пустое значение режима -> update_task_tracker идёт по edit-ветке, без исключений (AC-2)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
# --- edit mode regression ---
|
||
- id: TC-03
|
||
type: unit
|
||
description: "edit: первый вызов -> sendMessage тихо, id сохранён, editMessageText не вызван (AC-3)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-04
|
||
type: unit
|
||
description: "edit: повторный вызов -> editMessageText на сохранённый id, нового send нет (AC-4)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-05
|
||
type: unit
|
||
description: "edit: EDIT_GONE -> отправка нового, id обновлён (AC-5)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-06
|
||
type: unit
|
||
description: "edit: EDIT_NOT_MODIFIED и EDIT_FAILED -> нового сообщения нет, id не меняется (AC-6)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
# --- bump mode ---
|
||
- id: TC-07
|
||
type: unit
|
||
description: "bump: первый вызов (нет id) -> delete не вызван, send тихий, id сохранён (AC-7, AC-9)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-08
|
||
type: unit
|
||
description: "bump: повторный вызов -> delete(старый) затем send(тихо), id перенаправлен на новый, порядок delete->send (AC-8, AC-9, AC-10)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-09
|
||
type: unit
|
||
description: "bump fallback: delete_telegram->False -> новое всё равно отправлено, id обновлён, без исключений (AC-11)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-10
|
||
type: unit
|
||
description: "bump: send вернул None (транзиент) -> id не затёрт на None, ровно одна попытка send, без исключений (AC-13)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-11
|
||
type: unit
|
||
description: "bump: одна карточка за вызов -> send_telegram вызван <=1 раза (AC-10)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
# --- delete_telegram classification ---
|
||
- id: TC-12
|
||
type: unit
|
||
description: "delete_telegram: ok:true -> True (httpx замокан)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-13
|
||
type: unit
|
||
description: "delete_telegram: ok:false 'message to delete not found' / 'message can't be deleted' / 'message_id_invalid' -> True (AC-12)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-14
|
||
type: unit
|
||
description: "delete_telegram: неизвестный ok:false / 5xx -> False (AC-12)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-15
|
||
type: unit
|
||
description: "delete_telegram: исключение (таймаут/сеть) -> False, never raises (AC-12, AC-14)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
- id: TC-16
|
||
type: unit
|
||
description: "delete_telegram: нет токена/chat_id -> False, HTTP не вызывается (AC-12)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
# --- never raises ---
|
||
- id: TC-17
|
||
type: unit
|
||
description: "update_task_tracker никогда не бросает (DB/сеть сбой) в обоих режимах (AC-14)"
|
||
module: tests/test_tracker_bump.py
|
||
expected: PASS
|
||
|
||
# --- text changes ---
|
||
- id: TC-18
|
||
type: unit
|
||
description: "render: метка 'Подтверждение BRD' присутствует, 'Ревью БРД' отсутствует (AC-15)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-19
|
||
type: unit
|
||
description: "render: approve-gate пройден (brd_review_ended_at задан) -> строка BRD с ✅, не ⏸️ (AC-16)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-20
|
||
type: unit
|
||
description: "render: ожидание человека (brd_review_ended_at пуст) -> индикатор ожидания/⏳, не ✅ (AC-16)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-21
|
||
type: unit
|
||
description: "render: русские метки стадий (Анализ/Архитектура/Разработка/Код ревью/Тестирование/Внедрение), английских нет — в ✅- и 🔄-строках (AC-17)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
- id: TC-22
|
||
type: unit
|
||
description: "render done: итоговая строка содержит '📦 Внедрено', не 'deployed' (AC-18)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
# --- separate alerts regression ---
|
||
- id: TC-23
|
||
type: unit
|
||
description: "Состав отдельных пингов не изменён: approve-gate/error шлют 1 нетихий пинг; stage_change/agent_started/qg_failure не шлют (AC-19)"
|
||
module: tests/test_telegram_tracker.py
|
||
expected: PASS
|
||
|
||
# --- full suite ---
|
||
- id: TC-24
|
||
type: integration
|
||
description: "Вся pytest-сюита зелёная; обновлённые ассерты под русские метки проходят (AC-20)"
|
||
module: tests/
|
||
expected: PASS
|
||
</content>
|