Skip to content

Commit c286f42

Browse files
authored
fix: respect retries from retryfailedstep plugin in helpers (#4028)
1 parent 159350b commit c286f42

File tree

4 files changed

+6
-2
lines changed

4 files changed

+6
-2
lines changed

lib/helper/Playwright.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ class Playwright extends Helper {
474474
async _before(test) {
475475
this.currentRunningTest = test;
476476
recorder.retry({
477-
retries: 5,
477+
retries: process.env.FAILED_STEP_RETIRES || 3,
478478
when: err => {
479479
if (!err || typeof (err.message) !== 'string') {
480480
return false;

lib/helper/Puppeteer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ class Puppeteer extends Helper {
297297
this.sessionPages = {};
298298
this.currentRunningTest = test;
299299
recorder.retry({
300-
retries: 3,
300+
retries: process.env.FAILED_STEP_RETIRES || 3,
301301
when: err => {
302302
if (!err || typeof (err.message) !== 'string') {
303303
return false;

lib/plugin/retryFailedStep.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ module.exports = (config) => {
117117

118118
event.dispatcher.on(event.test.before, (test) => {
119119
if (test && test.disableRetryFailedStep) return; // disable retry when a test is not active
120+
// this env var is used to set the retries inside _before() block of helpers
121+
process.env.FAILED_STEP_RETIRES = config.retries;
120122
recorder.retry(config);
121123
});
122124
};

test/unit/plugin/retryFailedStep_test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ describe('retryFailedStep', () => {
3636
}, undefined, undefined, true);
3737
return recorder.promise();
3838
});
39+
3940
it('should not retry within', async () => {
4041
retryFailedStep({ retries: 1, minTimeout: 1 });
4142
event.dispatcher.emit(event.test.before, {});
@@ -54,6 +55,7 @@ describe('retryFailedStep', () => {
5455
await recorder.catchWithoutStop((err) => err);
5556
}
5657

58+
expect(process.env.FAILED_STEP_RETIRES).to.equal('1');
5759
// expects to retry only once
5860
counter.should.equal(2);
5961
});

0 commit comments

Comments
 (0)