From bae758a327ae5dab46be14b790f68881c531fc81 Mon Sep 17 00:00:00 2001 From: Matt Kubej Date: Tue, 22 Aug 2017 07:50:29 -0400 Subject: [PATCH] feat(config): add proxy option --- README.md | 5 +++++ lib/sauce_launcher.js | 6 +++++- lib/sauce_reporter.js | 7 ++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3521c4..5e3ae86 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,11 @@ Default: `process.env.SAUCE_ACCESS_KEY` Your Sauce Labs access key which you will see on your [account page](https://saucelabs.com/account). +### proxy +Type: `String` + +Proxy for connecting to Sauce REST API, which is used to communicate job updates of pass/fail. + ### startConnect Type: `Boolean` Default: `true` diff --git a/lib/sauce_launcher.js b/lib/sauce_launcher.js index af7c9f9..fdf7eab 100644 --- a/lib/sauce_launcher.js +++ b/lib/sauce_launcher.js @@ -10,6 +10,7 @@ function processConfig (helper, config, args) { var username = args.username || config.username || process.env.SAUCE_USERNAME var accessKey = args.accessKey || config.accessKey || process.env.SAUCE_ACCESS_KEY + var proxy = args.proxy || config.proxy var startConnect = config.startConnect !== false var tunnelIdentifier = args.tunnelIdentifier || config.tunnelIdentifier @@ -76,6 +77,7 @@ function processConfig (helper, config, args) { browserName: browserName, username: username, accessKey: accessKey, + proxy: proxy, startConnect: startConnect } } @@ -99,6 +101,7 @@ var SauceLauncher = function ( var browserName = pConfig.browserName var username = pConfig.username var accessKey = pConfig.accessKey + var proxy = pConfig.proxy var startConnect = pConfig.startConnect var pendingCancellations = 0 @@ -155,7 +158,8 @@ var SauceLauncher = function ( credentials: { username: username, password: accessKey - } + }, + proxy: proxy } sessionIsReady = true diff --git a/lib/sauce_reporter.js b/lib/sauce_reporter.js index 6197e5b..b477bcf 100644 --- a/lib/sauce_reporter.js +++ b/lib/sauce_reporter.js @@ -27,7 +27,12 @@ var SauceReporter = function (logger, /* sauce:jobMapping */ jobMapping) { if (browserId in jobMapping) { var jobDetails = jobMapping[browserId] - var sauceApi = new SauceLabs(jobDetails.credentials) + var sauceApiOptions = jobDetails.credentials + if (jobDetails.proxy) { + sauceApiOptions.proxy = jobDetails.proxy + } + + var sauceApi = new SauceLabs(sauceApiOptions) // We record pass/fail status, as well as the full results in "custom-data". var payload = {