@o3r/testing
Version:
The module provides testing (e2e, unit test) utilities to help you build your own E2E pipeline integrating visual testing.
36 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withTimeout = exports.TimeoutError = exports.isPromise = void 0;
var tslib_1 = require("tslib");
/**
* Determine if the given item is a promise
* @param item Item to check
*/
var isPromise = function (item) { return !!item && typeof item.then === 'function'; };
exports.isPromise = isPromise;
/**
* Error raised when promise timeout
*/
var TimeoutError = /** @class */ (function (_super) {
tslib_1.__extends(TimeoutError, _super);
function TimeoutError(message) {
return _super.call(this, message || 'Timeout of the promise') || this;
}
return TimeoutError;
}(Error));
exports.TimeoutError = TimeoutError;
/**
* Apply timeout to a given promise
* @param promise Promise to timeout
* @param timeout timeout of the given promise (in ms)
*/
var withTimeout = function (promise, timeout) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (!timeout) {
return [2 /*return*/, promise];
}
return [2 /*return*/, Promise.race([promise, new Promise(function (_, reject) { return setTimeout(function () { return reject(new TimeoutError()); }, timeout); })])];
});
}); };
exports.withTimeout = withTimeout;
//# sourceMappingURL=helpers.js.map