API Docs for:
Show:

File: utils/superagentPromise.js

"use strict";

var Promise = require("bluebird");

var Request = require("superagent").Request;

/**
 * @namespace utils
 * @class Superagent
 */

/**
 *
 * Add promise support for superagent/supertest
 *
 * Call .promise() to return promise for the request
 *
 * This is pretty much shit. The superagent version must be kept in sync with
 * node_modules/supertest/package.json
 *
 * @method promise
 * @return {Bluebird.Promise}
 */
Request.prototype.promise = function() {
    var self = this;
    return new Promise(function(resolve, reject){
        Request.prototype.end.call(self, function(err, res) {
            if (err) return reject(err);
            if (res.status === 500) {
                return reject(new Error(res.text));
            }
            resolve(res);
        });
    });
};