Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

Commit

Permalink
chore(driverProviders): add warnings to extra driver provider paramet…
Browse files Browse the repository at this point in the history
…ers (#3873)

- builds the driver provider in lib/driverProviders/index instead of lib/runner

closes #1945
  • Loading branch information
cnishina authored Dec 22, 2016
1 parent 1345137 commit ca4f1ac
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 20 deletions.
85 changes: 85 additions & 0 deletions lib/driverProviders/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,88 @@ export * from './hosted';
export * from './local';
export * from './mock';
export * from './sauce';


import {AttachSession} from './attachSession';
import {BrowserStack} from './browserStack';
import {DriverProvider} from './driverProvider';
import {Direct} from './direct';
import {Hosted} from './hosted';
import {Local} from './local';
import {Mock} from './mock';
import {Sauce} from './sauce';

import {Config} from '../config';
import {Logger} from '../logger';

let logger = new Logger('driverProviders');

export let buildDriverProvider = (config: Config): DriverProvider => {
let driverProvider: DriverProvider;

if (config.directConnect) {
driverProvider = new Direct(config);
logWarnings('directConnect', config);
} else if (config.seleniumAddress) {
if (config.seleniumSessionId) {
driverProvider = new AttachSession(config);
logWarnings('attachSession', config);
} else {
driverProvider = new Hosted(config);
logWarnings('hosted', config);
}
} else if (config.browserstackUser && config.browserstackKey) {
driverProvider = new BrowserStack(config);
logWarnings('browserStack', config);
} else if (config.sauceUser && config.sauceKey) {
driverProvider = new Sauce(config);
logWarnings('sauce', config);
} else if (config.seleniumServerJar) {
driverProvider = new Local(config);
logWarnings('local', config);
} else if (config.mockSelenium) {
driverProvider = new Mock(config);
logWarnings('mock', config);
} else {
driverProvider = new Local(config);
logWarnings('local', config);
}
return driverProvider;
};

export let logWarnings = (providerType: string, config: Config): void => {

let warnInto = 'Using driver provider ' + providerType +
', but also found extra driver provider parameter(s): ';
let warnList: string[] = [];
if ('directConnect' !== providerType && config.directConnect) {
warnList.push('directConnect');
}
if ('attachSession' !== providerType && 'hosted' !== providerType && config.seleniumAddress) {
warnList.push('seleniumAddress');
}
if ('attachSession' !== providerType && config.seleniumSessionId) {
warnList.push('seleniumSessionId');
}
if ('browserStack' !== providerType && config.browserstackUser) {
warnList.push('browserstackUser');
}
if ('browserStack' !== providerType && config.browserstackKey) {
warnList.push('browserstackKey');
}
if ('sauce' !== providerType && config.sauceUser) {
warnList.push('sauceUser');
}
if ('sauce' !== providerType && config.sauceKey) {
warnList.push('sauceKey');
}
if ('local' !== providerType && config.seleniumServerJar) {
warnList.push('seleniumServerJar');
}
if ('mock' !== providerType && config.mockSelenium) {
warnList.push('mockSelenium');
}
if (warnList.length !== 0) {
logger.warn(warnInto + warnList.join(', '));
}
};
22 changes: 2 additions & 20 deletions lib/runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import * as util from 'util';

import {ProtractorBrowser} from './browser';
import {Config} from './config';
import {AttachSession, BrowserStack, Direct, DriverProvider, Hosted, Local, Mock, Sauce} from './driverProviders';
import {buildDriverProvider, DriverProvider} from './driverProviders';
import {Logger} from './logger';
import {Plugins} from './plugins';
import {protractor} from './ptor';
Expand Down Expand Up @@ -99,25 +99,7 @@ export class Runner extends EventEmitter {
*/
loadDriverProvider_(config: Config) {
this.config_ = config;
if (this.config_.directConnect) {
this.driverprovider_ = new Direct(this.config_);
} else if (this.config_.seleniumAddress) {
if (this.config_.seleniumSessionId) {
this.driverprovider_ = new AttachSession(this.config_);
} else {
this.driverprovider_ = new Hosted(this.config_);
}
} else if (this.config_.browserstackUser && this.config_.browserstackKey) {
this.driverprovider_ = new BrowserStack(this.config_);
} else if (this.config_.sauceUser && this.config_.sauceKey) {
this.driverprovider_ = new Sauce(this.config_);
} else if (this.config_.seleniumServerJar) {
this.driverprovider_ = new Local(this.config_);
} else if (this.config_.mockSelenium) {
this.driverprovider_ = new Mock(this.config_);
} else {
this.driverprovider_ = new Local(this.config_);
}
this.driverprovider_ = buildDriverProvider(this.config_);
}

/**
Expand Down

0 comments on commit ca4f1ac

Please sign in to comment.