From 3813dd3472dfd9d355dd6260a61539cf0733b82b Mon Sep 17 00:00:00 2001 From: event Date: Fri, 12 Sep 2025 11:22:09 -0700 Subject: [PATCH] fix: fix addRetry method --- lib/collector/index.js | 16 +++++++++++----- test/lib/collector/index.js | 35 +++++++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/lib/collector/index.js b/lib/collector/index.js index 1ff54d8..e3e8943 100644 --- a/lib/collector/index.js +++ b/lib/collector/index.js @@ -22,12 +22,12 @@ module.exports = class Collector { } addFail(result) { - const {startTime, duration, err: {message, stack}} = result; + const {err: {message, stack}} = result; this._addTestResult(result, { status: 'fail', errorReason: {message, stack}, - retries: [{message, stack, startTime, duration}] + retries: [] }); } @@ -39,16 +39,22 @@ module.exports = class Collector { } addRetry(result) { - this.addFail(result); + const {startTime, duration, err: {message, stack}} = result; + + this._addTestResult(result, { + status: 'fail', + errorReason: {message, stack}, + retries: [{message, stack, startTime, duration}] + }); } addError(result) { - const {message, stack, startTime, duration} = result; + const {message, stack} = result; this._addTestResult(result, { status: 'error', errorReason: {message, stack}, - retries: [{message, stack, startTime, duration}] + retries: [] }); } diff --git a/test/lib/collector/index.js b/test/lib/collector/index.js index 88649a0..4358a76 100644 --- a/test/lib/collector/index.js +++ b/test/lib/collector/index.js @@ -86,12 +86,7 @@ describe('collector/index', () => { startTime: data.startTime, duration: data.duration, errorReason: {message: testError.message, stack: testError.stack}, - retries: [{ - message: testError.message, - stack: testError.stack, - startTime: data.startTime, - duration: data.duration - }] + retries: [] }}); }); }); @@ -114,6 +109,34 @@ describe('collector/index', () => { }); }); + it('should save one retry for test that failed after one retry', () => { + const testRetryError = new Promise.OperationalError('test retry'); + const testFailError = new Promise.OperationalError('test fail'); + const dataRetry = {fullName: 'some name', browserId: 'bro', err: testRetryError, startTime: 1000, duration: 500}; + const dataFail = {fullName: 'some name', browserId: 'bro', err: testFailError, startTime: 1000, duration: 500}; + const collector = mkCollector_(); + + collector.addRetry(dataRetry); + collector.addFail(dataFail); + + return saveReport_(collector).then((result) => { + assert.deepEqual(result, {'some name.bro': { + fullName: 'some name', + browserId: 'bro', + status: 'fail', + errorReason: {message: testFailError.message, stack: testFailError.stack}, + startTime: dataFail.startTime, + duration: dataFail.duration, + retries: [{ + message: testRetryError.message, + stack: testRetryError.stack, + startTime: dataRetry.startTime, + duration: dataRetry.duration + }] + }}); + }); + }); + it('should add failed test if the retry fails', () => { const testError = new Promise.OperationalError('test'); const data = {fullName: 'some name', browserId: 'bro', err: testError, startTime: 1000, duration: 500};