Синхронный сценарий роли

Клиент

Сценарий админа Все сценарии
Всего контрольных точек0
Выполнено0
Осталось0
Готовность0%

Правило синхронизации

Клиентский runbook идёт в паре с админом

Ресурсы

Что нужно клиенту под рукой

Сайт Standora

Основная клиентская точка входа для регистрации, логина и всех дальнейших шагов сценария.

Открыть Standora

Тестовая карта

  • 4242 4242 4242 4242
  • Любая будущая дата, любой CVC и ZIP, если sandbox это допускает.

Фаза 1. Вход клиента, регистрация и восстановление доступа

Клиент начинает прогон с публичного контура и auth flows. Здесь закрываются happy path регистрации, ошибки формы и password reset.

CRITICAL

Действия клиента

  1. Открыть публичную входную точку, проверить auth route, legal pages и намеренно открыть несуществующий URL для проверки 404.
  2. Зарегистрировать Client A на новом email с валидными данными и войти в кабинет.
  3. Выйти из аккаунта.
  4. Выйти и прогнать password reset для Client A.
  5. Попробовать войти со старым паролем.
  6. Войти в аккаунт новым паролем и передать админу точный email клиента.

Подсценарий 1A. Ошибки регистрации

  1. Попробовать пустую форму.
  2. Попробовать невалидный email.
  3. Попробовать слабый или несовпадающий пароль.
  4. Попробовать зарегистрировать уже существующий email.

Ожидание: ошибки понятные, частично созданный аккаунт не появляется, форма остаётся управляемой.

Фаза 2. Создание Request A/B/C и фиксация базовых данных

Клиент создаёт три сущности: happy path, change/cancellation path и контрольный параллельный объект.

CRITICAL

Действия клиента

  1. Создать Request A с валидными полями.
  2. Создать Request B с отличающимися параметрами, чтобы админ мог легко отличить его от Request A.
  3. Создать Request C с отличающимися параметрами, чтобы админ мог легко отличить его от Request A и B.
  4. После создания не редактировать request-ы, пока админ не подтвердит intake или пока следующая фаза явно не потребует изменений.

Пока ждёшь админа

  • Обновить список заявок и убедиться, что Request A, B и C не исчезают после reload.
  • Открыть каждую карточку заново из списка и проверить, что статусы и поля не перемешаны.

Подсценарий 2A. Валидации request-формы

  1. Попробовать submit без обязательной даты или другого ключевого поля.
  2. Ввести очень длинный notes/comment и убедиться, что текст не теряется.
  3. Проверить, что после ошибки уже заполненные поля не обнуляются без причины.

Ожидание: request не создаётся с неполными данными, а форма даёт понятную обратную связь.

Подсценарий 2B. Double submit и reload

  1. После одного успешного submit обновить страницу или вернуться назад браузером.
  2. Проверить, не создаётся ли дубль случайным повторным действием.

Ожидание: система не плодит дубликаты из-за refresh, back или повторного клика.

Фаза 3. Сообщения, уточнения и request changes

Клиент и админ запускают живой переговорный цикл. Здесь важны сообщения, порядок переписки, изменения условий и устойчивость таймлайна после reload.

HIGH

Действия клиента

  1. На Request A дождаться первого сообщения от админа и отправить осмысленный ответ клиентом.
  2. На Request B отправить request changes: изменить один реальный параметр, например дату, бюджет, комментарий или другой доступный ключевой атрибут.
  3. После каждого сообщения обновить страницу и заново открыть карточку, чтобы проверить повторное чтение таймлайна.
  4. Сравнить, что история Request A не попала в Request B и наоборот.
  5. Если есть email или in-app уведомления, проверить их.

Пока ждёшь админа

  • Проверять timestamps сообщений и их порядок до и после reload.
  • Держать Request C без изменений, чтобы позже убедиться, что его состояние не затронулось соседними действиями.

Подсценарий 3A. Пустые и длинные сообщения

  1. Проверить, можно ли отправить пустое сообщение или пустой change request.
  2. Отправить длинный текст и убедиться, что он не обрезается некорректно.

Ожидание: невалидные действия блокируются, длинные сообщения сохраняются без поломки layout.

Подсценарий 3B. Reload после ответа админа

  1. Сразу после входящего ответа обновить страницу.
  2. Проверить, что последнее сообщение и текущий статус перечитались корректно.

Ожидание: история не откатывается и не требует ручного восстановления через повторную отправку.

Подсценарий 3C. Изоляция между Request A/B/C

  1. Открыть по очереди Request A, B и C после серии сообщений.
  2. Убедиться, что статусы и треды не смешиваются между карточками.

Ожидание: каждая заявка живёт своей отдельной жизнью, а клиент легко понимает, что происходит где.

Фаза 4. Proposal / booking loop и approve-развилки

Главная развилка прогона. Клиент должен пройти revision loop по Booking A и чистый approve без изменений по Booking B.

CRITICAL

Действия клиента

  1. Открыть первую версию Booking A и намеренно не approve-ить её сразу: использовать client-side request changes один раз.
  2. После того как админ пришлёт revised proposal по A, заново открыть карточку из списка и только затем нажать approve.
  3. Открыть Booking B и одобрить его сразу, без дополнительных правок.
  4. Проверить, что оба booking-а читаются отдельно и не меняют статусы друг друга.
  5. Не оплачивать booking-и до тех пор, пока админ не подтвердит, что видит финальные approve states у себя.

