krona-front/docs/handoff/control-center/ACCEPTANCE-TESTS.md

8 KiB
Raw Blame History

Реестр приёмочных сценариев (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 хеши сохраняются неизменными.