PHP WebShell

Текущая директория: /opt/BitGoJS/modules/bitgo/dist/test/integration

Просмотр файла: testutil.js

"use strict";
/**
 * Utility functions for testing
 */
Object.defineProperty(exports, "__esModule", { value: true });
const TestUtil = module.exports;
const should = require("should");
const _ = require("lodash");
const Q = require('q');
/**
 * Checks if a promise chain throws an error, and optionally that the error includes
 * the given errorMsg. Our current version of shouldjs (3.3.2) doesn't have the promise
 * assertion .rejectedWith, so we make due with this.
 * @param promise {String} (optional) error message to check for
 * @param errorMsg
 */
TestUtil.throws = function (promise, errorMsg) {
    return promise
        .then(function (res) {
        throw new Error(); // should never reach this point
    })
        .catch(function (e) {
        if (errorMsg) {
            e.message.should.containEql(errorMsg);
        }
        should.exist(e);
    });
};
// `condition` is a function that returns a boolean
// `body` is a function that returns a promise
// returns a promise for the completion of the loop
TestUtil.promiseWhile = function (condition, body) {
    const done = Q.defer();
    function loop() {
        // When the result of calling `condition` is no longer true, we are
        // done.
        if (!condition()) {
            return done.resolve();
        }
        // Use `when`, in case `body` does not return a promise.
        // When it completes loop again otherwise, if it fails, reject the
        // done promise
        Q.when(body(), loop, done.reject);
    }
    // Start running the loop in the next tick so that this function is
    // completely async. It would be unexpected if `body` was called
    // synchronously the first time.
    Q.nextTick(loop);
    // The promise
    return done.promise;
};
// helper function used to cleanup more than one token
// This is useful in the event that some of your tests fail, and there ends up being more than 10 access tokens
// at which point the server won't allow you to make any more longlived tokens
TestUtil.deleteTestTokens = function (bitgoObj, filterFunc) {
    let tokenList;
    let index = 0;
    const condition = function () {
        return index < tokenList.length;
    }; // don't delete last token, which is the login token for this test
    const body = function () {
        const token = tokenList[index];
        return bitgoObj
            .removeAccessToken({ id: token.id })
            .then(function (tok) {
            if (tok) {
                tok.id.should.equal(tokenList[index].id);
            }
        })
            .catch(function (e) {
            console.log(e); // show the error to help debugging
        })
            .finally(function () {
            index++;
        });
    };
    return bitgoObj.listAccessTokens().then(function (tokens) {
        // clear up access tokens which return true from the filter function
        tokenList = _.filter(tokens, filterFunc);
        return TestUtil.promiseWhile(condition, body);
    });
};
// helper function to unlock a token for a specified time
TestUtil.unlockToken = function (agent, accessToken, seconds) {
    return agent
        .post('/api/v1/user/unlock')
        .set('Authorization', 'Bearer ' + accessToken)
        .send({ otp: '0000000', duration: seconds })
        .then(function (res) {
        res.statusCode.should.equal(200);
    });
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ludGVncmF0aW9uL3Rlc3R1dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2hDLGlDQUFpQztBQUNqQyw0QkFBNEI7QUFDNUIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7Ozs7R0FNRztBQUNILFFBQVEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxPQUFPLEVBQUUsUUFBUTtJQUMzQyxPQUFPLE9BQU87U0FDWCxJQUFJLENBQUMsVUFBVSxHQUFHO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGdDQUFnQztJQUNyRCxDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ2hCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixtREFBbUQ7QUFDbkQsOENBQThDO0FBQzlDLG1EQUFtRDtBQUNuRCxRQUFRLENBQUMsWUFBWSxHQUFHLFVBQVUsU0FBUyxFQUFFLElBQUk7SUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXZCLFNBQVMsSUFBSTtRQUNYLG1FQUFtRTtRQUNuRSxRQUFRO1FBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELHdEQUF3RDtRQUN4RCxrRUFBa0U7UUFDbEUsZUFBZTtRQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLGdFQUFnRTtJQUNoRSxnQ0FBZ0M7SUFDaEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQixjQUFjO0lBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLHNEQUFzRDtBQUN0RCwrR0FBK0c7QUFDL0csOEVBQThFO0FBQzlFLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLFFBQVEsRUFBRSxVQUFVO0lBQ3hELElBQUksU0FBUyxDQUFDO0lBQ2QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsTUFBTSxTQUFTLEdBQUc7UUFDaEIsT0FBTyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQyxrRUFBa0U7SUFDckUsTUFBTSxJQUFJLEdBQUc7UUFDWCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsT0FBTyxRQUFRO2FBQ1osaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7UUFDckQsQ0FBQyxDQUFDO2FBQ0QsT0FBTyxDQUFDO1lBQ1AsS0FBSyxFQUFFLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsTUFBTTtRQUN0RCxvRUFBb0U7UUFDcEUsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRix5REFBeUQ7QUFDekQsUUFBUSxDQUFDLFdBQVcsR0FBRyxVQUFVLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTztJQUMxRCxPQUFPLEtBQUs7U0FDVCxJQUFJLENBQUMscUJBQXFCLENBQUM7U0FDM0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsV0FBVyxDQUFDO1NBQzdDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUc7UUFDakIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5cbmNvbnN0IFRlc3RVdGlsID0gbW9kdWxlLmV4cG9ydHM7XG5pbXBvcnQgKiBhcyBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmNvbnN0IFEgPSByZXF1aXJlKCdxJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcHJvbWlzZSBjaGFpbiB0aHJvd3MgYW4gZXJyb3IsIGFuZCBvcHRpb25hbGx5IHRoYXQgdGhlIGVycm9yIGluY2x1ZGVzXG4gKiB0aGUgZ2l2ZW4gZXJyb3JNc2cuIE91ciBjdXJyZW50IHZlcnNpb24gb2Ygc2hvdWxkanMgKDMuMy4yKSBkb2Vzbid0IGhhdmUgdGhlIHByb21pc2VcbiAqIGFzc2VydGlvbiAucmVqZWN0ZWRXaXRoLCBzbyB3ZSBtYWtlIGR1ZSB3aXRoIHRoaXMuXG4gKiBAcGFyYW0gcHJvbWlzZSB7U3RyaW5nfSAob3B0aW9uYWwpIGVycm9yIG1lc3NhZ2UgdG8gY2hlY2sgZm9yXG4gKiBAcGFyYW0gZXJyb3JNc2dcbiAqL1xuVGVzdFV0aWwudGhyb3dzID0gZnVuY3Rpb24gKHByb21pc2UsIGVycm9yTXNnKSB7XG4gIHJldHVybiBwcm9taXNlXG4gICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7IC8vIHNob3VsZCBuZXZlciByZWFjaCB0aGlzIHBvaW50XG4gICAgfSlcbiAgICAuY2F0Y2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChlcnJvck1zZykge1xuICAgICAgICBlLm1lc3NhZ2Uuc2hvdWxkLmNvbnRhaW5FcWwoZXJyb3JNc2cpO1xuICAgICAgfVxuICAgICAgc2hvdWxkLmV4aXN0KGUpO1xuICAgIH0pO1xufTtcblxuLy8gYGNvbmRpdGlvbmAgaXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuXG4vLyBgYm9keWAgaXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlXG4vLyByZXR1cm5zIGEgcHJvbWlzZSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxvb3BcblRlc3RVdGlsLnByb21pc2VXaGlsZSA9IGZ1bmN0aW9uIChjb25kaXRpb24sIGJvZHkpIHtcbiAgY29uc3QgZG9uZSA9IFEuZGVmZXIoKTtcblxuICBmdW5jdGlvbiBsb29wKCkge1xuICAgIC8vIFdoZW4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIGBjb25kaXRpb25gIGlzIG5vIGxvbmdlciB0cnVlLCB3ZSBhcmVcbiAgICAvLyBkb25lLlxuICAgIGlmICghY29uZGl0aW9uKCkpIHtcbiAgICAgIHJldHVybiBkb25lLnJlc29sdmUoKTtcbiAgICB9XG4gICAgLy8gVXNlIGB3aGVuYCwgaW4gY2FzZSBgYm9keWAgZG9lcyBub3QgcmV0dXJuIGEgcHJvbWlzZS5cbiAgICAvLyBXaGVuIGl0IGNvbXBsZXRlcyBsb29wIGFnYWluIG90aGVyd2lzZSwgaWYgaXQgZmFpbHMsIHJlamVjdCB0aGVcbiAgICAvLyBkb25lIHByb21pc2VcbiAgICBRLndoZW4oYm9keSgpLCBsb29wLCBkb25lLnJlamVjdCk7XG4gIH1cblxuICAvLyBTdGFydCBydW5uaW5nIHRoZSBsb29wIGluIHRoZSBuZXh0IHRpY2sgc28gdGhhdCB0aGlzIGZ1bmN0aW9uIGlzXG4gIC8vIGNvbXBsZXRlbHkgYXN5bmMuIEl0IHdvdWxkIGJlIHVuZXhwZWN0ZWQgaWYgYGJvZHlgIHdhcyBjYWxsZWRcbiAgLy8gc3luY2hyb25vdXNseSB0aGUgZmlyc3QgdGltZS5cbiAgUS5uZXh0VGljayhsb29wKTtcblxuICAvLyBUaGUgcHJvbWlzZVxuICByZXR1cm4gZG9uZS5wcm9taXNlO1xufTtcblxuLy8gaGVscGVyIGZ1bmN0aW9uIHVzZWQgdG8gY2xlYW51cCBtb3JlIHRoYW4gb25lIHRva2VuXG4vLyBUaGlzIGlzIHVzZWZ1bCBpbiB0aGUgZXZlbnQgdGhhdCBzb21lIG9mIHlvdXIgdGVzdHMgZmFpbCwgYW5kIHRoZXJlIGVuZHMgdXAgYmVpbmcgbW9yZSB0aGFuIDEwIGFjY2VzcyB0b2tlbnNcbi8vIGF0IHdoaWNoIHBvaW50IHRoZSBzZXJ2ZXIgd29uJ3QgYWxsb3cgeW91IHRvIG1ha2UgYW55IG1vcmUgbG9uZ2xpdmVkIHRva2Vuc1xuVGVzdFV0aWwuZGVsZXRlVGVzdFRva2VucyA9IGZ1bmN0aW9uIChiaXRnb09iaiwgZmlsdGVyRnVuYykge1xuICBsZXQgdG9rZW5MaXN0O1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGNvbnN0IGNvbmRpdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaW5kZXggPCB0b2tlbkxpc3QubGVuZ3RoO1xuICB9OyAvLyBkb24ndCBkZWxldGUgbGFzdCB0b2tlbiwgd2hpY2ggaXMgdGhlIGxvZ2luIHRva2VuIGZvciB0aGlzIHRlc3RcbiAgY29uc3QgYm9keSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2VuTGlzdFtpbmRleF07XG5cbiAgICByZXR1cm4gYml0Z29PYmpcbiAgICAgIC5yZW1vdmVBY2Nlc3NUb2tlbih7IGlkOiB0b2tlbi5pZCB9KVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHRvaykge1xuICAgICAgICBpZiAodG9rKSB7XG4gICAgICAgICAgdG9rLmlkLnNob3VsZC5lcXVhbCh0b2tlbkxpc3RbaW5kZXhdLmlkKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKTsgLy8gc2hvdyB0aGUgZXJyb3IgdG8gaGVscCBkZWJ1Z2dpbmdcbiAgICAgIH0pXG4gICAgICAuZmluYWxseShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gYml0Z29PYmoubGlzdEFjY2Vzc1Rva2VucygpLnRoZW4oZnVuY3Rpb24gKHRva2Vucykge1xuICAgIC8vIGNsZWFyIHVwIGFjY2VzcyB0b2tlbnMgd2hpY2ggcmV0dXJuIHRydWUgZnJvbSB0aGUgZmlsdGVyIGZ1bmN0aW9uXG4gICAgdG9rZW5MaXN0ID0gXy5maWx0ZXIodG9rZW5zLCBmaWx0ZXJGdW5jKTtcblxuICAgIHJldHVybiBUZXN0VXRpbC5wcm9taXNlV2hpbGUoY29uZGl0aW9uLCBib2R5KTtcbiAgfSk7XG59O1xuXG4vLyBoZWxwZXIgZnVuY3Rpb24gdG8gdW5sb2NrIGEgdG9rZW4gZm9yIGEgc3BlY2lmaWVkIHRpbWVcblRlc3RVdGlsLnVubG9ja1Rva2VuID0gZnVuY3Rpb24gKGFnZW50LCBhY2Nlc3NUb2tlbiwgc2Vjb25kcykge1xuICByZXR1cm4gYWdlbnRcbiAgICAucG9zdCgnL2FwaS92MS91c2VyL3VubG9jaycpXG4gICAgLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKVxuICAgIC5zZW5kKHsgb3RwOiAnMDAwMDAwMCcsIGR1cmF0aW9uOiBzZWNvbmRzIH0pXG4gICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgcmVzLnN0YXR1c0NvZGUuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgfSk7XG59O1xuIl19

Выполнить команду


Для локальной разработки. Не используйте в интернете!