UNPKG

tia

Version:

Time is All (logs driven test engine with ExtJs support)

108 lines 3.34 kB
"use strict"; /** * **Test description**. */ var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const path = __importStar(require("path")); /* eslint-disable max-params, no-param-reassign */ /** * Safely runs generator. * All exceptions are catched and logged. * * @param gen */ // function* safeGen(gen) { // try { // yield* gen(); // } catch (e) { // if (gT.cLParams.errToConsole) { // gIn.tracer.err(`Safe Generator caught error: ${gIn.textUtils.excToStr(e)}`); // } // gT.l.println(`Safe Generator caught error: ${gIn.textUtils.excToStr(e)}`); // } // } // Return promise from generator is not supported, i.e. will not be waited. function iterateIterator(iterator) { return new Promise((resolve, reject) => { let obj; function iterate(ret) { obj = iterator.next(ret); // TODO: check if obj.value is Promise. Improve test for generators. if (obj.done) { resolve(obj.value); return; } if (gT.nodeUtils.isPromise(obj.value)) { obj.value .then((res) => { iterate(res); }) .catch((err) => { gIn.tracer.err(`Iterate error: ${err}`); reject(err); }); } else { setTimeout(() => { iterate(obj.value); }, 0); } } iterate(); }); } exports.iterate = iterateIterator; function iterateSafe(iterator) { return gT.u.misc.iterate(iterator).catch(e => { const strErr = `Safe Iterator caught error: ${gIn.textUtils.excToStr(e)}`; if (gT.cLParams.errToConsole) { gIn.tracer.err(strErr); } gT.l.println(strErr); }); } exports.iterateSafe = iterateSafe; function execGenSafe(gen, ...params) { return gT.u.misc.iterate(gen(...params)).catch(e => { const strErr = `Safe Generator runner caught error: ${gIn.textUtils.excToStr(e)}`; if (gT.cLParams.errToConsole) { gIn.tracer.err(strErr); } gT.l.println(strErr); }); } exports.execGenSafe = execGenSafe; /** * Runs function - generator. * Note: the function uses flow and Promise from selenium webdriver. * * @param gen - function - generator. * @returns {Promise} */ function execGen(gen, param1, param2) { return gT.u.misc.iterate(gen(param1, param2)); } exports.execGen = execGen; function setHangTimeout(newTimeout) { const oldTimeout = gT.cLParams.hangTimeout; gT.cLParams.hangTimeout = newTimeout; return oldTimeout; } exports.setHangTimeout = setHangTimeout; function isWindows() { return path.sep === '\\'; } exports.isWindows = isWindows; // gT.s.fail = function (url, enableLog?: EnableLog) { // return gIn.wrap('Intentional fail for debug: ... ', enableLog, function () { // return Promise.reject('Intentional fail'); // }); // }; //# sourceMappingURL=utils-misc.js.map