Skip to content

Commit a9f2415

Browse files
Ankit098francisf
authored andcommitted
add: utility methods to get service and webdriverio versions
1 parent 9347a8a commit a9f2415

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/util.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import type { Capabilities } from '@wdio/types'
33

44
import { BROWSER_DESCRIPTION } from './constants'
55

6+
// @ts-ignore
7+
import { version } from '../package.json'
8+
69
/**
710
* get browser description for Browserstack service
811
* @param cap browser capablities
@@ -58,3 +61,41 @@ export function getParentSuiteName(fullTitle: string, testSuiteTitle: string): s
5861
}
5962
return parentSuiteName.trim()
6063
}
64+
65+
// returns the webdriverIO version being used
66+
export function getWebdriverIOVersion(): any {
67+
let webdriverIOVersion: any = undefined;
68+
// process.env.npm_package_json returns the path of the package.json file
69+
const packageFile: any = process.env.npm_package_json;
70+
if (packageFile !== undefined) {
71+
// try to get the webdriverIO version from the dependencies
72+
const { devDependencies, dependencies } = require(packageFile);
73+
if (devDependencies !== undefined) {
74+
webdriverIOVersion = devDependencies['webdriverio']
75+
}
76+
if (dependencies !== undefined) {
77+
webdriverIOVersion = dependencies['webdriverio']
78+
}
79+
} else {
80+
// for node version > 12 process.env.npm_package_json is undefined
81+
// we directly have access to the dependencies, using that here
82+
webdriverIOVersion = process.env.npm_package_dependencies_webdriverio;
83+
if (webdriverIOVersion === undefined) {
84+
webdriverIOVersion = process.env.npm_package_devDependencies_webdriverio;
85+
}
86+
}
87+
if (webdriverIOVersion !== undefined) {
88+
// calculate the major version of the webdriverio package
89+
webdriverIOVersion = webdriverIOVersion.split('.')[0];
90+
if (webdriverIOVersion[0] === '^') {
91+
webdriverIOVersion = webdriverIOVersion.substring(1);
92+
}
93+
webdriverIOVersion = parseInt(webdriverIOVersion);
94+
}
95+
return webdriverIOVersion;
96+
}
97+
98+
// import the version from package.json file and return it
99+
export function getBrowserstackWdioServiceVersion(): string {
100+
return version;
101+
}

0 commit comments

Comments
 (0)