Skip to content

Commit

Permalink
Fixes for errors (#24)
Browse files Browse the repository at this point in the history
  • Loading branch information
sriteja777 committed Jan 15, 2024
1 parent 8bd426c commit 7b61f1e
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 42 deletions.
20 changes: 11 additions & 9 deletions nightwatch/globals.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ eventHelper.eventEmitter.on(EVENTS.LOG, (loggingData) => {
const handleScreenshotUpload = async (data) => {
try {
const {args, uuid} = data;
await testObservability.createScreenshotLogEvent(uuid, args.path, Date.now());
await testObservability.createScreenshotLogEvent(uuid, args.path, Date.now());
} catch (error) {
CrashReporter.uploadCrashReport(error.message, error.stack);
}
Expand Down Expand Up @@ -102,7 +102,7 @@ module.exports = {
await worker.process.send({testCaseStartedId, uuid});
}
});
});
});

const testMetaData = {
uuid: uniqueId,
Expand Down Expand Up @@ -301,7 +301,7 @@ module.exports = {
const specs = process.env.BROWSERSTACK_RERUN_TESTS.split(',');
await helper.handleNightwatchRerun(specs);
}
}
}
} catch (error) {
Logger.error(`Could not configure or launch test observability - ${error}`);
}
Expand All @@ -313,7 +313,9 @@ module.exports = {
const [jwtToken, testRunId] = await accessibilityAutomation.createAccessibilityTestRun();
process.env.BS_A11Y_JWT = jwtToken;
process.env.BS_A11Y_TEST_RUN_ID = testRunId;
accessibilityAutomation.setAccessibilityCapabilities(settings);
if (helper.isAccessibilitySession()) {
accessibilityAutomation.setAccessibilityCapabilities(settings);
}
}
}
} catch (error) {
Expand Down Expand Up @@ -346,7 +348,7 @@ module.exports = {
} catch (error) {
Logger.error(`Exception in stop accessibility test run: ${error}`);
}

}
},

Expand All @@ -355,7 +357,7 @@ module.exports = {
browser.getAccessibilityResultsSummary = () => { return accessibilityAutomation.getAccessibilityResultsSummary() };
// await accessibilityAutomation.beforeEachExecution(browser);
},

