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Выполнить команду
Для локальной разработки. Не используйте в интернете!