Skip to content
This repository has been archived by the owner on Aug 3, 2023. It is now read-only.

Commit

Permalink
don't pollute wdio caps with chromedriver options - fixes #202
Browse files Browse the repository at this point in the history
  • Loading branch information
christian-bromann committed Feb 14, 2023
1 parent fcc9f36 commit 34e2be7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 14 deletions.
11 changes: 6 additions & 5 deletions src/launcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,27 @@ const isMultiremote = (obj: Capabilities.Capabilities) => typeof obj === 'object
const isChrome = (cap: Capabilities.Capabilities) => cap.browserName && cap.browserName.toLowerCase() === 'chrome'

export default class ChromeDriverLauncher {
protected options: { protocol: 'http' | 'https', hostname: string, port: number, path: string, pollTimeout: number }
protected options: { protocol: 'http' | 'https', hostname: string, port: number, path: string }
protected outputDir?: string
protected logFileName: string
protected capabilities: Capabilities.Capabilities
protected args: string[]
protected chromedriverCustomPath?: string
private process?: ChildProcessWithoutNullStreams
#pollTimeout: number

constructor(
options: ServiceOptions,
capabilities: Capabilities.Capabilities,
config: Options.Testrunner
) {
log.info(`Initiate Chromedriver Launcher (v${pkg.version})`)
this.#pollTimeout = options.pollTimeout || DEFAULT_POLL_TIMEOUT
this.options = {
protocol: options.protocol || DEFAULT_CONNECTION.protocol,
hostname: options.hostname || DEFAULT_CONNECTION.hostname,
port: options.port || DEFAULT_CONNECTION.port,
path: options.path || DEFAULT_CONNECTION.path,
pollTimeout: options.pollTimeout || DEFAULT_POLL_TIMEOUT
path: options.path || DEFAULT_CONNECTION.path
}

this.outputDir = options.outputDir || config.outputDir
Expand Down Expand Up @@ -90,7 +91,7 @@ export default class ChromeDriverLauncher {
* wait for port to be available before starting Chromedriver
*/
try {
await tcpPortUsed.waitUntilFree(this.options.port, POLL_INTERVAL, this.options.pollTimeout)
await tcpPortUsed.waitUntilFree(this.options.port, POLL_INTERVAL, this.#pollTimeout)
} catch (err) {
throw new SevereServiceError(
`Couldn't start Chromedriver: ${err.message}\n` +
Expand All @@ -108,7 +109,7 @@ export default class ChromeDriverLauncher {
}

try {
await tcpPortUsed.waitUntilUsed(this.options.port, POLL_INTERVAL, this.options.pollTimeout)
await tcpPortUsed.waitUntilUsed(this.options.port, POLL_INTERVAL, this.#pollTimeout)
} catch (err) {
throw new SevereServiceError(
`Couldn't start Chromedriver: ${err.message}\n` +
Expand Down
10 changes: 1 addition & 9 deletions tests/launcher.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ vi.mock('child_process', () => {
let config, options, capabilities, multiremoteCaps

describe('ChromeDriverLauncher launcher', () => {

const defaultOptions = {
defaultLogFileName: 'wdio-chromedriver.log',
defaultProtocol: 'http',
Expand Down Expand Up @@ -119,7 +119,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: 'options-path'
},
{
Expand All @@ -141,7 +140,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: 7676,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath
},
{
Expand All @@ -163,7 +161,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: 'https',
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath
},
{
Expand All @@ -185,7 +182,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: 'dummy',
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath
},
{
Expand All @@ -207,7 +203,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout: 15000,
path: defaultOptions.defaultPath
},
{
Expand All @@ -228,7 +223,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath
},
{
Expand All @@ -248,7 +242,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath,
capabilities: {
browserName: 'chrome',
Expand Down Expand Up @@ -284,7 +277,6 @@ describe('ChromeDriverLauncher launcher', () => {
protocol: defaultOptions.defaultProtocol,
hostname: defaultOptions.defaultHostname,
port: defaultOptions.defaultPort,
pollTimeout:defaultOptions.defaultPollTimeOut,
path: defaultOptions.defaultPath
},
{
Expand Down

0 comments on commit 34e2be7

Please sign in to comment.