/** * This serves as the main function for starting a test run that has been * requested by the launcher. */ "use strict"; var configParser_1 = require("./configParser"); var logger_1 = require("./logger"); var runner_1 = require("./runner"); var logger = new logger_1.Logger('runnerCli'); process.on('message', function (m) { switch (m.command) { case 'run': if (!m.capabilities) { throw new Error('Run message missing capabilities'); } // Merge in config file options. var configParser = new configParser_1.ConfigParser(); if (m.configFile) { configParser.addFileConfig(m.configFile); } if (m.additionalConfig) { configParser.addConfig(m.additionalConfig); } var config = configParser.getConfig(); logger_1.Logger.set(config); // Grab capabilities to run from launcher. config.capabilities = m.capabilities; // Get specs to be executed by this runner config.specs = m.specs; // Launch test run. var runner = new runner_1.Runner(config); // Pipe events back to the launcher. runner.on('testPass', function () { process.send({ event: 'testPass' }); }); runner.on('testFail', function () { process.send({ event: 'testFail' }); }); runner.on('testsDone', function (results) { process.send({ event: 'testsDone', results: results }); }); runner.run() .then(function (exitCode) { process.exit(exitCode); }) .catch(function (err) { logger.info(err.message); process.exit(1); }); break; default: throw new Error('command ' + m.command + ' is invalid'); } });