# Реестр приёмочных сценариев (Acceptance Tests) Krona Control Center Все приёмочные сценарии автоматизированы в Playwright E2E сьюте (`e2e/11-control-center.spec.ts`) и покрывают как функциональные требования, так и устойчивость интерфейса. --- ### Сценарий 1: Поиск организации и открытие 360° Инспектора - **Предусловия**: Оператор находится на странице `/control/organizations`. - **Шаги**: 1. Ввести в поле поиска `"Северная"`. 2. Убедиться, что в таблице отображается только «Северная Ритейл Группа». 3. Нажать кнопку `"360° Карточка"`. - **Ожидаемый результат**: - Открывается боковой Drawer инспектора с карточкой организации, ИНН, датой регистрации. - Доступны вкладки «Обзор», «Модули», «Инсталляции», «Биллинг». - Переключение на вкладку «Модули» отображает установленные версии модулей и их статус. --- ### Сценарий 2: Подтверждение опасного действия с обязательным обоснованием - **Предусловия**: Открыт 360° инспектор организации. - **Шаги**: 1. Нажать кнопку `"Выдать Trial +14 дней"`. 2. Проверить появление модального диалога `ConfirmOperatorAction`. 3. Проверить, что кнопка подтверждения отключена при пустом поле обоснования. 4. Ввести обоснование `"Запрос от аккаунт-директора на пилотное тестирование филиала"`. 5. Нажать `"Подтвердить операцию"`. - **Ожидаемый результат**: - Диалог закрывается, дата окончания trial продлевается на 14 дней. - В журнал аудита добавляется запись с SHA-256 хешем и введенным обоснованием. --- ### Сценарий 3: Фильтрация подписок, истекающих в течение 7 дней - **Предусловия**: Оператор открывает раздел `/control/billing`. - **Шаги**: 1. Активировать быстрый фильтр `"Истекают в течение 7 дней"`. - **Ожидаемый результат**: - Таблица фильтруется, остаётся только «ТехноПарк Восток» (срок окончания подписки через 2 дня). - Отображается сумма регулярного платежа в рублях через `MoneyDisplay`. --- ### Сценарий 4: Мониторинг терминалов и выявление устаревших Android-касс - **Предусловия**: Переход в `/control/installations`. - **Шаги**: 1. Нажать на быстрый фильтр `"Устаревшие версии"`. 2. Проверить строки с бейджем `"Устарело"` (POS-терминал кассы №4, Android 11, клиент v1.8.4). 3. Нажать действие `"Отозвать токен"`. - **Ожидаемый результат**: - Открывается окно подтверждения с фиксацией отзыва токена устройства. --- ### Сценарий 5: Мониторинг узлов кластера и сбой Server Monitor (Circuit Breaker) - **Предусловия**: Переход в `/control/infrastructure`. - **Шаги**: 1. Проверить список нод: `node-krona-prod-01`, `node-krona-prod-02`, `node-krona-prod-03`. 2. В шапке нажать кнопку симуляции `"Simulate SM Outage"`. - **Ожидаемый результат**: - Вверху экрана появляется предупреждающий баннер `Server Monitor Unreachable (Fallback to Local Cache)`. - Все экраны сохраняют интерактивность и читают данные из последнего валидного снимка IndexedDB. --- ### Сценарий 6: Создание инцидента из критического алерта - **Предусловия**: Переход в `/control/incidents`. - **Шаги**: 1. В списке обнаруженных аномалий выбрать `"Деградация p99 latency в кластере баз данных"`. 2. Нажать `"Создать инцидент P1"`. 3. Заполнить описание и назначить дежурного инженера. - **Ожидаемый результат**: - Инцидент регистрируется со статусом `Investigating` и уровнем `P1 Critical`. --- ### Сценарий 7: Публикация таргетированного системного оповещения - **Предусловия**: Переход в `/control/announcements`. - **Шаги**: 1. Заполнить форму объявления: заголовок `"Плановое ночное техобслуживание"`, уровень `Warning`. 2. Нажать кнопку `"Опубликовать"`. 3. В модальном окне ввести причину публикации. - **Ожидаемый результат**: - Оповещение появляется в списке активных трансляций. --- ### Сценарий 8: Управление Rollout-конвейером (Пауза / Возобновление) - **Предусловия**: Переход в `/control/modules`. - **Шаги**: 1. Выбрать модуль с активной раскаткой («Омниканальные коммуникации», фаза Pilot). 2. Нажать `"Поставить на паузу"`. 3. Ввести причину в модальном диалоге. - **Ожидаемый результат**: - Статус раскатки переходит в `"На паузе"`, конвейер замораживается. --- ### Сценарий 9: Смена роли оператора и проверка соблюдения RBAC - **Предусловия**: Открыт любой раздел Control Center. - **Шаги**: 1. В переключателе сессии в шапке выбрать роль `"Аудитор безопасности"`. 2. Перейти в раздел `/control/modules`. - **Ожидаемый результат**: - Кнопки запуска и остановки раскатки становятся неактивными (`disabled`) для аудитора. - Повторное переключение на `"Владелец платформы"` восстанавливает полный доступ. --- ### Сценарий 10: Сохранение состояния при перезагрузке страницы (IndexedDB) - **Предусловия**: В журнал аудита добавлены записи операторских действий. - **Шаги**: 1. Зафиксировать количество строк в журнале `/control/audit`. 2. Выполнить полную перезагрузку страницы в браузере (`F5` / `page.reload()`). - **Ожидаемый результат**: - Интерфейс восстанавливает данные из локальной базы IndexedDB. - Количество строк журнала аудита и SHA-256 хеши сохраняются неизменными.