Сценарий: Chain Admin → POS → KDS
Сквозная цепочка: каталог/настройки во франш-админке → меню и оформление заказа на POS → отображение и прогон статусов на KDS . Используется как regression-сценарий после любого изменения в Catalog/Order Service, POS или KDS.
Полная версия со всеми steps: archive/chain-admin-pos-kds-original.md
Этот файл: progress-tracker + ссылки на zones по этапам.
Прогресс
Прогнано: 21 / 60. Последний прогон: 2026-05-05-e2e
Этап 1 — Admin → POS пропагация (zones/catalog/*)
TC Описание Status Findings Zone TC-CHAIN-001 Создание товара ✅ pass — products TC-CHAIN-002 PATCH name (rename) ✅ pass — products TC-CHAIN-003 PATCH base_price ❌ fail F6a products TC-CHAIN-004 DELETE soft-delete ❌ fail F9 products TC-CHAIN-005 Restore soft-deleted ⛔ skipped (зависит от F9) products TC-CHAIN-006 Toggle available_in_all_stores ❌ fail F8 products TC-CHAIN-007 is_admin_only ⏳ admin part pass — products TC-CHAIN-008 is_open_price ⏳ admin part pass — products TC-CHAIN-009 is_by_weight ⏳ admin part pass — products TC-CHAIN-010 is_alcohol / is_tobacco ⏳ admin part pass F35 (mutex) products TC-CHAIN-011 Деактивировать категорию ⚠ inconclusive F10 (GET cat 404) categories TC-CHAIN-012 Изменить порядок категорий ◯ todo — categories TC-CHAIN-013 Привязка модификатора ✅ pass F41 (PATCH product не работает) modifiers TC-CHAIN-014 min/max enforce на POS ✅ pass (UI) F30, F31, F32, F33, F34 (backend), F42 (UX) modifiers TC-CHAIN-015 Удалить группу — позиция остаётся ◯ todo F45 (orphan) modifiers TC-CHAIN-016 Изменить цену опции ✅ pass F44 (POST mod groups не пишет) modifiers TC-CHAIN-017 Прейскурант с override ⛔ blocked BUG-051, F1 price-lists TC-CHAIN-018 Изменение цены → новые заказы ✅ pass — price-lists TC-CHAIN-019 Цена 0 ◯ todo — price-lists TC-CHAIN-020 Стоп товара ✅ pass — stop-lists TC-CHAIN-021 Снятие со стопа ✅ pass — stop-lists TC-CHAIN-022 Стоп категории ⚠ backend pass, UI blocked F40 F39 stop-lists TC-CHAIN-023 Снятие категории со стопа ⚠ backend pass — stop-lists TC-CHAIN-024 KDS settings update ✅ pass F40 (menu-availability inverted) menu-availability
Этап 2 — POS → KDS маршрутизация (zones/kds/, zones/pos/ )
TC Описание Status Findings Zone TC-CHAIN-030 1 кухонный товар → KDS-Кухня ✅ pass — routing TC-CHAIN-031 Только не-кухонные → не на KDS ✅ pass — routing TC-CHAIN-032 Микс кухня+бар ⛔ blocked F2, F3, F40 routing TC-CHAIN-033 Микс кухня+не-кухонный ✅ pass (UX «поз. на других станциях») — routing TC-CHAIN-034 Модификаторы на KDS ✅ pass — routing TC-CHAIN-035 Комментарий к позиции на KDS ◯ todo — routing TC-CHAIN-036 Стол/номер заказа на KDS ◯ todo — routing TC-CHAIN-037 qty > 1 на KDS ◯ todo — routing TC-CHAIN-038 Race на 2 POS одновременно ⛔ blocked (нужен 2-й POS) — orders TC-CHAIN-039 Multi-tenancy ТТ-A vs ТТ-B ⏳ partial (через RBAC orders) — auth-rbac TC-CHAIN-040 Изменить kitchen_station_id после in_progress ◯ todo — routing TC-CHAIN-041 Удалить позицию в new — KDS обновляется ◯ todo — routing TC-CHAIN-042 Добавить позицию в new — KDS обновляется ◯ todo — routing TC-CHAIN-043 KDS оффлайн → reconnect → catch-up ◯ todo — routing TC-CHAIN-044 Refresh KDS — состояние восстанавливается ◯ todo — routing
Этап 3 — Status flow (zones/orders/lifecycle.md)
TC Описание Status Findings Zone TC-CHAIN-050 new → in_progress (на POS / KDS) ⚪ N/A by-design F19 (сразу accepted) lifecycle TC-CHAIN-051 in_progress → ready (KDS «Готово») ✅ pass — lifecycle TC-CHAIN-052 ready → closed (выдача + оплата) ⚠ backend pass F25, F26 lifecycle TC-CHAIN-053 Отмена в new ✅ backend (API) F27 (UI нет) lifecycle TC-CHAIN-054 Отмена в in_progress ◯ todo F27 lifecycle TC-CHAIN-055 Отмена closed → отказ ◯ todo — lifecycle TC-CHAIN-056 Add позицию в in_progress → отказ ◯ todo — lifecycle TC-CHAIN-057 KDS откат «Готово» ⚪ N/A by-design F20 lifecycle TC-CHAIN-058 Per-position статусы ✅ pass — lifecycle TC-CHAIN-059 Заказ остаётся accepted пока не все ready ✅ pass F29 lifecycle TC-CHAIN-060 Race: 2 KDS жмут «Готово» ◯ todo — lifecycle TC-CHAIN-061 Per-day numbering на полночь ◯ todo F24 (пропуски) lifecycle
Этап 4 — Денормализация (zones/orders/denormalization.md)
Этап 5 — RBAC (zones/auth-rbac/*)
TC Описание Status Findings Zone TC-CHAIN-080 Cashier ТТ-A POST orders ТТ-B ⏳ partial — access-matrix TC-CHAIN-081 Cashier ТТ-A GET orders ТТ-B ✅ pass — access-matrix TC-CHAIN-082 KDS-оператор ТТ-A видит только ТТ-A ◯ todo — access-matrix TC-CHAIN-083 Manager POST /complete ✅ pass — access-matrix TC-CHAIN-084 Manager mutation без permission → 403 ✅ pass — access-matrix TC-CHAIN-085 Cashier cancel чужого заказа ◯ todo — access-matrix TC-CHAIN-086 Franchisee cross-LE → 403 ⛔ blocked (нет creds Franchisee) — access-matrix TC-CHAIN-087 PIN без pos.access ◯ todo — access-matrix TC-CHAIN-088 Cashier admin login отказан ✅ pass by-design F12 access-matrix (extra) Курьер RBAC расширенный (read-leak) ❌ fail F13 (7 эндпоинтов) access-matrix
Этап 6 — Edge / exploratory
TC Описание Status Findings Zone TC-CHAIN-100 Пустой заказ → попытка оплаты ◯ todo — orders TC-CHAIN-101 50+ позиций ◯ todo — orders TC-CHAIN-102 Длинный комментарий ◯ todo — orders TC-CHAIN-103 Длинная строка без пробелов ◯ todo — orders TC-CHAIN-104 POS оффлайн → создание заказа ◯ todo — orders TC-CHAIN-105 Catalog Service down ◯ todo — orders TC-CHAIN-106 Order Service down ◯ todo — orders TC-CHAIN-107 Сменить kitchen_station_id во время in_progress ◯ todo — routing TC-CHAIN-108 Рестарт pos-bff (рестарт WS) ◯ todo — routing TC-CHAIN-109 KDS показывает заказ → soft-delete товара ◯ todo — routing TC-CHAIN-110 qty=0/отрицательное на штучном ◯ todo — orders TC-CHAIN-111 Цена опции NULL → выбор ⚠ см. F44 — modifiers TC-CHAIN-112 Часы POS уехали → создание ◯ todo — orders
Условные обозначения
✅ pass — кейс прошёл успешно
❌ fail — нашли баг (см. колонку Findings)
⚠ partial — частично прошёл / нашли что-то незавершённое
⛔ blocked — невозможно прогнать на текущем стенде (нужны вводные)
⏳ partial pass — прогнали частично (например только admin часть, POS-side не подтверждена)
◯ todo — не запускали ещё
⚪ N/A by-design — кейс неприменим в текущей архитектуре