А что там, простите, тестировать? И что такого универсального должно быть? Просто прокидываешь resolve при ответе, reject при ошибке. Получаешь тот же хуй только вид сбоку.
Я еще вот сделяль написал промис в него положил рекурсивную функцию которая через request делает get запрос на сервак на котором порции данных лежат, потом когда рекурсия заканчивает порции высасывать выполняется выход через ресолв со склеяными даммыми из всех порций )