@@ -18,10 +18,12 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
18
18
browserstackLocal ?: BrowserstackLocal
19
19
20
20
constructor (
21
- private _options : BrowserstackConfig ,
21
+ private _options : BrowserstackConfig | any ,
22
22
capabilities : Capabilities . RemoteCapability ,
23
- private _config : Options . Testrunner
24
- ) { }
23
+ private _config : Options . Testrunner | any
24
+ ) {
25
+ this . _config || ( this . _config = _options )
26
+ }
25
27
26
28
onPrepare ( config ?: Options . Testrunner , capabilities ?: Capabilities . RemoteCapabilities ) {
27
29
if ( ! this . _options . browserstackLocal ) {
@@ -30,26 +32,27 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
30
32
31
33
const opts = {
32
34
key : this . _config . key ,
33
- forcelocal : true ,
34
- onlyAutomate : true ,
35
+ forcelocal : this . _config . services [ 0 ] [ 1 ] ? this . _config . services [ 0 ] [ 1 ] . forcelocal : false ,
35
36
...this . _options . opts
36
37
}
37
38
38
39
this . browserstackLocal = new BrowserstackLocalLauncher . Local ( )
39
40
40
41
if ( Array . isArray ( capabilities ) ) {
41
42
capabilities . forEach ( ( capability : Capabilities . DesiredCapabilities ) => {
42
- if ( ! capability [ 'bstack:options' ] ) {
43
- capability [ 'bstack:options' ] = { }
43
+ if ( capability [ 'bstack:options' ] ) {
44
+ capability [ 'bstack:options' ] . local = true
45
+ } else {
46
+ capability [ 'browserstack.local' ] = true
44
47
}
45
- capability [ 'bstack:options' ] . local = true
46
48
} )
47
49
} else if ( typeof capabilities === 'object' ) {
48
50
Object . entries ( capabilities as Capabilities . MultiRemoteCapabilities ) . forEach ( ( [ , caps ] ) => {
49
- if ( ! ( caps . capabilities as Capabilities . Capabilities ) [ 'bstack:options' ] ) {
50
- ( caps . capabilities as Capabilities . Capabilities ) [ 'bstack:options' ] = { }
51
+ if ( ( caps . capabilities as Capabilities . Capabilities ) [ 'bstack:options' ] ) {
52
+ ( caps . capabilities as Capabilities . Capabilities ) [ 'bstack:options' ] ! . local = true
53
+ } else {
54
+ ( caps . capabilities as Capabilities . Capabilities ) [ 'browserstack.local' ] = true
51
55
}
52
- ( caps . capabilities as Capabilities . Capabilities ) [ 'bstack:options' ] ! . local = true
53
56
} )
54
57
} else {
55
58
throw TypeError ( 'Capabilities should be an object or Array!' )
0 commit comments