diff --git a/lib/config.ts b/lib/config.ts index f562cd7dd..8f3c95ec7 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -93,9 +93,23 @@ export interface Config { sauceKey?: string; /** * Use sauceAgent if you need customize agent for https connection to - * saucelabs.com (i.e. your computer behind corporate proxy) + * saucelabs.com (i.e. your computer behind corporate proxy). + * + * To match sauce agent implementation, use + * [HttpProxyAgent](https://github.com/TooTallNate/node-http-proxy-agent) + * to generate the agent or use sauceProxy as an alternative where + * sauce generates the agent for you based on the proxy. If a sauceProxy is + * provided, the sauceAgent will be overridden. + */ + sauceAgent?: HttpProxyAgent; + /** + * Use sauceProxy that will get generated into an agent for https connection + * to saucelabs.com (i.e. your computer behind corporate proxy). + * + * The sauceProxy is used to generate a sauceAgent. If a sauceProxy is + * provided, the sauceAgent will be overridden. */ - sauceAgent?: string; + sauceProxy?: string; /** * Use sauceBuild if you want to group test capabilites by a build ID */ diff --git a/lib/driverProviders/sauce.ts b/lib/driverProviders/sauce.ts index 2ec40bea9..84591393c 100644 --- a/lib/driverProviders/sauce.ts +++ b/lib/driverProviders/sauce.ts @@ -57,7 +57,8 @@ export class Sauce extends DriverProvider { this.sauceServer_ = new SauceLabs({ username: this.config_.sauceUser, password: this.config_.sauceKey, - agent: this.config_.sauceAgent + agent: this.config_.sauceAgent, + proxy: this.config_.sauceProxy }); this.config_.capabilities['username'] = this.config_.sauceUser; this.config_.capabilities['accessKey'] = this.config_.sauceKey; diff --git a/lib/globals.d.ts b/lib/globals.d.ts index c654c1088..03c358ed5 100644 --- a/lib/globals.d.ts +++ b/lib/globals.d.ts @@ -105,3 +105,7 @@ declare namespace webdriver { isPresent?: Function; } } + +declare interface HttpProxyAgent { + constructor(opts: Object): HttpProxyAgent; +}