Пока ждёшь админа

  • Переоткрывать список booking-ов и requests, чтобы проверить, что A и B не исчезают после approve/change loop.
  • Держать Request C как контрольный объект и не переводить его дальше без синхронизации с админом.
  • Фиксировать промежуточные статусы: waiting, changes requested, approved или аналогичные им значения.

Подсценарий 4C. Повторное открытие и idempotency

  1. После approve вернуться в список и снова открыть A и B.
  2. Проверить, что повторный клик не создаёт второй approve или вторую сущность.

Ожидание: статусы стабильны, а клиент не может случайно удвоить подтверждение.

Фаза 5. Оплата, документы и возврат из платёжного потока

Клиент должен пройти и позитивную, и негативную платёжную ветку. После этого нужно проверить документы, reload и возврат в кабинет без дублей.

CRITICAL

Действия клиента

  1. Оплатить Booking A успешным sandbox-путём и зафиксировать момент submit и момент возврата в кабинет.
  2. Для Booking B сначала пройти одну контролируемую неуспешную попытку оплаты и убедиться, что booking не помечен как paid ошибочно.
  3. Повторить оплату Booking B успешным тестовым способом и зафиксировать итоговый статус.
  4. Открыть invoice, contract, summary, receipt или другие доступные документы на A и B до и после reload.
  5. Вернуться в список booking-ов и убедиться, что возврат из платёжного потока не создал дублей.

Пока ждёшь админа

  • Обновлять экран до тех пор, пока webhook или другой платёжный sync не доведёт статусы до ожидаемого состояния.
  • Проверить поведение кнопок back/forward браузера после выхода из платёжного окна.

Фаза 6. Cancellation branch и итоговый client-side статус

После платёжной фазы клиент инициирует cancellation request по Booking B и проверяет, как отмена отражается во всём клиентском интерфейсе.

CRITICAL

Действия клиента

  1. На уже оплаченном Booking B отправить cancellation request с причиной или комментарием, если форма это поддерживает.
  2. Проверить, как меняются карточка booking-а, история, документы и доступные действия после cancellation request.
  3. После ответа или обработки со стороны админа обновить Booking B и сравнить итоговый статус в списке и в карточке.
  4. Проверить, что Booking A не затронут cancellation-логикой B.

Пока ждёшь админа

  • Обновлять Booking B и общий список booking-ов, чтобы проверить сохранность derived status после reload.
  • Сравнивать, одинаково ли cancellation-related состояние видно в списке, карточке и документах, если они ещё доступны.
  • Не инициировать повторную отмену, если первый запрос уже отправлен и ожидает обработки.

Подсценарий 6A. Duplicate protection

  1. После отправки cancellation request попробовать нажать то же действие ещё раз, если интерфейс всё ещё это позволяет.
  2. Проверить, что система не создаёт второй запрос на отмену.

Ожидание: отмена не дублируется повторными кликами и не плодит лишние записи в истории.

Подсценарий 6B. Reload persistence

  1. После cancellation request обновить страницу.
  2. Снова открыть booking из списка и сравнить статус с тем, что был до reload.

Ожидание: derived status не исчезает и не откатывается до старого состояния.

Фаза 7. Emails, профиль и удаление аккаунта

Финальная фаза закрывает email-уведомления, смену email, смену пароля и удаление аккаунта со стороны клиента.

HIGH

Действия клиента

  1. Открыть все доступные email-уведомления, которые пришли по ходу прогона: регистрация, password reset, новые сообщения, proposal/booking, payment, cancellation. Проверить отправителя, тему, язык и ссылки.
  2. В профиле или настройках сменить email у Client A на новый тестовый адрес и пройти подтверждение, если продукт его требует.
  3. Выйти и попробовать войти по старому email, затем войти по новому email.
  4. Сменить пароль в профиле или security settings и убедиться, что старый пароль отклоняется, а новый работает.
  5. Если self-service удаление аккаунта доступно, удалить тестовый аккаунт в самом конце прогона. Если удаление доступно только через админа, дождаться удаления и затем проверить эффект со стороны клиента.

Пока ждёшь админа

  • Обновлять профиль и security screens, чтобы убедиться, что новый email и новый пароль переживают reload.
  • После удаления аккаунта попробовать открыть прямой URL приватного раздела и снова войти в удалённый аккаунт.

Подсценарий 7A. Email-уведомления

  1. Проверить письма на регистрацию, reset, booking/payment/cancellation, если они реально отправлялись в этой сборке.
  2. Открыть ссылки из писем и убедиться, что они ведут в правильное окружение и не ломаются после использования.

Ожидание: письма приходят из ожидаемого домена, не теряют контекст и не ведут на битые или чужие URL.

Подсценарий 7B. Смена email и пароля

  1. Проверить, что старый email и старый пароль больше не дают доступ.
  2. Проверить, что новый email и новый пароль работают после logout/login и после reload.

Ожидание: ротация данных аккаунта не создаёт параллельных валидных идентификаторов входа.

Подсценарий 7C. Удаление аккаунта

  1. Подтвердить удаление тестового аккаунта через UI клиента или через действие админа.
  2. Проверить, что сессия завершается, логин больше не работает, а приватные маршруты перестают быть доступными.

Ожидание: удаление аккаунта требует явного подтверждения и действительно закрывает доступ в систему.