tia
Version:
Time is All (logs driven test engine with ExtJs support)
108 lines • 3.34 kB
JavaScript
;
/**
* **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