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