Перейти к содержимому
Clinford Jordano Valencia
Все проекты
Платформа

Saga — инструмент подстановки состояния для тестов

Серверная подстановка состояния позволяет QA и автотестам сразу перейти к любому шагу длинного процесса проверки: подготовка регрессионных тестов сократилась с 20 минут до менее чем 1.

Роль
Senior Frontend Engineer
Период
2025–настоящее время
Стек
TypeScript · Playwright · BFF · Test database

Проблема

Чтобы проверить ошибку на шаге 5 процесса KYC, сначала нужно было ввести корректные личные данные, загрузить документы и пройти проверки liveness на шагах с 1 по 4. Каждый раз — для каждого pull request и каждого автоматического прогона.

Подход

Saga позволяет тестировщику или скрипту открыть приложение сразу в нужном состоянии.

  1. Скрипт Playwright или QA-инженер открывает страницу с безопасным тестовым токеном, например ?state=step_4_ready.
  2. Фронтенд обнаруживает токен при гидратации и передаёт его в заголовке в BFF.
  3. BFF строго проверяет, что окружение не продакшен, и готовит сессию пользователя в тестовой базе: шаги с 1 по 3 завершены, активный указатель стоит на шаге 4.
  4. BFF возвращает настоящий токен сессии, и интерфейс сразу показывает шаг 4.

Выбор пал на подстановку на сервере, а не на подмену localStorage в клиенте. Современные приложения проверяют сессии на бэкенде, поэтому клиентская подмена расходится с реальностью и даёт тесты, которые проходят здесь и падают в продакшене.

Результат

Подготовка регрессионных тестов сократилась с 10–20 минут на цикл до менее чем минуты. С десятками прогонов pull request и наборов автотестов в неделю это вернуло сотни инженерных часов за квартал.