@@ -4,7 +4,6 @@ import { Options, Local } from 'browserstack-local';
44import { Builder , WebDriver } from 'selenium-webdriver' ;
55import { randomBytes } from 'crypto' ;
66import { Script } from 'vm' ;
7- import merge from 'lodash.merge' ;
87
98import { BrowserstackCapabilities } from './types' ;
109
@@ -53,6 +52,8 @@ export default class BrowserstackEnvironment extends NodeEnvironment {
5352 this . localIdentifier = opts . localIdentifier ;
5453 }
5554
55+ this . btCapabilities [ 'bstack:options' ] . localIdentifier = this . localIdentifier ;
56+
5657 this . btTunnelOpts = localTesting ;
5758 }
5859
@@ -90,7 +91,19 @@ export default class BrowserstackEnvironment extends NodeEnvironment {
9091 }
9192
9293 private async createWDDriver ( capabilities ?: BrowserstackCapabilities ) : Promise < WebDriver > {
93- const driverFactory = new Builder ( ) . usingServer ( this . selHubUrl ) . withCapabilities ( merge ( this . btCapabilities , capabilities ) ) ;
94+ // checks if we have new capabilities
95+ if ( capabilities ) {
96+ // define username + accessKey + tunnelIdentifier if any
97+ capabilities [ 'bstack:options' ] . userName = this . btCapabilities [ 'bstack:options' ] . userName ;
98+ capabilities [ 'bstack:options' ] . accessKey = this . btCapabilities [ 'bstack:options' ] . accessKey ;
99+
100+ if ( this . localIdentifier ) {
101+ capabilities [ 'bstack:options' ] . localIdentifier = this . btCapabilities [ 'bstack:options' ] . localIdentifier ;
102+ }
103+ }
104+
105+ const driverFactory = new Builder ( ) . usingServer ( this . selHubUrl ) . withCapabilities ( capabilities || this . btCapabilities ) ;
106+
94107 const driver = await driverFactory . build ( ) ;
95108
96109 this . drivers . push ( driver ) ;
0 commit comments