@@ -78,14 +78,17 @@ const {
7878const { isTurboScaleSession, getTurboScaleGridDetails, patchCypressConfigFileContent, atsFileCleanup } = require ( '../helpers/atsHelper' ) ;
7979const { shouldProcessEventForTesthub, checkAndSetAccessibility, findAvailablePort } = require ( '../testhub/utils' ) ;
8080const TestHubHandler = require ( '../testhub/testhubHandler' ) ;
81+ const testObservabilityConstants = require ( '../testObservability/helper/constants' ) ;
8182
8283// Helper function to check accessibility auto-enable status via separate API call
8384const checkAccessibilityAutoEnableStatus = async ( bsConfig , buildId ) => {
8485 try {
8586 logToServer ( `Aakash CBT checkAccessibilityAutoEnableStatus - Starting API call for buildId: ${ buildId } ` ) ;
8687
8788 const axios = require ( 'axios' ) ;
88- const url = `${ config . rails_host } /automate/cypress/v1/builds/${ buildId } /accessibility-status` ;
89+ // Use the same Test Observability API endpoint as C# SDK - get build details
90+ // This mimics the C# SDK approach where build creation response contains accessibility info
91+ const url = `${ testObservabilityConstants . API_URL } /api/v2/builds/${ buildId } ` ;
8992
9093 const requestOptions = {
9194 url : url ,
@@ -98,7 +101,7 @@ const checkAccessibilityAutoEnableStatus = async (bsConfig, buildId) => {
98101 timeout : 10000
99102 } ;
100103
101- logToServer ( `Aakash CBT checkAccessibilityAutoEnableStatus - Making request to: ${ url } ` ) ;
104+ logToServer ( `Aakash CBT checkAccessibilityAutoEnableStatus - Making request to Test Observability API : ${ url } ` ) ;
102105
103106 const response = await axios ( requestOptions ) ;
104107
@@ -124,12 +127,41 @@ const processAccessibilityStatusResponse = (bsConfig, statusResponse) => {
124127 try {
125128 logToServer ( `Aakash CBT processAccessibilityStatusResponse - Processing status response: ${ JSON . stringify ( statusResponse , null , 2 ) } ` ) ;
126129
127- // Check if the status response indicates accessibility should be auto-enabled
130+ // Check multiple possible response formats from Test Observability API
131+ // Format 1: Direct accessibility object
132+ if ( statusResponse && statusResponse . accessibility ) {
133+ if ( statusResponse . accessibility . auto_enable === true ||
134+ statusResponse . accessibility . enabled === true ||
135+ statusResponse . accessibility . success === true ) {
136+
137+ logToServer ( `Aakash CBT processAccessibilityStatusResponse - Auto-enabling accessibility based on status API (accessibility object)` ) ;
138+
139+ bsConfig . run_settings . accessibility = true ;
140+ process . env . BROWSERSTACK_TEST_ACCESSIBILITY = 'true' ;
141+
142+ if ( ! bsConfig . run_settings . system_env_vars ) {
143+ bsConfig . run_settings . system_env_vars = [ ] ;
144+ }
145+
146+ // Remove existing accessibility env var if present
147+ bsConfig . run_settings . system_env_vars = bsConfig . run_settings . system_env_vars . filter (
148+ envVar => ! envVar . startsWith ( 'BROWSERSTACK_TEST_ACCESSIBILITY=' )
149+ ) ;
150+
151+ // Add the accessibility setting
152+ bsConfig . run_settings . system_env_vars . push ( `BROWSERSTACK_TEST_ACCESSIBILITY=true` ) ;
153+
154+ logToServer ( `Aakash CBT processAccessibilityStatusResponse - Successfully auto-enabled accessibility via status API` ) ;
155+ return true ;
156+ }
157+ }
158+
159+ // Format 2: Check if response contains accessibility enablement flag at root level
128160 if ( statusResponse &&
129- statusResponse . accessibility &&
130- ( statusResponse . accessibility . auto_enable === true || statusResponse . accessibility . enabled === true ) ) {
161+ ( statusResponse . auto_enable_accessibility === true ||
162+ statusResponse . accessibility_enabled === true ) ) {
131163
132- logToServer ( `Aakash CBT processAccessibilityStatusResponse - Auto-enabling accessibility based on status API` ) ;
164+ logToServer ( `Aakash CBT processAccessibilityStatusResponse - Auto-enabling accessibility based on status API (root level flags) ` ) ;
133165
134166 bsConfig . run_settings . accessibility = true ;
135167 process . env . BROWSERSTACK_TEST_ACCESSIBILITY = 'true' ;
@@ -150,7 +182,7 @@ const processAccessibilityStatusResponse = (bsConfig, statusResponse) => {
150182 return true ;
151183 }
152184
153- logToServer ( `Aakash CBT processAccessibilityStatusResponse - No auto-enable from status API: auto_enable= ${ statusResponse ?. accessibility ?. auto_enable } , enabled= ${ statusResponse ?. accessibility ?. enabled } ` ) ;
185+ logToServer ( `Aakash CBT processAccessibilityStatusResponse - No auto-enable from status API: no matching flags found ` ) ;
154186 return false ;
155187
156188 } catch ( error ) {
0 commit comments