Skip to content

Commit f3c8314

Browse files
Ankit098francisf
authored andcommitted
chore: refactor code for adding wdioService cap
1 parent a9f2415 commit f3c8314

File tree

1 file changed

+7
-23
lines changed

1 file changed

+7
-23
lines changed

src/launcher.ts

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import logger from '@wdio/logger'
66
import type { Capabilities, Services, Options } from '@wdio/types'
77

88
import { BrowserstackConfig } from './types'
9+
import { getWebdriverIOVersion, getBrowserstackWdioServiceVersion } from './util'
910

1011
// @ts-ignore
1112
import { version } from '../package.json'
@@ -31,35 +32,18 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
3132
onPrepare (config?: Options.Testrunner, capabilities?: Capabilities.RemoteCapabilities) {
3233
if (Array.isArray(capabilities)) {
3334
capabilities.forEach((capability: Capabilities.DesiredCapabilities | any) => {
34-
const wdioServiceVersion = version;
35-
let webdriverIOVersion: any = undefined;
36-
const packageFile: any = process.env.npm_package_json;
37-
if (packageFile !== undefined) {
38-
const { devDependencies, dependencies } = require(packageFile);
39-
if (devDependencies !== undefined) {
40-
webdriverIOVersion = devDependencies['webdriverio']
41-
} else if (dependencies !== undefined) {
42-
webdriverIOVersion = dependencies['webdriverio']
43-
}
44-
} else {
45-
webdriverIOVersion = process.env.npm_package_dependencies_webdriverio;
46-
if (webdriverIOVersion === undefined) {
47-
webdriverIOVersion = process.env.npm_package_devDependencies_webdriverio;
48-
}
49-
}
50-
if (webdriverIOVersion !== undefined) {
51-
webdriverIOVersion = webdriverIOVersion.split('.')[0];
52-
if (webdriverIOVersion[0] === '^') {
53-
webdriverIOVersion = webdriverIOVersion.substring(1);
54-
}
55-
webdriverIOVersion = parseInt(webdriverIOVersion);
56-
}
35+
const wdioServiceVersion: string = getBrowserstackWdioServiceVersion();
36+
const webdriverIOVersion: any = getWebdriverIOVersion();
5737
if (capability['bstack:options']) {
38+
// if bstack:options present add wdioService inside it
5839
capability['bstack:options'].wdioService = wdioServiceVersion;
5940
} else if (webdriverIOVersion >= 7) {
41+
// in case of webdriver version 7 we need to add wdioService inside bstack:options,
42+
// so need to add bstack:options key first
6043
capability['bstack:options'] = {};
6144
capability['bstack:options'].wdioService = wdioServiceVersion;
6245
} else {
46+
// on webdriver 6 and below can directly add at root level
6347
capability['browserstack.wdioService'] = wdioServiceVersion;
6448
}
6549
})

0 commit comments

Comments
 (0)