@@ -3,6 +3,9 @@ import type { Capabilities } from '@wdio/types'
3
3
4
4
import { BROWSER_DESCRIPTION } from './constants'
5
5
6
+ // @ts -ignore
7
+ import { version } from '../package.json'
8
+
6
9
/**
7
10
* get browser description for Browserstack service
8
11
* @param cap browser capablities
@@ -58,3 +61,41 @@ export function getParentSuiteName(fullTitle: string, testSuiteTitle: string): s
58
61
}
59
62
return parentSuiteName . trim ( )
60
63
}
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