Saga — инструмент подстановки состояния для тестов
Серверная подстановка состояния позволяет QA и автотестам сразу перейти к любому шагу длинного процесса проверки: подготовка регрессионных тестов сократилась с 20 минут до менее чем 1.
- Роль
- Senior Frontend Engineer
- Период
- 2025–настоящее время
- Стек
- TypeScript · Playwright · BFF · Test database
Проблема
Чтобы проверить ошибку на шаге 5 процесса KYC, сначала нужно было ввести корректные личные данные, загрузить документы и пройти проверки liveness на шагах с 1 по 4. Каждый раз — для каждого pull request и каждого автоматического прогона.
Подход
Saga позволяет тестировщику или скрипту открыть приложение сразу в нужном состоянии.
- Скрипт Playwright или QA-инженер открывает страницу с безопасным тестовым токеном, например
?state=step_4_ready. - Фронтенд обнаруживает токен при гидратации и передаёт его в заголовке в BFF.
- BFF строго проверяет, что окружение не продакшен, и готовит сессию пользователя в тестовой базе: шаги с 1 по 3 завершены, активный указатель стоит на шаге 4.
- BFF возвращает настоящий токен сессии, и интерфейс сразу показывает шаг 4.
Выбор пал на подстановку на сервере, а не на подмену localStorage в клиенте. Современные приложения проверяют сессии на бэкенде, поэтому клиентская подмена расходится с реальностью и даёт тесты, которые проходят здесь и падают в продакшене.
Результат
Подготовка регрессионных тестов сократилась с 10–20 минут на цикл до менее чем минуты. С десятками прогонов pull request и наборов автотестов в неделю это вернуло сотни инженерных часов за квартал.