Skip to content

Commit 90dfac5

Browse files
committed
add: unit tests
1 parent 96ff94d commit 90dfac5

File tree

2 files changed

+78
-11
lines changed

2 files changed

+78
-11
lines changed

bin/helpers/utils.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const usageReporting = require("./usageReporting"),
2222
config = require("../helpers/config"),
2323
pkg = require('../../package.json'),
2424
transports = require('./logger').transports,
25-
{ findGitConfig, printBuildLink, isTestObservabilitySession, isBrowserstackInfra, shouldReRunObservabilityTests } = require('../testObservability/helper/helper'),
25+
o11yHelpers = require('../testObservability/helper/helper'),
2626
{ OBSERVABILITY_ENV_VARS, TEST_OBSERVABILITY_REPORTER } = require('../testObservability/helper/constants');
2727

2828
const request = require('request');
@@ -480,7 +480,7 @@ exports.setNodeVersion = (bsConfig, args) => {
480480
// specs can be passed via command line args as a string
481481
// command line args takes precedence over config
482482
exports.setUserSpecs = (bsConfig, args) => {
483-
if(isBrowserstackInfra() && isTestObservabilitySession() && shouldReRunObservabilityTests()) {
483+
if(o11yHelpers.isBrowserstackInfra() && o11yHelpers.isTestObservabilitySession() && o11yHelpers.shouldReRunObservabilityTests()) {
484484
bsConfig.run_settings.specs = process.env.BROWSERSTACK_RERUN_TESTS;
485485
return;
486486
}
@@ -580,8 +580,8 @@ exports.setSystemEnvs = (bsConfig) => {
580580
envKeys[key] = process.env[key];
581581
});
582582

583-
let gitConfigPath = findGitConfig(process.cwd());
584-
if(!isBrowserstackInfra()) process.env.OBSERVABILITY_GIT_CONFIG_PATH_LOCAL = gitConfigPath;
583+
let gitConfigPath = o11yHelpers.findGitConfig(process.cwd());
584+
if(!o11yHelpers.isBrowserstackInfra()) process.env.OBSERVABILITY_GIT_CONFIG_PATH_LOCAL = gitConfigPath;
585585
if(gitConfigPath) {
586586
const relativePathFromGitConfig = path.relative(gitConfigPath, process.cwd());
587587
envKeys["OBSERVABILITY_GIT_CONFIG_PATH"] = relativePathFromGitConfig ? relativePathFromGitConfig : 'DEFAULT';
@@ -1184,8 +1184,8 @@ exports.handleSyncExit = (exitCode, dashboard_url) => {
11841184
syncCliLogger.info(Constants.userMessages.BUILD_REPORT_MESSAGE);
11851185
syncCliLogger.info(dashboard_url);
11861186
}
1187-
if(isTestObservabilitySession()) {
1188-
printBuildLink(true, exitCode);
1187+
if(o11yHelpers.isTestObservabilitySession()) {
1188+
o11yHelpers.printBuildLink(true, exitCode);
11891189
} else {
11901190
process.exit(exitCode);
11911191
}
@@ -1288,7 +1288,7 @@ exports.setConfig = (bsConfig, args) => {
12881288

12891289
// blindly send other passed configs with run_settings and handle at backend
12901290
exports.setOtherConfigs = (bsConfig, args) => {
1291-
if(isTestObservabilitySession() && process.env.BS_TESTOPS_JWT) {
1291+
if(o11yHelpers.isTestObservabilitySession() && process.env.BS_TESTOPS_JWT) {
12921292
bsConfig["run_settings"]["reporter"] = TEST_OBSERVABILITY_REPORTER;
12931293
return;
12941294
}
@@ -1472,15 +1472,15 @@ async function processExitHandler(exitData){
14721472
logger.warn(Constants.userMessages.PROCESS_KILL_MESSAGE);
14731473
await this.stopBrowserStackBuild(exitData.bsConfig, exitData.args, exitData.buildId, null, exitData.buildReportData);
14741474
await this.stopLocalBinary(exitData.bsConfig, exitData.bsLocalInstance, exitData.args, null, exitData.buildReportData);
1475-
await printBuildLink(true);
1475+
await o11yHelpers.printBuildLink(true);
14761476
process.exit(0);
14771477
}
14781478

14791479
async function processO11yExitHandler(exitData){
14801480
if (exitData.buildId) {
1481-
await printBuildLink(false);
1481+
await o11yHelpers.printBuildLink(false);
14821482
} else {
1483-
await printBuildLink(true);
1483+
await o11yHelpers.printBuildLink(true);
14841484
}
14851485
}
14861486

test/unit/bin/helpers/utils.js

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ const utils = require('../../../../bin/helpers/utils'),
2121
fileHelpers = require('../../../../bin/helpers/fileHelpers'),
2222
testObjects = require('../../support/fixtures/testObjects'),
2323
syncLogger = require('../../../../bin/helpers/logger').syncCliLogger,
24-
Contants = require('../../../../bin/helpers/constants');
24+
Contants = require('../../../../bin/helpers/constants'),
25+
o11yHelpers = require('../../../../bin/testObservability/helper/helper');
2526
const browserstack = require('browserstack-local');
2627
const { CYPRESS_V10_AND_ABOVE_TYPE, CYPRESS_V9_AND_OLDER_TYPE } = require('../../../../bin/helpers/constants');
2728
const { winstonLogger, syncCliLogger } = require('../../../../bin/helpers/logger');
@@ -3396,6 +3397,72 @@ describe('utils', () => {
33963397
});
33973398
});
33983399

3400+
describe('setO11yProcessHooks', () => {
3401+
it('should handle multiple calls', (done) => {
3402+
let buildId = null;
3403+
let bsConfig = testObjects.sampleBsConfig;
3404+
let bsLocalStub = sinon.stub();
3405+
let args= {};
3406+
3407+
let printBuildLinkStub = sinon.stub(o11yHelpers, 'printBuildLink').returns(Promise.resolve(true));
3408+
let processOnSpy = sinon.spy(process, 'on');
3409+
3410+
utils.setO11yProcessHooks(buildId, bsConfig, bsLocalStub, args);
3411+
sinon.assert.calledOnce(processOnSpy);
3412+
processOnSpy.restore();
3413+
processOnSpy = sinon.spy(process, 'on');
3414+
utils.setO11yProcessHooks('build_id', bsConfig, bsLocalStub, args);
3415+
sinon.assert.notCalled(processOnSpy);
3416+
processOnSpy.restore();
3417+
process.on('beforeExit', () => {
3418+
sinon.assert.calledOnce(printBuildLinkStub);
3419+
sinon.assert.calledWith(printBuildLinkStub, false);
3420+
done();
3421+
});
3422+
process.emit('beforeExit');
3423+
printBuildLinkStub.restore();
3424+
sinon.stub.restore();
3425+
});
3426+
3427+
it('should handle "beforeExit" event, with build id', (done) => {
3428+
let buildId = 'build_id';
3429+
let bsConfig = testObjects.sampleBsConfig;
3430+
let bsLocalStub = sinon.stub();
3431+
let args= {};
3432+
3433+
let printBuildLinkStub = sinon.stub(o11yHelpers, 'printBuildLink').returns(Promise.resolve(true));
3434+
3435+
utils.setO11yProcessHooks(buildId, bsConfig, bsLocalStub, args);
3436+
process.on('beforeExit', () => {
3437+
sinon.assert.calledOnce(printBuildLinkStub);
3438+
sinon.assert.calledWith(printBuildLinkStub, false);
3439+
done();
3440+
});
3441+
process.emit('beforeExit');
3442+
printBuildLinkStub.restore();
3443+
sinon.stub.restore();
3444+
});
3445+
3446+
it('should handle "beforeExit" event, without build id', (done) => {
3447+
let buildId = null;
3448+
let bsConfig = testObjects.sampleBsConfig;
3449+
let bsLocalStub = sinon.stub();
3450+
let args= {};
3451+
3452+
let printBuildLinkStub = sinon.stub(o11yHelpers, 'printBuildLink').returns(Promise.resolve(true));
3453+
3454+
utils.setO11yProcessHooks(buildId, bsConfig, bsLocalStub, args);
3455+
process.on('beforeExit', () => {
3456+
sinon.assert.calledOnce(printBuildLinkStub);
3457+
sinon.assert.calledWith(printBuildLinkStub, true);
3458+
done();
3459+
});
3460+
process.emit('beforeExit');
3461+
printBuildLinkStub.restore();
3462+
sinon.stub.restore();
3463+
});
3464+
});
3465+
33993466
describe('fetchZipSize', () => {
34003467
it('should return size in bytes if file is present', () => {
34013468
sinon.stub(fs, 'statSync').returns({size: 123});

0 commit comments

Comments
 (0)