UNPKG

skutter

Version:

Skutter: Opinionated BDD Browser based test framework

63 lines (62 loc) 2.3 kB
"use strict"; const node_module_finder_1 = require("../services/node-module-finder"); const process_error_sender_1 = require("../services/process-error-sender"); function CannotBeUndefined(propertyName) { throw Error(`ExecutorInit: Property ${propertyName} was not defined.`); } function teardownOnError() { console.log("[ExecutorInit] Tearing down due to error."); if (browser) { browser.close(); browser.quit(); } setTimeout(() => { process.exit(-1); }, 100); } class ExecutorInit { static execute(payload = CannotBeUndefined("payload")) { global.skutterConfig = { libraryPaths: payload.stepLibraryPaths, basePath: payload.screenshotRootPath, features: payload.features, verbosity: payload.verbosity, }; let protractorLauncherLocation = null; try { protractorLauncherLocation = node_module_finder_1.NodeModuleFinder.find("protractor/lib/launcher.js"); } catch (exception) { process_error_sender_1.ProcessErrorSender.send("executor-init", "Protractor launcher was not found in expected location.", exception) .then(() => { teardownOnError(); }); } let protractorRunner = null; try { protractorRunner = require(protractorLauncherLocation); } catch (exception) { process_error_sender_1.ProcessErrorSender.send("executor-init", "Error loading protractor runner.", exception) .then(() => { teardownOnError(); }); } if (!payload.protractorArgs) { process_error_sender_1.ProcessErrorSender.send("executor-init", "Protractor configuration not provided.") .then(() => { teardownOnError(); }); } try { protractorRunner.init(payload.protractorArgs.configPath, payload.protractorArgs); } catch (exception) { process_error_sender_1.ProcessErrorSender.send("executor-init", "Error initialising protractor runner.", exception) .then(() => { teardownOnError(); }); } } } exports.ExecutorInit = ExecutorInit;