Skip to content

Commit 804894e

Browse files
committed
add unit tests for remaining files
1 parent 87b4fce commit 804894e

File tree

11 files changed

+932
-55
lines changed

11 files changed

+932
-55
lines changed

.nycrc.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ all: true
77
check-coverage: true
88

99
# thresholds
10-
branches: 60
11-
lines: 60
12-
functions: 60
13-
statements: 60
10+
branches: 80
11+
lines: 80
12+
functions: 75
13+
statements: 80

bin/commands/runs.js

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,32 @@
11
'use strict';
2-
const fs = require('fs');
3-
42
const archiver = require("../helpers/archiver"),
53
zipUploader = require("../helpers/zipUpload"),
64
build = require("../helpers/build"),
75
logger = require("../helpers/logger").winstonLogger,
86
config = require("../helpers/config"),
97
capabilityHelper = require("../helpers/capabilityHelper"),
108
Constants = require("../helpers/constants"),
11-
utils = require("../helpers/utils");
9+
utils = require("../helpers/utils"),
10+
fileHelpers = require("../helpers/fileHelpers");
1211

1312
module.exports = function run(args) {
14-
return runCypress(args);
15-
}
16-
17-
function deleteZip() {
18-
fs.unlink(config.fileName, function (err) {
19-
if(err) {
20-
logger.info(Constants.userMessages.ZIP_DELETE_FAILED);
21-
} else {
22-
logger.info(Constants.userMessages.ZIP_DELETED);
23-
}
24-
});
25-
}
26-
27-
function runCypress(args) {
2813
let bsConfigPath = process.cwd() + args.cf;
2914

30-
utils.validateBstackJson(bsConfigPath).then(function (bsConfig) {
15+
return utils.validateBstackJson(bsConfigPath).then(function (bsConfig) {
3116
utils.setUsageReportingFlag(bsConfig, args.disableUsageReporting);
3217

3318
// Validate browserstack.json values
34-
capabilityHelper.validate(bsConfig).then(function (validated) {
19+
return capabilityHelper.validate(bsConfig).then(function (validated) {
3520
logger.info(validated);
3621

3722
// Archive the spec files
38-
archiver.archive(bsConfig.run_settings, config.fileName).then(function (data) {
23+
return archiver.archive(bsConfig.run_settings, config.fileName).then(function (data) {
3924

4025
// Uploaded zip file
41-
zipUploader.zipUpload(bsConfig, config.fileName).then(function (zip) {
26+
return zipUploader.zipUpload(bsConfig, config.fileName).then(function (zip) {
4227

4328
// Create build
44-
build.createBuild(bsConfig, zip).then(function (message) {
29+
return build.createBuild(bsConfig, zip).then(function (message) {
4530
logger.info(message);
4631
utils.sendUsageReport(bsConfig, args, message, Constants.messageTypes.SUCCESS, null);
4732
return;
@@ -52,19 +37,19 @@ function runCypress(args) {
5237
});
5338
}).catch(function (err) {
5439
// Zip Upload failed
55-
logger.error(err)
56-
logger.error(Constants.userMessages.ZIP_UPLOAD_FAILED)
40+
logger.error(err);
41+
logger.error(Constants.userMessages.ZIP_UPLOAD_FAILED);
5742
utils.sendUsageReport(bsConfig, args, `${err}\n${Constants.userMessages.ZIP_UPLOAD_FAILED}`, Constants.messageTypes.ERROR, 'zip_upload_failed');
5843
}).finally(function () {
59-
deleteZip();
44+
fileHelpers.deleteZip();
6045
});
6146
}).catch(function (err) {
6247
// Zipping failed
6348
logger.error(err);
6449
logger.error(Constants.userMessages.FAILED_TO_ZIP);
6550
utils.sendUsageReport(bsConfig, args, `${err}\n${Constants.userMessages.FAILED_TO_ZIP}`, Constants.messageTypes.ERROR, 'zip_creation_failed');
6651
try {
67-
deleteZip();
52+
fileHelpers.deleteZip();
6853
} catch (err) {
6954
utils.sendUsageReport(bsConfig, args, Constants.userMessages.ZIP_DELETE_FAILED, Constants.messageTypes.ERROR, 'zip_deletion_failed');
7055
}
@@ -81,5 +66,5 @@ function runCypress(args) {
8166
logger.error(err);
8267
utils.setUsageReportingFlag(null, args.disableUsageReporting);
8368
utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err));
84-
})
69+
});
8570
}

bin/helpers/archiver.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const archiveSpecs = (runSettings, filePath) => {
3636

3737
archive.pipe(output);
3838

39-
let allowedFileTypes = [ 'js', 'json', 'txt', 'ts' ]
39+
let allowedFileTypes = [ 'js', 'json', 'txt', 'ts' ];
4040
allowedFileTypes.forEach(fileType => {
4141
archive.glob(`**/*.${fileType}`, { cwd: cypressFolderPath, matchBase: true, ignore: 'node_modules/**' });
4242
});

bin/helpers/capabilityHelper.js

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,43 @@ const logger = require("./logger").winstonLogger,
33

44
const caps = (bsConfig, zip) => {
55
return new Promise(function (resolve, reject) {
6-
let user = bsConfig.auth.username
7-
let password = bsConfig.auth.access_key
6+
let user = undefined;
7+
let password = undefined;
8+
9+
if (bsConfig.auth) {
10+
user = bsConfig.auth.username;
11+
password = bsConfig.auth.access_key;
12+
}
813

914
if (!user || !password) reject(Constants.validationMessages.INCORRECT_AUTH_PARAMS);
1015

1116
var obj = new Object();
1217

1318
// Browser list
1419
let osBrowserArray = [];
15-
bsConfig.browsers.forEach(element => {
16-
osBrowser = element.os + "-" + element.browser
17-
element.versions.forEach(version => {
18-
osBrowserArray.push(osBrowser + version);
20+
if (bsConfig.browsers) {
21+
bsConfig.browsers.forEach((element) => {
22+
osBrowser = element.os + "-" + element.browser;
23+
element.versions.forEach((version) => {
24+
osBrowserArray.push(osBrowser + version);
25+
});
1926
});
20-
});
21-
obj.devices = osBrowserArray
27+
}
28+
obj.devices = osBrowserArray;
2229
if (obj.devices.length == 0) reject(Constants.validationMessages.EMPTY_BROWSER_LIST);
2330
logger.info(`Browser list: ${osBrowserArray.toString()}`);
2431

2532
// Test suite
26-
obj.test_suite = zip.zip_url.split("://")[1]
27-
if (!obj.test_suite || 0 === obj.test_suite.length) reject("Test suite is empty");
33+
if (zip.zip_url && zip.zip_url.split("://")[1].length !== 0) {
34+
obj.test_suite = zip.zip_url.split("://")[1];
35+
} else {
36+
reject("Test suite is empty");
37+
}
2838
logger.info(`Test suite: bs://${obj.test_suite}`);
2939

3040
// Local
3141
obj.local = false;
32-
if (bsConfig.connection_settings.local === true) obj.local = true;
42+
if (bsConfig.connection_settings && bsConfig.connection_settings.local === true) obj.local = true;
3343
logger.info(`Local is set to: ${obj.local}`);
3444

3545
// Local Identifier
@@ -41,19 +51,27 @@ const caps = (bsConfig, zip) => {
4151
}
4252

4353
// Project name
44-
obj.project = bsConfig.run_settings.project || bsConfig.run_settings.project_name;
45-
if (!obj.project) logger.log(`Project name is: ${obj.project}`);
46-
54+
obj.project = "project-name";
4755
// Build name
48-
obj.customBuildName = bsConfig.run_settings.customBuildName || bsConfig.run_settings.build_name;
56+
obj.customBuildName = "build-name";
57+
//callback url
58+
obj.callbackURL = null;
59+
//projectNotifyURL
60+
obj.projectNotifyURL = null;
61+
62+
if (bsConfig.run_settings) {
63+
obj.project = bsConfig.run_settings.project || bsConfig.run_settings.project_name;
64+
obj.customBuildName = bsConfig.run_settings.customBuildName || bsConfig.run_settings.build_name;
65+
obj.callbackURL = bsConfig.run_settings.callback_url;
66+
obj.projectNotifyURL = bsConfig.run_settings.project_notify_URL;
67+
}
68+
69+
if (obj.project) logger.log(`Project name is: ${obj.project}`);
70+
4971
if (obj.customBuildName) logger.log(`Build name is: ${obj.customBuildName}`);
5072

51-
//callback url
52-
obj.callbackURL = bsConfig.run_settings.callback_url
5373
if (obj.callbackURL) logger.info(`callback url is : ${obj.callbackURL}`);
5474

55-
//projectNotifyURL
56-
obj.projectNotifyURL = bsConfig.run_settings.project_notify_URL
5775
if (obj.projectNotifyURL) logger.info(`Project notify URL is: ${obj.projectNotifyURL}`);
5876

5977
var data = JSON.stringify(obj);

bin/helpers/fileHelpers.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
const fs = require('fs-extra'),
33
path = require('path');
44

5-
const logger = require('./logger').winstonLogger;
5+
const logger = require("./logger").winstonLogger,
6+
Constants = require("../helpers/constants"),
7+
config = require("../helpers/config");
68

79
exports.write = function(f, message, cb) {
810
message = message || 'Creating';
@@ -21,3 +23,15 @@ exports.fileExists = function(filePath, cb) {
2123
})
2224
cb && cb(exists);
2325
}
26+
27+
exports.deleteZip = () => {
28+
return fs.unlink(config.fileName, function (err) {
29+
if (err) {
30+
logger.info(Constants.userMessages.ZIP_DELETE_FAILED);
31+
return 1;
32+
} else {
33+
logger.info(Constants.userMessages.ZIP_DELETED);
34+
return 0;
35+
}
36+
});
37+
}

0 commit comments

Comments
 (0)