Skip to content

Commit a1016ad

Browse files
authored
Merge pull request #107 from browserstack/running-build-report-generate-status
Show error message when build is in running state
2 parents 76d069a + 6cc70f5 commit a1016ad

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

bin/helpers/reporterHTML.js

+11
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,17 @@ let reportGenerator = (bsConfig, buildId, args, cb) => {
135135
message = Constants.userMessages.API_DEPRECATED;
136136
logger.info(message);
137137
}
138+
} else if (resp.statusCode === 422) {
139+
messageType = Constants.messageTypes.ERROR;
140+
errorCode = 'api_failed_build_generate_report';
141+
try {
142+
response = JSON.parse(body);
143+
message = response.message;
144+
} catch (error) {
145+
logger.error(`Error generating the report: ${error}`);
146+
response = {message: message};
147+
}
148+
logger.error(response.message);
138149
} else if (resp.statusCode != 200) {
139150
messageType = Constants.messageTypes.ERROR;
140151
errorCode = 'api_failed_build_generate_report';

test/unit/bin/helpers/reporterHTML.js

+31
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,37 @@ describe("reportHTML", () => {
111111
});
112112

113113
context("non 200 response", () => {
114+
it("422 status, build available but running, cannot generate report", () => {
115+
let build = { message: 'The report cannot be generated as the build is running' };
116+
let body = JSON.stringify(build);
117+
let requestStub = sandbox.stub(request, "get").yields(null, { statusCode: 422 }, body);
118+
let message = build.message;
119+
let messageType = Constants.messageTypes.ERROR;
120+
let errorCode = 'api_failed_build_generate_report';
121+
122+
const reporterHTML = proxyquire('../../../../bin/helpers/reporterHTML', {
123+
'./utils': {
124+
validateBstackJson: validateBstackJsonStub,
125+
setDefaultAuthHash: setDefaultAuthHashStub,
126+
setUsername: setUsernameStub,
127+
setAccessKey: setAccessKeyStub,
128+
getUserAgent: getUserAgentStub,
129+
setUsageReportingFlag: setUsageReportingFlagStub,
130+
setCypressConfigFilename: setCypressConfigFilenameStub,
131+
sendUsageReport: sendUsageReportStub,
132+
setDefaults: setDefaultsStub,
133+
getErrorCodeFromErr: getErrorCodeFromErrStub
134+
},
135+
request: {get: requestStub}
136+
});
137+
138+
reporterHTML.reportGenerator(bsConfig, buildId, args);
139+
140+
sinon.assert.calledOnce(requestStub);
141+
sinon.assert.calledOnce(getUserAgentStub);
142+
sinon.assert.calledOnceWithExactly(sendUsageReportStub, bsConfig, args, message, messageType, errorCode);
143+
});
144+
114145
it("400 status, build available, cannot generate report", () => {
115146
let build = { buildId: buildId, message: 'success', rows: [] };
116147
let body = JSON.stringify(build);

0 commit comments

Comments
 (0)