Skip to content

Commit ab6ac5d

Browse files
api call change
1 parent 2598d30 commit ab6ac5d

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

bin/commands/runs.js

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,17 @@ const {
7878
const { isTurboScaleSession, getTurboScaleGridDetails, patchCypressConfigFileContent, atsFileCleanup } = require('../helpers/atsHelper');
7979
const { shouldProcessEventForTesthub, checkAndSetAccessibility, findAvailablePort } = require('../testhub/utils');
8080
const 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
8384
const 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

Comments
 (0)