код теста на геркин API Unleash
коммиты эксперимента и пошаговых улучшений кодовой базы
сразу улучшил фундамент, потом вкатил анлишь
https://git.codemonsters.team/guides/mq-rest-sync-adapter/-/commits/feature/component-tests-unleash
Добавил тесты интеграции с Unleash
В двух словах:
Unleash - это хранилище тоглов, к которому может быть подключен твой сервис. В UI анлиш или API ты включаешь тогл и твой сервис переключается на использование фичи, которую включает/выключает тогл.
Что такое тогл/ фича-флаг/ фича-тогл?
Фича-флаг (feature flag/toggle) — это механизм, который позволяет включать или выключать функциональность в приложении без изменения кода и без нового деплоя.
Простая аналогия
Представьте выключатель света в комнате:
Включен → функция работает для пользователей
Выключен → функция скрыта, хотя код присутствует в приложении
пример ко
да:
if (featureToggles.isFeatureEnabled("wallet-balance-workflow")) {
refactoredBalanceFlow(message)
} else {
legacyBalanceFlow(message)
}
sorry(нет):
Я с подозрением отношусь к проектам спроектированным полностью на TypeScript, JS. Оно идет инзутри моего нутра. Я понимаю, что это просто инструмент. Но это не самый хороший для бэка вариант.
С апи я помучался немного. Агент тоже не сразу справился, но я его научил.
API Unleash содержит ошибки в доке, например
API создания фичи описано с кодом 200 в ответе.
https://docs.getunleash.io/reference/api/unleash/create-feature
по факту 201.
Интеграция в компонентном тестировании с Unleash позволяет
сколь угодно тестировать сервис. И это просто.
Включая и выключая тоглы програмно по API прописываешь на геркине тест сервиса:
| включил тоглФича готова к установке
| прогнал тест фичи
| выключит тогл
| прогнал тест фичи
Автоматизавтор:
Дополнительно проверил есть ли мэтч с тоглами локального компонентного теста и с анлиш на stage, prod
чтобы не катить с тоглами, которых нет в мастер-системе - обеспечил согласованность.
P.S.
Есть несколько интересных проектов, на которые можно обратить внимание:
Flagsmith
Стек: Django/Python (backend), React (frontend)
Популярность: Активно развивается, хорошее сообщество
Простота: Есть облачная версия и self-hosted
Особенности: REST API, webhooks, интеграции
GrowthBook
Стек: Node.js/TypeScript (backend), Next.js (frontend)
Популярность: Новый, но быстро растущий
Простота: Фокус на A/B тестировании
Особенности: Интеграция с аналитикой, статистический движок
Flagr
Этот инструмент я покручу следующим.
Стек: Go
Популярность: Используется в Checkr
Простота: REST API, простое развертывание
Особенности: Легковесный, хорошая производительность
Client Libraries
(нет Java)
Language Clients
Go goflagr
Javascript jsflagr
Python pyflagr
Ruby rbflagr
#codemonsterslog
