А кто как работает с эффектами в кложур? я все про то же, как идиоматично кложуре/фп изолировать эффекты функций для тестового окружения, всякие штуки типа DI в кложуре через аргументы функций, таскания за собой контекста, или IoC на основе рекордов выглядят костыльно. В руби недавно появилась такая экспериментальная библиотека dry-effects, суть такая: эффект оборачивается в рубишный файбер и есть хэндлер который знает как работать с эффектом в зависимости от окружения. Я не использовал, но выглядит клево.
Мне очень не нравится таскать аргументы around и я в итоге использую mount-lite. В тех местах где есть разные реализации в зависимости от настроек либо окружения (прод или тесты) у меня получается неймспейс в котором в defstate лежит что-то реализует протокол, и функции-обвязки, которые убирают этот лишний аргумент. Получается супер удобно