UNPKG

cake-chai

Version:

Use chai assertians in mocha tasks.

111 lines (109 loc) 2.84 kB
// Generated by CoffeeScript 1.10.0 module.exports = String(function(fn, args) { var done, err, error, evalAsync, evalGenerator, evalSync, ipc, isAsync, isGenerator, isPromise, isString, log, response, sliced, waitForPromise; log = console.log; ipc = __nightmare.ipc; sliced = __nightmare.sliced; console.log = function() { log.apply(console, arguments); return ipc.send('log', (sliced(arguments)).map(String)); }; done = function(err, response) { var errmsg, error; if (err) { errmsg = Object.assign({}, err); errmsg.message = err.message; errmsg.name = err.name; errmsg.stack = err.stack; ipc.send('error', JSON.stringify(errmsg)); } else { try { response = JSON.stringify(response); } catch (error) { err = error; response = JSON.stringify({ error: 'Failed to serialize response' }); } ipc.send('response', response); } return console.log = log; }; isAsync = function(fn) { return fn.length === args.length + 1; }; isGenerator = function(fn) { return typeof fn === 'function' && /^function[\s]*\*/.test(fn); }; isPromise = function(v) { return typeof (v != null ? v.then : void 0) === 'function'; }; isString = function(s) { return typeof s === 'string'; }; waitForPromise = function(promise) { return promise.then(function(value) { return done(null, value); })["catch"](function(err) { return done(err); }); }; evalAsync = function() { args.push(function(err, res) { if (err) { return done(err); } return done(null, res); }); return fn.apply(null, args); }; evalGenerator = function() { var gen, last, next, prev; gen = fn.apply(null, args); last = null; prev = null; next = function(value) { var err, error, promise, res; try { res = gen.next(value); } catch (error) { err = error; return done(err); } prev = last; last = res.value; if (isPromise(promise = res.value)) { return promise.then(function(value) { return next(value); })["catch"](function(err) { return done(err); }); } else if (!res.done) { return next(res.value); } else { return done(null, last != null ? last : prev); } }; return next(); }; evalSync = function() { return fn.apply(null, args); }; if (isAsync(fn)) { return evalAsync(); } if (isGenerator(fn)) { return evalGenerator(); } try { response = evalSync(); } catch (error) { err = error; return done(err); } if (isPromise(response)) { return waitForPromise(response); } return done(null, response); }); //# sourceMappingURL=script.js.map