@@ -32,8 +32,33 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
32
32
if ( Array . isArray ( capabilities ) ) {
33
33
capabilities . forEach ( ( capability : Capabilities . DesiredCapabilities | any ) => {
34
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
57
if ( capability [ 'bstack:options' ] ) {
36
58
capability [ 'bstack:options' ] . wdioService = wdioServiceVersion ;
59
+ } else if ( webdriverIOVersion >= 7 ) {
60
+ capability [ 'bstack:options' ] = { } ;
61
+ capability [ 'bstack:options' ] . wdioService = wdioServiceVersion ;
37
62
} else {
38
63
capability [ 'browserstack.wdioService' ] = wdioServiceVersion ;
39
64
}
0 commit comments