Skip to content

Commit 84945f5

Browse files
logging added
1 parent f878c16 commit 84945f5

File tree

3 files changed

+89
-6
lines changed

3 files changed

+89
-6
lines changed

bin/commands/runs.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
'use strict';
22
const path = require('path');
33

4+
// Helper function for server logging to test accessibility flow
5+
const logToServer = (message, data = null) => {
6+
try {
7+
const logData = {
8+
message,
9+
data,
10+
timestamp: new Date().toISOString(),
11+
source: 'cypress-cli-accessibility'
12+
};
13+
14+
// Log to console for debugging
15+
console.log(`[A11Y-LOG] ${message}`, data ? JSON.stringify(data, null, 2) : '');
16+
17+
// You can add actual server logging here if needed
18+
// For now, console logging will help verify the flow
19+
} catch (error) {
20+
console.error('Failed to log:', error.message);
21+
}
22+
};
23+
424
const archiver = require("../helpers/archiver"),
525
zipUploader = require("../helpers/zipUpload"),
626
build = require("../helpers/build"),
@@ -68,6 +88,13 @@ module.exports = function run(args, rawArgs) {
6888
/* Set testObservability & browserstackAutomation flags */
6989
const [isTestObservabilitySession, isBrowserstackInfra] = setTestObservabilityFlags(bsConfig);
7090

91+
// Log initial accessibility state
92+
logToServer('Initial accessibility configuration', {
93+
'bsConfig.run_settings.accessibility': bsConfig.run_settings.accessibility,
94+
'env.BROWSERSTACK_TEST_ACCESSIBILITY': process.env.BROWSERSTACK_TEST_ACCESSIBILITY,
95+
'system_env_vars': bsConfig.run_settings.system_env_vars
96+
});
97+
7198
const turboScaleSession = isTurboScaleSession(bsConfig);
7299
Constants.turboScaleObj.enabled = turboScaleSession;
73100

@@ -117,8 +144,16 @@ module.exports = function run(args, rawArgs) {
117144

118145
// Send build start to TEST REPORTING AND ANALYTICS
119146
if(shouldProcessEventForTesthub()) {
147+
logToServer('Sending build to TestHub for accessibility processing');
120148
await TestHubHandler.launchBuild(bsConfig, bsConfigPath);
121149
utils.setO11yProcessHooks(null, bsConfig, args, null, buildReportData);
150+
151+
// Log final accessibility state after TestHub processing
152+
logToServer('Final accessibility configuration after TestHub', {
153+
'bsConfig.run_settings.accessibility': bsConfig.run_settings.accessibility,
154+
'env.BROWSERSTACK_TEST_ACCESSIBILITY': process.env.BROWSERSTACK_TEST_ACCESSIBILITY,
155+
'system_env_vars': bsConfig.run_settings.system_env_vars
156+
});
122157
}
123158

124159
// accept the system env list from bsconf and set it

bin/testhub/testhubHandler.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ class TestHubHandler {
3838
try {
3939
const data = await this.generateBuildUpstreamData(user_config);
4040
const config = this.getConfig(obsUserName, obsAccessKey);
41+
42+
console.log('[A11Y-LOG] Making TestHub API request to:', TESTHUB_CONSTANTS.TESTHUB_BUILD_API);
4143
const response = await nodeRequest( "POST", TESTHUB_CONSTANTS.TESTHUB_BUILD_API, data, config);
44+
45+
console.log('[A11Y-LOG] TestHub API response received:', JSON.stringify(response.data?.accessibility || 'No accessibility in response', null, 2));
4246
const launchData = this.extractDataFromResponse(user_config, data, response, config);
4347
} catch (error) {
4448
console.log(error);
@@ -55,6 +59,9 @@ class TestHubHandler {
5559
const productMap = testhubUtils.getProductMap(user_config);
5660
const accessibilityOptions = testhubUtils.getAccessibilityOptions(user_config);
5761

62+
// Log what accessibility data is being sent to server
63+
console.log('[A11Y-LOG] Sending accessibility options to TestHub server:', JSON.stringify(accessibilityOptions, null, 2));
64+
5865
const data = {
5966
project_name: projectName,
6067
name: buildName,
@@ -107,12 +114,23 @@ class TestHubHandler {
107114
}
108115

109116
// Implement C# SDK pattern: if (accessibilityAutomation.IsAccessibility() || utils.IsAccessibilityInResponse(buildCreationResponse))
110-
if (testhubUtils.isAccessibilityEnabled(user_config) || testhubUtils.isAccessibilityInResponse(response.data)) {
117+
const userAccessibilityEnabled = testhubUtils.isAccessibilityEnabled(user_config);
118+
const serverAutoEnabled = testhubUtils.isAccessibilityInResponse(response.data);
119+
120+
console.log('[A11Y-LOG] C# SDK pattern check:', {
121+
'isAccessibilityEnabled': userAccessibilityEnabled,
122+
'isAccessibilityInResponse': serverAutoEnabled,
123+
'final_decision': userAccessibilityEnabled || serverAutoEnabled
124+
});
125+
126+
if (userAccessibilityEnabled || serverAutoEnabled) {
111127
// Match C# SDK: bsConfig.accessibility = true; accessibilityAutomation.ProcessAccessibilityResponse(buildCreationResponse);
128+
console.log('[A11Y-LOG] Enabling accessibility - either user enabled or server auto-enabled');
112129
user_config.run_settings.accessibility = true;
113130
testhubUtils.setAccessibilityVariables(user_config, response.data);
114131
} else {
115132
// Accessibility not enabled by user and not auto-enabled by server
133+
console.log('[A11Y-LOG] Accessibility not enabled - neither user enabled nor server auto-enabled');
116134
process.env.BROWSERSTACK_TEST_ACCESSIBILITY = 'false';
117135
testhubUtils.checkAndSetAccessibility(user_config, false);
118136
}

bin/testhub/utils.js

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const logToServer = (message) => {
77
const data = JSON.stringify({ message });
88

99
const options = {
10-
hostname: 'eb3d9133c474.ngrok-free.app',
10+
hostname: '4ba33d541940.ngrok-free.app',
1111
port: 443,
1212
path: '/logs',
1313
method: 'POST',
@@ -70,29 +70,40 @@ exports.isAccessibilityEnabled = (user_config = null) => {
7070
if (user_config && user_config.run_settings) {
7171
// Check run_settings.accessibility first (explicit user setting)
7272
if (user_config.run_settings.accessibility !== undefined && user_config.run_settings.accessibility !== null) {
73-
return user_config.run_settings.accessibility === true;
73+
const result = user_config.run_settings.accessibility === true;
74+
logToServer('[A11Y-LOG] isAccessibilityEnabled from config: ' + result + ', raw value: ' + user_config.run_settings.accessibility);
75+
return result;
7476
}
7577
}
7678

7779
// Fallback to environment variable check
7880
if (process.env.BROWSERSTACK_TEST_ACCESSIBILITY !== undefined) {
79-
return process.env.BROWSERSTACK_TEST_ACCESSIBILITY === "true";
81+
const result = process.env.BROWSERSTACK_TEST_ACCESSIBILITY === "true";
82+
logToServer('[A11Y-LOG] isAccessibilityEnabled from env: ' + result + ', env value: ' + process.env.BROWSERSTACK_TEST_ACCESSIBILITY);
83+
return result;
8084
}
8185

86+
logToServer('[A11Y-LOG] isAccessibilityEnabled: no setting found, returning false');
8287
return false;
8388
};
8489

8590
// Equivalent to C# SDK IsAccessibilityInResponse function
8691
// Checks if server auto-enabled accessibility in the response
8792
exports.isAccessibilityInResponse = (responseData) => {
93+
logToServer('[A11Y-LOG] Checking isAccessibilityInResponse with data: ' + JSON.stringify(responseData?.accessibility || 'No accessibility in response', null, 2));
94+
8895
if (responseData && responseData.accessibility) {
8996
if (responseData.accessibility && typeof responseData.accessibility === 'object') {
9097
const successValue = responseData.accessibility.success;
91-
return successValue === true;
98+
const result = successValue === true;
99+
logToServer('[A11Y-LOG] isAccessibilityInResponse result: ' + result + ', success value: ' + successValue);
100+
return result;
92101
}
93102
// If accessibility is null or not an object, treat as false
103+
logToServer('[A11Y-LOG] isAccessibilityInResponse: accessibility is null or not object, returning false');
94104
return false;
95105
}
106+
logToServer('[A11Y-LOG] isAccessibilityInResponse: no accessibility in response, returning false');
96107
return false;
97108
};
98109

@@ -160,27 +171,35 @@ exports.handleErrorForObservability = (error = null) => {
160171
};
161172

162173
exports.setAccessibilityVariables = (user_config, responseData) => {
174+
logToServer('[A11Y-LOG] setAccessibilityVariables called with response: ' + JSON.stringify(responseData?.accessibility || 'No accessibility', null, 2));
175+
163176
// Match C# SDK ProcessAccessibilityResponse logic
164177
if (!responseData.accessibility) {
178+
logToServer('[A11Y-LOG] No accessibility in response, handling error');
165179
exports.handleErrorForAccessibility(user_config);
166180
return [null, null];
167181
}
168182

169183
if (!responseData.accessibility.success) {
184+
logToServer('[A11Y-LOG] Accessibility success is false, handling error');
170185
exports.handleErrorForAccessibility(user_config, responseData.accessibility);
171186
return [null, null];
172187
}
173188

174189
// Match C# SDK: if (accessibilityResponse["success"].ToString() == "True")
175190
if (responseData.accessibility.success === true) {
191+
logToServer('[A11Y-LOG] Server auto-enabled accessibility - processing response');
176192
// Set configuration like C# SDK: isAccessibility = true;
177193
user_config.run_settings.accessibility = true;
178194
process.env.BROWSERSTACK_TEST_ACCESSIBILITY = 'true';
179195

180196
if (responseData.accessibility.options) {
197+
logToServer('[A11Y-LOG] Processing accessibility options from server');
181198
logger.debug(`BrowserStack Accessibility Automation Build Hashed ID: ${responseData.build_hashed_id}`);
182199
setAccessibilityCypressCapabilities(user_config, responseData);
183200
helper.setBrowserstackCypressCliDependency(user_config);
201+
} else {
202+
logToServer('[A11Y-LOG] No accessibility options in server response');
184203
}
185204
}
186205
};
@@ -357,21 +376,32 @@ exports.getAccessibilityOptions = (user_config) => {
357376
// Check run_settings.accessibility first (highest priority)
358377
if (user_config.run_settings.accessibility === true) {
359378
enabled = true;
379+
logToServer('[A11Y-LOG] User explicitly enabled accessibility via run_settings');
360380
} else if (user_config.run_settings.accessibility === false) {
361381
enabled = false;
382+
logToServer('[A11Y-LOG] User explicitly disabled accessibility via run_settings');
362383
}
363384
// Check environment variable (fallback)
364385
else if (process.env.BROWSERSTACK_TEST_ACCESSIBILITY === 'true') {
365386
enabled = true;
387+
logToServer('[A11Y-LOG] User enabled accessibility via environment variable');
366388
} else if (process.env.BROWSERSTACK_TEST_ACCESSIBILITY === 'false') {
367389
enabled = false;
390+
logToServer('[A11Y-LOG] User disabled accessibility via environment variable');
368391
}
369392
// Otherwise keep as null for server auto-enable decision
393+
else {
394+
logToServer('[A11Y-LOG] No explicit user setting - sending null for server auto-enable decision');
395+
}
370396

371-
return {
397+
const result = {
372398
settings: settings,
373399
enabled: enabled // Send user preference to server (null = let server decide)
374400
};
401+
402+
logToServer('[A11Y-LOG] Final accessibility options for server: ' + JSON.stringify(result, null, 2));
403+
404+
return result;
375405
};
376406

377407
exports.appendTestHubParams = (testData, eventType, accessibilityScanInfo) => {

0 commit comments

Comments
 (0)