UNPKG

cybernaut

Version:

Reliable, automated web UI testing in BDD-style.

42 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const utils_1 = require("./utils"); function createVerifier(accessor, predicate) { const description = `${accessor.description} ${predicate.description}`; return (driver, attempt, retries) => tslib_1.__awaiter(this, void 0, void 0, function* () { try { const actualValue = yield accessor.get(driver); const result = predicate.test(actualValue); if (!result) { return { description: `${description} (${predicate.compare(actualValue)})`, result: 'invalid' }; } const attempts = ` (attempt ${attempt} of ${retries + 1})`; return { description: description + (attempt > 1 ? attempts : ''), result: 'valid' }; } catch (e) { const message = e && e.message ? String(e.message) : 'unknown error'; return { description: `${description} (${message})`, result: 'error' }; } }); } exports.createVerifier = createVerifier; function verify(verifier, driver, options, _attempt = 1) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const { retries, retryDelay } = options; const verification = yield verifier(driver, _attempt, retries); if (verification.result === 'valid' || retries < _attempt) { return verification; } yield utils_1.sleep(retryDelay); return verify(verifier, driver, options, _attempt + 1); }); } exports.verify = verify; //# sourceMappingURL=verification.js.map