Мокирование API-запросов в runtime
⚡️ ускоряем проверку специальных сценариев
Мы столкнулись с множеством ситуаций, когда разработчики меняют крошечные детали (например, текст), которые видны только определённым клиентам на специфичных аккаунтах. QA-команде приходилось тратить уйму времени, чтобы найти «особенного» пользователя и получить к нему доступ. Мы решили эту проблему, позволив подменять часть ответа бэкенда «на лету» — так нужное состояние интерфейса можно получить мгновенно.
🔑 Ключевая идея
Единый «коннектор»
Все запросы к API проходят через один модуль (например, обёртку для axios). В нём мы проверяем, есть ли для данного запроса mock в localStorage. Если mock найден, реальный запрос всё равно отправляется, но при получении ответа мы подменяем указанные поля.
Хранение mocks в localStorage
Сохраняем JSON: какие запросы «ловить» и какие поля ответа подменять. Подмена происходит уже после реального запроса, в «коннекторе». Чтобы удалить mocks, достаточно очистить localStorage через Dev Tools.
Удобное редактирование прямо в интерфейсе
Обычно можно было бы сделать специальные функции и «вытащить» их в глобальное окружение, чтобы управлять этим через Dev Tools. Но у нас в интерфейсе Sendsay есть «API-консоль» (аналог Postman). Мы добавили в неё поле mock: всё, что туда записывается, сохраняется в localStorage и применяется при следующих запросах.
✅ Преимущества
Экономия времени: не нужно искать «особенного» клиента. Гибкость: легко проверять сценарии для специфичных аккаунтов. Прозрачность: управление мокированием сосредоточено в одном месте, а данные для mock хранятся в localStorage.
✨Итог
Мы реализовали мокирование запросов прямо в интерфейсе, не отказываясь при этом от реальных ответов сервера, а лишь подменяя нужные поля «на лету». Это ускорило работу QA и упростило тестирование редких сценариев. Теперь, чтобы проверить изменения для определённых категорий пользователей, достаточно создать или отредактировать нужный mock в «API-консоли» — и сразу увидеть, как всё будет выглядеть в приложении.
· 14.01.2025
Все верно, но клиентам это не очень удобно, а изначально этот раздел для них делался. Ну и для тех поддержки
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён