@@ -75,75 +75,9 @@ const {
7575 supportFileCleanup
7676} = require ( '../accessibility-automation/helper' ) ;
7777const { isTurboScaleSession, getTurboScaleGridDetails, patchCypressConfigFileContent, atsFileCleanup } = require ( '../helpers/atsHelper' ) ;
78- const { shouldProcessEventForTesthub, checkAndSetAccessibility , findAvailablePort } = require ( '../testhub/utils' ) ;
78+ const { shouldProcessEventForTesthub, findAvailablePort } = require ( '../testhub/utils' ) ;
7979const TestHubHandler = require ( '../testhub/testhubHandler' ) ;
8080
81- // Helper function to determine final accessibility setting matching C# SDK logic
82- const shouldAutoEnableAccessibility = ( userSetting , buildResponse ) => {
83- // If user has explicit setting (true/false), respect it
84- if ( userSetting !== null && userSetting !== undefined ) {
85- logToServer ( `[Accessibility] Using explicit user setting: ${ userSetting } ` ) ;
86- return userSetting ;
87- }
88-
89- // User setting is null - check server response for auto-enable decision
90- if ( buildResponse && buildResponse . accessibility && buildResponse . accessibility . success === true ) {
91- logToServer ( `[Accessibility] Server decided to auto-enable accessibility` ) ;
92- return true ;
93- }
94-
95- // Fallback if no server auto-enable decision
96- logToServer ( '[Accessibility] No server auto-enable decision, defaulting to false' ) ;
97- return false ;
98- } ;
99-
100- // Helper function to process accessibility response from server - matches C# SDK pattern
101- const processAccessibilityResponse = ( bsConfig , buildResponse , userAccessibilitySetting ) => {
102- logToServer ( `[Accessibility] Processing build response: ${ JSON . stringify ( buildResponse ?. accessibility || 'No accessibility in response' , null , 2 ) } ` ) ;
103-
104- // Use C# SDK logic to determine final accessibility setting
105- const finalAccessibility = shouldAutoEnableAccessibility ( userAccessibilitySetting , buildResponse ) ;
106-
107- logToServer ( `[Accessibility] Final decision: userSetting=${ userAccessibilitySetting } , serverResponse=${ buildResponse ?. accessibility ?. success } , finalAccessibility=${ finalAccessibility } ` ) ;
108-
109- // If final decision is to enable accessibility, update configuration
110- if ( finalAccessibility === true ) {
111- logger . debug ( "Accessibility enabled (user explicit or server auto-enable)" ) ;
112-
113- // Update configuration
114- bsConfig . run_settings . accessibility = true ;
115- process . env . BROWSERSTACK_TEST_ACCESSIBILITY = 'true' ;
116-
117- // Ensure system_env_vars array exists
118- if ( ! bsConfig . run_settings . system_env_vars ) {
119- bsConfig . run_settings . system_env_vars = [ ] ;
120- }
121-
122- // Remove existing accessibility env var if present to avoid duplicates
123- bsConfig . run_settings . system_env_vars = bsConfig . run_settings . system_env_vars . filter (
124- envVar => ! envVar . startsWith ( 'BROWSERSTACK_TEST_ACCESSIBILITY=' )
125- ) ;
126-
127- // Add the accessibility setting
128- bsConfig . run_settings . system_env_vars . push ( `BROWSERSTACK_TEST_ACCESSIBILITY=true` ) ;
129-
130- logToServer ( `[Accessibility] Successfully enabled accessibility` ) ;
131-
132- return true ;
133- } else if ( finalAccessibility === false ) {
134- // Explicitly set to false
135- bsConfig . run_settings . accessibility = false ;
136- process . env . BROWSERSTACK_TEST_ACCESSIBILITY = 'false' ;
137-
138- logToServer ( `[Accessibility] Accessibility set to false` ) ;
139- return false ;
140- }
141-
142- // Should not reach here with proper logic
143- logToServer ( `[Accessibility] Unexpected state: finalAccessibility=${ finalAccessibility } ` ) ;
144- return false ;
145- } ;
146-
14781module . exports = function run ( args , rawArgs ) {
14882 utils . normalizeTestReportingEnvVars ( ) ;
14983 markBlockStart ( 'preBuild' ) ;
@@ -173,78 +107,8 @@ module.exports = function run(args, rawArgs) {
173107 /* Set testObservability & browserstackAutomation flags */
174108 const [ isTestObservabilitySession , isBrowserstackInfra ] = setTestObservabilityFlags ( bsConfig ) ;
175109
176- // Log initial accessibility state
177- logToServer ( `Aakash CBT Initial Config - Before accessibility processing: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , system_env_vars=${ JSON . stringify ( bsConfig . run_settings . system_env_vars || [ ] ) } ` ) ;
178-
179- // Helper functions to match C# SDK logic for accessibility auto-enable
180- const getUserAccessibilitySetting = ( bsConfig ) => {
181- logToServer ( `[Accessibility] Getting user setting from config:` , {
182- runSettings : bsConfig . run_settings . accessibility ,
183- environment : process . env . BROWSERSTACK_TEST_ACCESSIBILITY
184- } ) ;
185-
186- // Priority order: run_settings.accessibility > environment variable > null (let server decide)
187-
188- // Check run_settings.accessibility first
189- if ( bsConfig . run_settings . accessibility !== undefined && bsConfig . run_settings . accessibility !== null ) {
190- logToServer ( `[Accessibility] Using run_settings setting: ${ bsConfig . run_settings . accessibility } ` ) ;
191- return bsConfig . run_settings . accessibility ;
192- }
193-
194- // Check environment variable
195- if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY === 'true' ) {
196- logToServer ( '[Accessibility] Using environment variable setting: true' ) ;
197- return true ;
198- }
199-
200- if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY === 'false' ) {
201- logToServer ( '[Accessibility] Using environment variable setting: false' ) ;
202- return false ;
203- }
204-
205- // Return null to let server decide (matches C# SDK behavior)
206- logToServer ( '[Accessibility] No explicit setting found, returning null for server decision' ) ;
207- return null ;
208- } ;
209-
210- const shouldAutoEnableAccessibility = ( userSetting , buildResponse ) => {
211- // If user has explicit setting (true/false), respect it
212- if ( userSetting !== null && userSetting !== undefined ) {
213- logToServer ( `[Accessibility] Using explicit user setting: ${ userSetting } ` ) ;
214- return userSetting ;
215- }
216-
217- // User setting is null - check server response for auto-enable decision
218- if ( buildResponse && buildResponse . accessibility && buildResponse . accessibility . success === true ) {
219- logToServer ( `[Accessibility] Server decided to auto-enable accessibility` ) ;
220- return true ;
221- }
222-
223- // Fallback if no server decision available
224- logToServer ( '[Accessibility] No server auto-enable decision, defaulting to false' ) ;
225- return false ;
226- } ;
227-
228- // Get user's explicit accessibility setting (null means let server decide)
229- const userAccessibilitySetting = getUserAccessibilitySetting ( bsConfig ) ;
230-
231- // Set initial accessibility value based on user setting (null if not explicitly set)
232- if ( userAccessibilitySetting !== null ) {
233- bsConfig . run_settings . accessibility = userAccessibilitySetting ;
234- logToServer ( `[Accessibility] Set initial accessibility to user setting: ${ userAccessibilitySetting } ` ) ;
235- } else {
236- // Keep accessibility as null to let server decide
237- bsConfig . run_settings . accessibility = null ;
238- logToServer ( `[Accessibility] Keeping accessibility as null for server decision` ) ;
239- }
240-
241- if ( bsConfig . run_settings . accessibility === true ) {
242- logger . debug ( "Accessibility explicitly enabled by user" ) ;
243- } else if ( bsConfig . run_settings . accessibility === false ) {
244- logger . debug ( "Accessibility explicitly disabled by user" ) ;
245- } else {
246- logger . debug ( "Accessibility setting is null - will be decided by server response" ) ;
247- }
110+ // Log initial accessibility state before TestHub processing
111+ logToServer ( `[Accessibility] Initial config state: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , env=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } ` ) ;
248112
249113 const turboScaleSession = isTurboScaleSession ( bsConfig ) ;
250114 Constants . turboScaleObj . enabled = turboScaleSession ;
@@ -289,16 +153,8 @@ module.exports = function run(args, rawArgs) {
289153 // set build tag caps
290154 utils . setBuildTags ( bsConfig , args ) ;
291155
292- // Only call checkAndSetAccessibility if user has explicit setting
293- if ( userAccessibilitySetting !== null ) {
294- checkAndSetAccessibility ( bsConfig , userAccessibilitySetting ) ;
295- logToServer ( `[Accessibility] Called checkAndSetAccessibility with explicit user setting: ${ userAccessibilitySetting } ` ) ;
296- } else {
297- logToServer ( `[Accessibility] Skipping checkAndSetAccessibility - accessibility is null for server decision` ) ;
298- }
299-
300- // Log accessibility state after checkAndSetAccessibility
301- logToServer ( `Aakash CBT After checkAndSetAccessibility - Final accessibility state: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , BROWSERSTACK_TEST_ACCESSIBILITY=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } , system_env_vars=${ JSON . stringify ( bsConfig . run_settings . system_env_vars || [ ] ) } ` ) ;
156+ // Log accessibility state before TestHub processing
157+ logToServer ( `[Accessibility] Before TestHub: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , env=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } ` ) ;
302158
303159 const preferredPort = 5348 ;
304160 const port = await findAvailablePort ( preferredPort ) ;
@@ -308,6 +164,9 @@ module.exports = function run(args, rawArgs) {
308164 if ( shouldProcessEventForTesthub ( ) ) {
309165 await TestHubHandler . launchBuild ( bsConfig , bsConfigPath ) ;
310166 utils . setO11yProcessHooks ( null , bsConfig , args , null , buildReportData ) ;
167+
168+ // Log accessibility state after TestHub processing (which handles auto-enable)
169+ logToServer ( `[Accessibility] After TestHub processing: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , env=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } ` ) ;
311170 }
312171
313172 // accept the system env list from bsconf and set it
@@ -509,15 +368,6 @@ module.exports = function run(args, rawArgs) {
509368 markBlockEnd ( 'createBuild' ) ;
510369 markBlockEnd ( 'total' ) ;
511370
512- // Process accessibility response from server - matches C# SDK logic
513- const accessibilityAutoEnabled = processAccessibilityResponse ( bsConfig , data , userAccessibilitySetting ) ;
514- if ( accessibilityAutoEnabled ) {
515- logger . info ( "Accessibility has been auto-enabled based on server response" ) ;
516- }
517-
518- // Log final accessibility state after server response processing
519- logToServer ( `Aakash CBT Final Build State - After server response processing: bsConfig.run_settings.accessibility=${ bsConfig . run_settings . accessibility } , BROWSERSTACK_TEST_ACCESSIBILITY=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } , accessibilityAutoEnabled=${ accessibilityAutoEnabled } ` ) ;
520-
521371 utils . setProcessHooks ( data . build_id , bsConfig , bs_local , args , buildReportData ) ;
522372 if ( isTestObservabilitySession ) {
523373 utils . setO11yProcessHooks ( data . build_id , bsConfig , bs_local , args , buildReportData ) ;
0 commit comments