cybernaut
Version:
Reliable, zero configuration end-to-end testing in BDD-style.
39 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const createDebug = require("debug");
const selenium_webdriver_1 = require("selenium-webdriver");
const test_1 = require("./test");
const debug = createDebug('cybernaut:implementation');
class TapTest extends test_1.Test {
constructor(driver, tap, options) {
super(driver, options.retries, options.retryDelay);
this._tap = tap;
}
fail(message, cause) {
throw new Error(`${message} (cause: ${cause.message})`);
}
pass(message) {
this._tap.pass(message);
}
}
function execute(implementation, tap, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const { capabilities, timeouts } = options;
debug('create a new WebDriver instance');
const driver = yield new selenium_webdriver_1.Builder().withCapabilities(capabilities).build();
try {
debug('manage timeout behavior for the newly created WebDriver instance');
yield driver.manage().timeouts().implicitlyWait(timeouts.element);
yield driver.manage().timeouts().pageLoadTimeout(timeouts.page);
yield driver.manage().timeouts().setScriptTimeout(timeouts.script);
debug('execute test implementation');
yield implementation(new TapTest(driver, tap, options));
}
finally {
yield driver.quit();
}
});
}
exports.execute = execute;
//# sourceMappingURL=implementation.js.map