Skip to content

Commit 7f67a57

Browse files
Adding Missing Auth Hash check and fixing failing unit test cases in master
1 parent daf2106 commit 7f67a57

File tree

4 files changed

+66
-39
lines changed

4 files changed

+66
-39
lines changed

bin/helpers/utils.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ exports.setParallels = (bsConfig, args) => {
116116
};
117117

118118
exports.setUsername = (bsConfig, args) => {
119+
if(this.isUndefined(bsConfig["auth"])){
120+
bsConfig["auth"] = {};
121+
}
119122
if (!this.isUndefined(args.username)) {
120123
bsConfig["auth"]["username"] = args.username;
121124
} else if (!this.isUndefined(process.env.BROWSERSTACK_USERNAME)) {

test/unit/bin/commands/info.js

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe("buildInfo", () => {
2727
validateBstackJsonStub = sandbox.stub();
2828
getConfigPathStub = sandbox.stub();
2929
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
30+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
3031
getUserAgentStub = sandbox.stub().returns("random user-agent");
3132
sendUsageReportStub = sandbox.stub().callsFake(function () {
3233
return "end";
@@ -54,6 +55,7 @@ describe("buildInfo", () => {
5455
getErrorCodeFromErr: getErrorCodeFromErrStub,
5556
sendUsageReport: sendUsageReportStub,
5657
setUsageReportingFlag: setUsageReportingFlagStub,
58+
setCypressConfigFilename: setCypressConfigFilenameStub,
5759
getUserAgent: getUserAgentStub,
5860
getConfigPath: getConfigPathStub
5961
},
@@ -90,6 +92,7 @@ describe("buildInfo", () => {
9092
getErrorCodeFromErr: getErrorCodeFromErrStub,
9193
sendUsageReport: sendUsageReportStub,
9294
setUsageReportingFlag: setUsageReportingFlagStub,
95+
setCypressConfigFilename: setCypressConfigFilenameStub,
9396
getUserAgent: getUserAgentStub,
9497
getConfigPath: getConfigPathStub
9598
},
@@ -119,6 +122,7 @@ describe("buildInfo", () => {
119122
validateBstackJsonStub = sandbox.stub();
120123
getConfigPathStub = sandbox.stub();
121124
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
125+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
122126
getUserAgentStub = sandbox.stub().returns("random user-agent");
123127
sendUsageReportStub = sandbox.stub().callsFake(function () {
124128
return "end";
@@ -148,6 +152,7 @@ describe("buildInfo", () => {
148152
getErrorCodeFromErr: getErrorCodeFromErrStub,
149153
sendUsageReport: sendUsageReportStub,
150154
setUsageReportingFlag: setUsageReportingFlagStub,
155+
setCypressConfigFilename: setCypressConfigFilenameStub,
151156
getUserAgent: getUserAgentStub,
152157
getConfigPath: getConfigPathStub
153158
},
@@ -182,18 +187,19 @@ describe("buildInfo", () => {
182187
.stub(request, "get")
183188
.yields(null, { statusCode: 401 }, JSON.stringify(body_with_message));
184189

185-
const info = proxyquire("../../../../bin/commands/info", {
186-
"../helpers/utils": {
190+
const info = proxyquire('../../../../bin/commands/info', {
191+
'../helpers/utils': {
187192
setUsername: setUsernameStub,
188193
setAccessKey: setAccessKeyStub,
189194
validateBstackJson: validateBstackJsonStub,
190195
getErrorCodeFromErr: getErrorCodeFromErrStub,
191196
sendUsageReport: sendUsageReportStub,
192197
setUsageReportingFlag: setUsageReportingFlagStub,
198+
setCypressConfigFilename: setCypressConfigFilenameStub,
193199
getUserAgent: getUserAgentStub,
194-
getConfigPath: getConfigPathStub
200+
getConfigPath: getConfigPathStub,
195201
},
196-
request: { get: requestStub },
202+
request: {get: requestStub},
197203
});
198204

199205
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -219,18 +225,19 @@ describe("buildInfo", () => {
219225
.stub(request, "get")
220226
.yields(null, { statusCode: 402 }, JSON.stringify(body));
221227

222-
const info = proxyquire("../../../../bin/commands/info", {
223-
"../helpers/utils": {
228+
const info = proxyquire('../../../../bin/commands/info', {
229+
'../helpers/utils': {
224230
setUsername: setUsernameStub,
225231
setAccessKey: setAccessKeyStub,
226232
validateBstackJson: validateBstackJsonStub,
227233
getErrorCodeFromErr: getErrorCodeFromErrStub,
228234
sendUsageReport: sendUsageReportStub,
229235
setUsageReportingFlag: setUsageReportingFlagStub,
236+
setCypressConfigFilename: setCypressConfigFilenameStub,
230237
getUserAgent: getUserAgentStub,
231-
getConfigPath: getConfigPathStub
238+
getConfigPath: getConfigPathStub,
232239
},
233-
request: { get: requestStub },
240+
request: {get: requestStub},
234241
});
235242

236243
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -258,6 +265,7 @@ describe("buildInfo", () => {
258265
validateBstackJsonStub = sandbox.stub();
259266
getConfigPathStub = sandbox.stub();
260267
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
268+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
261269
getUserAgentStub = sandbox.stub().returns("random user-agent");
262270
sendUsageReportStub = sandbox.stub().callsFake(function () {
263271
return "end";
@@ -277,18 +285,19 @@ describe("buildInfo", () => {
277285

278286
let requestStub = sandbox.stub(request, "get").yields(null, { statusCode: 200 }, JSON.stringify(body));
279287

280-
const info = proxyquire("../../../../bin/commands/info", {
281-
"../helpers/utils": {
288+
const info = proxyquire('../../../../bin/commands/info', {
289+
'../helpers/utils': {
282290
setUsername: setUsernameStub,
283291
setAccessKey: setAccessKeyStub,
284292
validateBstackJson: validateBstackJsonStub,
285293
getErrorCodeFromErr: getErrorCodeFromErrStub,
286294
sendUsageReport: sendUsageReportStub,
287295
setUsageReportingFlag: setUsageReportingFlagStub,
296+
setCypressConfigFilename: setCypressConfigFilenameStub,
288297
getUserAgent: getUserAgentStub,
289-
getConfigPath: getConfigPathStub
298+
getConfigPath: getConfigPathStub,
290299
},
291-
request: { get: requestStub },
300+
request: {get: requestStub},
292301
});
293302

294303
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -315,6 +324,7 @@ describe("buildInfo", () => {
315324
getConfigPathStub = sandbox.stub();
316325
validateBstackJsonStub = sandbox.stub();
317326
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
327+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
318328
sendUsageReportStub = sandbox.stub().callsFake(function () {
319329
return "end";
320330
});
@@ -335,6 +345,7 @@ describe("buildInfo", () => {
335345
getErrorCodeFromErr: getErrorCodeFromErrStub,
336346
sendUsageReport: sendUsageReportStub,
337347
setUsageReportingFlag: setUsageReportingFlagStub,
348+
setCypressConfigFilename: setCypressConfigFilenameStub,
338349
getConfigPath: getConfigPathStub
339350
},
340351
});

test/unit/bin/commands/init.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,12 @@ describe("init", () => {
7878
};
7979

8080
loggerStub = sandbox.stub(logger, 'error');
81+
cypressConfigFileStub = sandbox.stub(utils, 'setCypressConfigFilename');
8182
usageStub = sandbox.stub(utils, 'sendUsageReport');
8283

8384
expect(get_path(args)).to.be.undefined;
8485
sinon.assert.calledOnce(loggerStub);
86+
sinon.assert.calledOnce(cypressConfigFileStub);
8587
sinon.assert.calledOnce(usageStub);
8688
});
8789

test/unit/bin/commands/stop.js

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe("buildStop", () => {
2727
setAccessKeyStub = sandbox.stub();
2828
getConfigPathStub = sandbox.stub();
2929
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
30+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
3031
getUserAgentStub = sandbox.stub().returns("random user-agent");
3132
sendUsageReportStub = sandbox.stub().callsFake(function () {
3233
return "end";
@@ -48,18 +49,19 @@ describe("buildStop", () => {
4849
.stub(request, "post")
4950
.yields(null, { statusCode: 299 }, null);
5051

51-
const stop = proxyquire("../../../../bin/commands/stop", {
52-
"../helpers/utils": {
52+
const stop = proxyquire('../../../../bin/commands/stop', {
53+
'../helpers/utils': {
5354
validateBstackJson: validateBstackJsonStub,
5455
setUsername: setUsernameStub,
5556
setAccessKey: setAccessKeyStub,
5657
getErrorCodeFromErr: getErrorCodeFromErrStub,
5758
sendUsageReport: sendUsageReportStub,
5859
setUsageReportingFlag: setUsageReportingFlagStub,
60+
setCypressConfigFilename: setCypressConfigFilenameStub,
5961
getUserAgent: getUserAgentStub,
60-
getConfigPath: getConfigPathStub
62+
getConfigPath: getConfigPathStub,
6163
},
62-
request: { post: requestStub },
64+
request: {post: requestStub},
6365
});
6466

6567
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -84,18 +86,19 @@ describe("buildStop", () => {
8486
.stub(request, "post")
8587
.yields(null, { statusCode: 299 }, JSON.stringify(body));
8688

87-
const stop = proxyquire("../../../../bin/commands/stop", {
88-
"../helpers/utils": {
89+
const stop = proxyquire('../../../../bin/commands/stop', {
90+
'../helpers/utils': {
8991
validateBstackJson: validateBstackJsonStub,
9092
getErrorCodeFromErr: getErrorCodeFromErrStub,
9193
setUsername: setUsernameStub,
9294
setAccessKey: setAccessKeyStub,
9395
sendUsageReport: sendUsageReportStub,
9496
setUsageReportingFlag: setUsageReportingFlagStub,
97+
setCypressConfigFilename: setCypressConfigFilenameStub,
9598
getUserAgent: getUserAgentStub,
96-
getConfigPath: getConfigPathStub
99+
getConfigPath: getConfigPathStub,
97100
},
98-
request: { post: requestStub },
101+
request: {post: requestStub},
99102
});
100103

101104
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -120,6 +123,7 @@ describe("buildStop", () => {
120123
validateBstackJsonStub = sandbox.stub();
121124
getConfigPathStub = sandbox.stub();
122125
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
126+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
123127
getUserAgentStub = sandbox.stub().returns("random user-agent");
124128
sendUsageReportStub = sandbox.stub().callsFake(function () {
125129
return "end";
@@ -141,18 +145,19 @@ describe("buildStop", () => {
141145
.stub(request, "post")
142146
.yields(null, { statusCode: 400 }, null);
143147

144-
const stop = proxyquire("../../../../bin/commands/stop", {
145-
"../helpers/utils": {
148+
const stop = proxyquire('../../../../bin/commands/stop', {
149+
'../helpers/utils': {
146150
validateBstackJson: validateBstackJsonStub,
147151
getErrorCodeFromErr: getErrorCodeFromErrStub,
148152
sendUsageReport: sendUsageReportStub,
149153
setUsername: setUsernameStub,
150154
setAccessKey: setAccessKeyStub,
151155
setUsageReportingFlag: setUsageReportingFlagStub,
156+
setCypressConfigFilename: setCypressConfigFilenameStub,
152157
getUserAgent: getUserAgentStub,
153-
getConfigPath: getConfigPathStub
158+
getConfigPath: getConfigPathStub,
154159
},
155-
request: { post: requestStub },
160+
request: {post: requestStub},
156161
});
157162

158163
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -184,18 +189,19 @@ describe("buildStop", () => {
184189
.stub(request, "post")
185190
.yields(null, { statusCode: 401 }, JSON.stringify(body_with_message));
186191

187-
const stop = proxyquire("../../../../bin/commands/stop", {
188-
"../helpers/utils": {
192+
const stop = proxyquire('../../../../bin/commands/stop', {
193+
'../helpers/utils': {
189194
validateBstackJson: validateBstackJsonStub,
190195
getErrorCodeFromErr: getErrorCodeFromErrStub,
191196
sendUsageReport: sendUsageReportStub,
192197
setUsername: setUsernameStub,
193198
setAccessKey: setAccessKeyStub,
194199
setUsageReportingFlag: setUsageReportingFlagStub,
200+
setCypressConfigFilename: setCypressConfigFilenameStub,
195201
getUserAgent: getUserAgentStub,
196-
getConfigPath: getConfigPathStub
202+
getConfigPath: getConfigPathStub,
197203
},
198-
request: { post: requestStub },
204+
request: {post: requestStub},
199205
});
200206

201207
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -222,18 +228,19 @@ describe("buildStop", () => {
222228
.stub(request, "post")
223229
.yields(null, { statusCode: 402 }, JSON.stringify(body));
224230

225-
const stop = proxyquire("../../../../bin/commands/stop", {
226-
"../helpers/utils": {
231+
const stop = proxyquire('../../../../bin/commands/stop', {
232+
'../helpers/utils': {
227233
validateBstackJson: validateBstackJsonStub,
228234
getErrorCodeFromErr: getErrorCodeFromErrStub,
229235
sendUsageReport: sendUsageReportStub,
230236
setUsername: setUsernameStub,
231237
setAccessKey: setAccessKeyStub,
232238
setUsageReportingFlag: setUsageReportingFlagStub,
239+
setCypressConfigFilename: setCypressConfigFilenameStub,
233240
getUserAgent: getUserAgentStub,
234-
getConfigPath: getConfigPathStub
241+
getConfigPath: getConfigPathStub,
235242
},
236-
request: { post: requestStub },
243+
request: {post: requestStub},
237244
});
238245

239246
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -260,6 +267,7 @@ describe("buildStop", () => {
260267
validateBstackJsonStub = sandbox.stub();
261268
getConfigPathStub = sandbox.stub();
262269
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
270+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
263271
getUserAgentStub = sandbox.stub().returns("random user-agent");
264272
sendUsageReportStub = sandbox.stub().callsFake(function () {
265273
return "end";
@@ -281,18 +289,19 @@ describe("buildStop", () => {
281289
.stub(request, "post")
282290
.yields(null, { statusCode: 200 }, JSON.stringify(body));
283291

284-
const stop = proxyquire("../../../../bin/commands/stop", {
285-
"../helpers/utils": {
292+
const stop = proxyquire('../../../../bin/commands/stop', {
293+
'../helpers/utils': {
286294
validateBstackJson: validateBstackJsonStub,
287295
getErrorCodeFromErr: getErrorCodeFromErrStub,
288296
sendUsageReport: sendUsageReportStub,
289297
setUsername: setUsernameStub,
290298
setAccessKey: setAccessKeyStub,
291299
setUsageReportingFlag: setUsageReportingFlagStub,
300+
setCypressConfigFilename: setCypressConfigFilenameStub,
292301
getUserAgent: getUserAgentStub,
293-
getConfigPath: getConfigPathStub
302+
getConfigPath: getConfigPathStub,
294303
},
295-
request: { post: requestStub },
304+
request: {post: requestStub},
296305
});
297306

298307
validateBstackJsonStub.returns(Promise.resolve(bsConfig));
@@ -319,6 +328,7 @@ describe("buildStop", () => {
319328
validateBstackJsonStub = sandbox.stub();
320329
getConfigPathStub = sandbox.stub();
321330
setUsageReportingFlagStub = sandbox.stub().returns(undefined);
331+
setCypressConfigFilenameStub = sandbox.stub().returns(undefined);
322332
sendUsageReportStub = sandbox.stub().callsFake(function () {
323333
return "end";
324334
});
@@ -331,15 +341,16 @@ describe("buildStop", () => {
331341
});
332342

333343
it("send usage report if validateBstackJson fails", () => {
334-
const stop = proxyquire("../../../../bin/commands/stop", {
335-
"../helpers/utils": {
344+
const stop = proxyquire('../../../../bin/commands/stop', {
345+
'../helpers/utils': {
336346
validateBstackJson: validateBstackJsonStub,
337347
getErrorCodeFromErr: getErrorCodeFromErrStub,
338348
sendUsageReport: sendUsageReportStub,
339349
setUsername: setUsernameStub,
340350
setAccessKey: setAccessKeyStub,
341351
setUsageReportingFlag: setUsageReportingFlagStub,
342-
getConfigPath: getConfigPathStub
352+
setCypressConfigFilename: setCypressConfigFilenameStub,
353+
getConfigPath: getConfigPathStub,
343354
},
344355
});
345356

0 commit comments

Comments
 (0)