// This will be run after each test suite is finished
async afterEach(settings) {
// await accessibilityAutomation.afterEachExecution(browser);
Expand Down Expand Up @@ -396,14 +398,14 @@ const cucumberPatcher = () => {
constructor(...args) {
super(...args);
}

startWorker(...args) {
const workerData = super.startWorker(...args);
workerList = this.workers;

return workerData;
}

parseWorkerMessage(...args) {
if ([EVENTS.LOG, EVENTS.LOG_INIT].includes(args[1]?.eventType)) {return}

Expand Down
9 changes: 5 additions & 4 deletions src/accessibilityAutomation.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ class AccessibilityAutomation {
}

if (this._settings.accessibility || this._bstackOptions) {
this._user = helper.getUserName(this._settings);
this._key = helper.getAccessKey(this._settings);
this._user = helper.getUserName(settings, this._settings);
this._key = helper.getAccessKey(settings, this._settings);
}
}

Expand Down Expand Up @@ -99,6 +99,7 @@ class AccessibilityAutomation {

return [responseData.accessibilityToken, responseData.id];
} catch (error) {
process.env.BROWSERSTACK_ACCESSIBILITY = 'false';
if (error.response) {
Logger.error(
`Exception while creating test run for BrowserStack Accessibility Automation: ${
Expand Down Expand Up @@ -316,7 +317,7 @@ class AccessibilityAutomation {
try {
const capabilityConfig = driver.desiredCapabilities || {};
const deviceName = driver.capabilities.deviceName || (capabilityConfig['bstack:options'] ? capabilityConfig['bstack:options'].deviceName : capabilityConfig.device) || '';

if (deviceName !== '') {
Logger.warn('Accessibility Automation will run only on Desktop browsers.');

Expand All @@ -334,7 +335,7 @@ class AccessibilityAutomation {

return false;
}

const chromeOptions = capabilityConfig.chromeOptions || capabilityConfig['goog:chromeOptions'] || {};
if (chromeOptions.args?.includes('--headless') || chromeOptions.args?.includes('headless')) {
Logger.warn('Accessibility Automation will not run on legacy headless mode. Switch to new headless mode or avoid using headless mode.');
Expand Down
12 changes: 9 additions & 3 deletions src/testObservability.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,16 @@ class TestObservability {
if (settings && settings.desiredCapabilities && settings.desiredCapabilities['bstack:options']) {
this._bstackOptions = settings.desiredCapabilities['bstack:options'];
}

if (this._settings.test_observability || this._bstackOptions) {
this._user = helper.getObservabilityUser(this._settings.test_observability, this._bstackOptions);
this._key = helper.getObservabilityKey(this._settings.test_observability, this._bstackOptions);
if (!this._user || !this._key) {
Logger.error('Could not start Test Observability : Missing authentication token');
process.env.BROWSERSTACK_TEST_OBSERVABILITY = 'false';

return;
}
CrashReporter.setCredentialsForCrashReportUpload(this._user, this._key);
CrashReporter.setConfigDetails(settings);
}
Expand Down Expand Up @@ -349,7 +355,7 @@ class TestObservability {
const provider = helper.getCloudProvider(testFileReport.host);
testData.integrations[provider] = helper.getIntegrationsObject(testFileReport.sessionCapabilities, testFileReport.sessionId);
}

if (eventType === 'TestRunStarted') {
testData.type = 'test';
testData.integrations = {};
Expand Down Expand Up @@ -440,7 +446,7 @@ class TestObservability {
result = 'skipped';

return false;
}
}

return true;
});
Expand Down
44 changes: 22 additions & 22 deletions src/utils/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ exports.isTestObservabilitySession = () => {
};

exports.getObservabilityUser = (config, bstackOptions={}) => {
return process.env.BROWSERSTACK_USERNAME || config.user || bstackOptions.userName;
return process.env.BROWSERSTACK_USERNAME || config?.user || bstackOptions?.userName;
};

exports.getObservabilityKey = (config, bstackOptions={}) => {
return process.env.BROWSERSTACK_ACCESS_KEY || config.key || bstackOptions.accessKey;
return process.env.BROWSERSTACK_ACCESS_KEY || config?.key || bstackOptions?.accessKey;
};

exports.isAccessibilitySession = () => {
Expand All @@ -73,7 +73,7 @@ exports.getProjectName = (options, bstackOptions={}, fromProduct={}) => {
}

return '';

};

exports.getBuildName = (options, bstackOptions={}, fromProduct={}) => {
Expand Down Expand Up @@ -218,7 +218,7 @@ exports.getCiInfo = () => {
build_number: env.APPVEYOR_BUILD_NUMBER
};
}
// Azure CI
// Azure CI
if (env.AZURE_HTTP_USER_AGENT && env.TF_BUILD) {
return {
name: 'Azure CI',
Expand Down Expand Up @@ -477,7 +477,7 @@ exports.uploadEventData = async (eventData) => {
if (process.env.BS_TESTOPS_JWT && process.env.BS_TESTOPS_JWT !== 'null') {
requestQueueHandler.pending_test_uploads += 1;
}

if (process.env.BS_TESTOPS_BUILD_COMPLETED === 'true') {
if (process.env.BS_TESTOPS_JWT === 'null') {
Logger.info(`EXCEPTION IN ${log_tag} REQUEST TO TEST OBSERVABILITY : missing authentication token`);
Expand All @@ -487,10 +487,10 @@ exports.uploadEventData = async (eventData) => {
status: 'error',
message: 'Token/buildID is undefined, build creation might have failed'
};
}
let data = eventData;
}
let data = eventData;
let event_api_url = 'api/v1/event';

requestQueueHandler.start();
const {
shouldProceed,
Expand All @@ -511,7 +511,7 @@ exports.uploadEventData = async (eventData) => {
'X-BSTACK-TESTOPS': 'true'
}
};

try {
const response = await makeRequest('POST', event_api_url, data, config);
if (response.data.error) {
Expand Down Expand Up @@ -540,8 +540,12 @@ exports.uploadEventData = async (eventData) => {
}
};

exports.getAccessKey = (settings) => {
let accessKey = null;
exports.getAccessKey = (settings, nwConfig) => {
let accessKey = process.env.BROWSERSTACK_ACCESS_KEY || nwConfig?.accessKey;
if (!this.isUndefined(accessKey)) {
return accessKey;
}

if (this.isObject(settings.desiredCapabilities)) {
if (settings.desiredCapabilities['browserstack.key']) {
accessKey = settings.desiredCapabilities['browserstack.key'];
Expand All @@ -550,15 +554,15 @@ exports.getAccessKey = (settings) => {
}
}

if (this.isUndefined(accessKey)) {
accessKey = process.env.BROWSERSTACK_ACCESS_KEY;
}

return accessKey;
};

exports.getUserName = (settings) => {
let userName = null;
exports.getUserName = (settings, nwConfig) => {
let userName = process.env.BROWSERSTACK_USERNAME || nwConfig?.userName;
if (!this.isUndefined(userName)) {
return userName;
}

if (this.isObject(settings.desiredCapabilities)) {
if (settings.desiredCapabilities['browserstack.user']) {
userName = settings.desiredCapabilities['browserstack.user'];
Expand All @@ -567,10 +571,6 @@ exports.getUserName = (settings) => {
}
}

if (this.isUndefined(userName)) {
userName = process.env.BROWSERSTACK_USERNAME;
}

return userName;
};

Expand Down Expand Up @@ -624,7 +624,7 @@ const sleep = (ms = 100) => new Promise((resolve) => setTimeout(resolve, ms));

exports.uploadPending = async (
waitTimeout = DEFAULT_WAIT_TIMEOUT_FOR_PENDING_UPLOADS,
waitInterval = DEFAULT_WAIT_INTERVAL_FOR_PENDING_UPLOADS
waitInterval = DEFAULT_WAIT_INTERVAL_FOR_PENDING_UPLOADS
) => {
if (requestQueueHandler.pending_test_uploads <= 0 || waitTimeout <= 0) {
return;
Expand Down
8 changes: 4 additions & 4 deletions src/utils/logPatcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ class LogPatcher extends Transport {
});
testLogs = [];
};

logToTestOps = (level = LOG_LEVELS.INFO, message = ['']) => {
try {
let eventType = EVENTS.LOG;
if (!message[0].match(PID_MAPPING_REGEX)) {
consoleHolder[level.toLowerCase()](...message);
} else {
if (typeof message[0] === 'string' && message[0].match(PID_MAPPING_REGEX)) {
eventType = EVENTS.LOG_INIT;
} else {
consoleHolder[level.toLowerCase()](...message);
}
const pid = process.pid;
const loggingData = {
Expand Down

0 comments on commit 7b61f1e

Please sign in to comment.