@@ -8,6 +8,8 @@ import * as utils from '../src/util.js'
88import InsightsHandler from '../src/insights-handler.js'
99import { BrowserstackCLI } from '../src/cli/index.js'
1010import * as bstackLogger from '../src/bstackLogger.js'
11+ import AutomationFramework from '../src/cli/frameworks/automationFramework.js'
12+ import { AutomationFrameworkConstants } from '../src/cli/frameworks/constants/automationFrameworkConstants.js'
1113
1214const jasmineSuiteTitle = 'Jasmine__TopLevel__Suite'
1315const sessionBaseUrl = 'https://api.browserstack.com/automate/sessions'
@@ -206,6 +208,39 @@ describe('onReload()', () => {
206208 } )
207209 expect ( service [ '_suiteTitle' ] ) . toEqual ( 'my suite title' )
208210 } )
211+
212+ it ( 'should update framework session id on tracked instance when CLI is running' , async ( ) => {
213+ const getInstanceSpy = vi . spyOn ( BrowserstackCLI , 'getInstance' ) . mockReturnValue ( { isRunning : ( ) => true } as any )
214+ const trackedInstance = { } as any
215+ const getTrackedInstanceSpy = vi . spyOn ( AutomationFramework , 'getTrackedInstance' ) . mockReturnValue ( trackedInstance )
216+ const setStateSpy = vi . spyOn ( AutomationFramework , 'setState' ) . mockImplementation ( ( ) => { } )
217+ const updateSpy = vi . spyOn ( service , '_update' ) . mockResolvedValue ( undefined as any )
218+ const printSpy = vi . spyOn ( service , '_printSessionURL' ) . mockResolvedValue ( undefined as any )
219+ service [ '_browser' ] = browser
220+
221+ await service . onReload ( '1' , '2' )
222+ expect ( setStateSpy ) . toHaveBeenCalledWith ( trackedInstance , AutomationFrameworkConstants . KEY_FRAMEWORK_SESSION_ID , '2' )
223+
224+ getInstanceSpy . mockRestore ( )
225+ getTrackedInstanceSpy . mockRestore ( )
226+ setStateSpy . mockRestore ( )
227+ updateSpy . mockRestore ( )
228+ printSpy . mockRestore ( )
229+ } )
230+
231+ it ( 'should not update framework session id when CLI is not running' , async ( ) => {
232+ const setStateSpy = vi . spyOn ( AutomationFramework , 'setState' ) . mockImplementation ( ( ) => { } )
233+ const updateSpy = vi . spyOn ( service , '_update' ) . mockResolvedValue ( undefined as any )
234+ const printSpy = vi . spyOn ( service , '_printSessionURL' ) . mockResolvedValue ( undefined as any )
235+ service [ '_browser' ] = browser
236+
237+ await service . onReload ( '1' , '2' )
238+ expect ( setStateSpy ) . not . toHaveBeenCalled ( )
239+
240+ setStateSpy . mockRestore ( )
241+ updateSpy . mockRestore ( )
242+ printSpy . mockRestore ( )
243+ } )
209244} )
210245
211246describe ( 'beforeSession' , ( ) => {
0 commit comments