Skip to content

Commit 07fc992

Browse files
Roshan NikamRoshan Nikam
authored andcommitted
handled the case of invalid json and invalid paths
1 parent 3b31b09 commit 07fc992

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

bin/commands/runs.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const archiver = require("../helpers/archiver"),
1616
downloadBuildArtifacts = require('../helpers/buildArtifacts').downloadBuildArtifacts,
1717
updateNotifier = require('update-notifier'),
1818
pkg = require('../../package.json');
19-
19+
2020
module.exports = function run(args) {
2121
let bsConfigPath = utils.getConfigPath(args.cf);
2222
//Delete build_results.txt from log folder if already present.
@@ -284,7 +284,8 @@ module.exports = function run(args) {
284284
}).catch(function (err) {
285285
logger.error(err);
286286
utils.setUsageReportingFlag(null, args.disableUsageReporting);
287-
utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err));
287+
let bsJsonData = utils.readBsConfigJSON(bsConfigPath);
288+
utils.sendUsageReport(bsJsonData, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err));
288289
process.exitCode = Constants.ERROR_EXIT_CODE;
289290
}).finally(function(){
290291
updateNotifier({

bin/helpers/constants.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,14 @@ const usageReportingConstants = {
209209

210210
const LATEST_VERSION_SYNTAX_REGEX = /\d*.latest(.\d*)?/gm
211211

212+
const AUTH_REGEX = /"auth" *: *{[\s\S]*?}/g
213+
212214
const ERROR_EXIT_CODE = 1;
213215

214216
const REDACTED = "[REDACTED]";
215217

218+
const REDACTED_AUTH =`auth: { "username": ${REDACTED}, "access_key": ${REDACTED} }`;
219+
216220
module.exports = Object.freeze({
217221
syncCLI,
218222
userMessages,
@@ -231,5 +235,6 @@ module.exports = Object.freeze({
231235
usageReportingConstants,
232236
LATEST_VERSION_SYNTAX_REGEX,
233237
ERROR_EXIT_CODE,
234-
REDACTED
238+
AUTH_REGEX,
239+
REDACTED_AUTH
235240
});

bin/helpers/usageReporting.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const config = require('./config'),
99
fileLogger = require('./logger').fileLogger,
1010
utils = require('./utils');
1111

12-
const { REDACTED } = require("./constants");
12+
const { AUTH_REGEX, REDACTED_AUTH } = require("./constants");
1313

1414
function get_version(package_name) {
1515
try {
@@ -176,16 +176,19 @@ function send(args) {
176176
if (isUsageReportingEnabled() === "true") return;
177177

178178
let bsConfig = JSON.parse(JSON.stringify(args.bstack_config));
179+
let runSettings = "";
180+
let sanitizedbsConfig = "";
179181
let cli_details = cli_version_and_path(bsConfig);
180182
let data = utils.isUndefined(args.data) ? {} : args.data;
181183

182184
if (bsConfig && bsConfig.run_settings) {
183-
data.cypress_version = bsConfig.run_settings.cypress_version
185+
runSettings = bsConfig.run_settings;
186+
data.cypress_version = bsConfig.run_settings.cypress_version;
184187
}
185188

186-
bsConfig['auth']['username'] = REDACTED
187-
bsConfig['auth']['access_key'] = REDACTED
188-
189+
sanitizedbsConfig = `${(typeof bsConfig === 'string') ? bsConfig :
190+
JSON.stringify(bsConfig)}`.replace(AUTH_REGEX, REDACTED_AUTH);
191+
189192
delete args.bstack_config;
190193

191194
const payload = {
@@ -194,8 +197,8 @@ function send(args) {
194197
build_id: data.build_id,
195198
user_id: data.user_id,
196199
parallels: data.parallels,
197-
bstack_json: bsConfig,
198-
run_settings: bsConfig.run_settings,
200+
bstack_json: sanitizedbsConfig,
201+
run_settings: runSettings,
199202
os: _os(),
200203
os_version: os_version(),
201204
bstack_json_found_in_pwd: bstack_json_found_in_pwd(),

bin/helpers/utils.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,10 @@ exports.setOtherConfigs = (bsConfig, args) => {
912912
}
913913
}
914914

915+
exports.readBsConfigJSON = (bsConfigPath) => {
916+
return fs.readFileSync(bsConfigPath, 'utf-8');
917+
}
918+
915919
exports.getCypressJSON = (bsConfig) => {
916920
let cypressJSON = undefined;
917921
if (bsConfig.run_settings.cypress_config_file && bsConfig.run_settings.cypress_config_filename !== 'false') {

0 commit comments

Comments
 (0)