From 9c9625eb766bb75f53d1a2e807cc4efa66f1e66e Mon Sep 17 00:00:00 2001 From: Ash Wilson Date: Tue, 20 Jun 2017 15:44:05 -0400 Subject: [PATCH] Helpers to promisify functions in specs --- spec/async-spec-helpers.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/spec/async-spec-helpers.js b/spec/async-spec-helpers.js index 8bc36c913..84a592c6a 100644 --- a/spec/async-spec-helpers.js +++ b/spec/async-spec-helpers.js @@ -72,3 +72,27 @@ export function emitterEventPromise (emitter, event, timeout = 15000) { }) }) } + +export function promisify (original) { + return function (...args) { + return new Promise((resolve, reject) => { + args.push((err, ...results) => { + if (err) { + reject(err) + } else { + resolve(...results) + } + }) + + return original(...args) + }) + } +} + +export function promisifySome (obj, fnNames) { + const result = {} + for (fnName of fnNames) { + result[fnName] = promisify(obj[fnName]) + } + return result +}