diff --git a/lib/report-builder-factory/report-builder.js b/lib/report-builder-factory/report-builder.js index 2c15490f4..202ddd1cc 100644 --- a/lib/report-builder-factory/report-builder.js +++ b/lib/report-builder-factory/report-builder.js @@ -156,13 +156,15 @@ module.exports = class ReportBuilder { formattedResult.attempt = testResult.attempt; formattedResult.image = hasImage(formattedResult); - const {imagesInfo} = stateInBrowser.result; + const {imagesInfo, status: currentStatus} = stateInBrowser.result; stateInBrowser.result = extendTestWithImagePaths(testResult, formattedResult, imagesInfo); if (!hasFails(stateInBrowser)) { stateInBrowser.result.status = SUCCESS; } else if (hasNoRefImageErrors(stateInBrowser.result)) { stateInBrowser.result.status = FAIL; + } else if (stateInBrowser.result.status === UPDATED) { + stateInBrowser.result.status = currentStatus; } setStatusForBranch(this._tree, node.suitePath, testResult.status); diff --git a/test/lib/report-builder-factory/report-builder.js b/test/lib/report-builder-factory/report-builder.js index a923ff4eb..e8a95670d 100644 --- a/test/lib/report-builder-factory/report-builder.js +++ b/test/lib/report-builder-factory/report-builder.js @@ -353,7 +353,7 @@ describe('ReportBuilder', () => { }); describe('addUpdated', () => { - it('should add "idle" status to result', () => { + it('should add "updated" status to result', () => { const reportBuilder = mkReportBuilder_(); reportBuilder.addUpdated(stubTest_()); @@ -386,6 +386,29 @@ describe('ReportBuilder', () => { assert.match(imagesInfo[1], {stateName: 'plain2', status: FAIL}); }); + it('should not rewrite status to "updated" if test has failed states', () => { + const reportBuilder = mkReportBuilder_(); + + const failedTest = stubTest_({ + imagesInfo: [ + {stateName: 'plain1', status: FAIL}, + {stateName: 'plain2', status: FAIL} + ] + }); + const updatedTest = stubTest_({ + imagesInfo: [ + {stateName: 'plain1', status: UPDATED} + ] + }); + + reportBuilder.addFail(failedTest); + reportBuilder.addUpdated(updatedTest); + + const {status} = getReportBuilderResult_(reportBuilder); + + assert.equal(status, FAIL); + }); + it('should update last test image if state name was not passed', () => { const reportBuilder = mkReportBuilder_();