diff --git a/conf/local.conf.js b/conf/local.conf.js index e3f90814..079f3ffc 100644 --- a/conf/local.conf.js +++ b/conf/local.conf.js @@ -3,6 +3,13 @@ var browserstack = require('browserstack-local'); nightwatch_config = { src_folders : [ "tests/local" ], + proxy: { + "host": "", + "port": "", + "user": "", + "pass": "" + }, + selenium : { "start_process" : false, "host" : "hub-cloud.browserstack.com", diff --git a/scripts/local.runner.js b/scripts/local.runner.js index 1ecb4398..1a0bd1f0 100755 --- a/scripts/local.runner.js +++ b/scripts/local.runner.js @@ -2,15 +2,52 @@ var Nightwatch = require('nightwatch'); var browserstack = require('browserstack-local'); +var localConf = require('../conf/local.conf.js'); + var bs_local; try { process.mainModule.filename = "./node_modules/.bin/nightwatch" // Code to start browserstack local before start of test - console.log("Connecting local"); + console.log('Connecting local'); Nightwatch.bs_local = bs_local = new browserstack.Local(); - bs_local.start({'key': process.env.BROWSERSTACK_ACCESS_KEY }, function(error) { + + var localOptions = { + 'key': localConf['test_settings']['default']['desiredCapabilities']['browserstack.key'] + }; + + /** + * If the network requires proxy configuration for outbound connections, + * set those here. + */ + var proxySettings = localConf['proxy'] || {}; + + for (var key in proxySettings) { + var value = proxySettings[key]; + + switch (key) { + case 'host': + if (value) localOptions['proxyHost'] = value; + break; + + case 'port': + if (value) localOptions['proxyPort'] = value; + break; + + case 'user': + if (value) localOptions['proxyUser'] = value; + break; + + case 'pass': + if (value) localOptions['proxyPass'] = value; + break; + } + } + + console.log('Local options: \n', localOptions); + + bs_local.start(localOptions, function(error) { if (error) throw error; console.log('Connected. Now testing...');