UNPKG

@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
"use strict"; 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