From 10d104fd5c032efa1544f92431483bd0857dd07b Mon Sep 17 00:00:00 2001 From: kobenguyent Date: Thu, 23 Nov 2023 11:44:47 +0100 Subject: [PATCH] fix: disable retryFailedStep when using with tryTo --- lib/plugin/retryFailedStep.js | 3 +++ test/unit/plugin/retryFailedStep_test.js | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/plugin/retryFailedStep.js b/lib/plugin/retryFailedStep.js index 645eacdc7..3c8edc6b5 100644 --- a/lib/plugin/retryFailedStep.js +++ b/lib/plugin/retryFailedStep.js @@ -1,5 +1,6 @@ const event = require('../event'); const recorder = require('../recorder'); +const container = require('../container'); const defaultConfig = { retries: 3, @@ -98,6 +99,8 @@ module.exports = (config) => { config.when = when; event.dispatcher.on(event.step.started, (step) => { + if (container.plugins('tryTo')) return; + // if a step is ignored - return for (const ignored of config.ignoredSteps) { if (step.name === ignored) return; diff --git a/test/unit/plugin/retryFailedStep_test.js b/test/unit/plugin/retryFailedStep_test.js index 721aeadd9..faf15e648 100644 --- a/test/unit/plugin/retryFailedStep_test.js +++ b/test/unit/plugin/retryFailedStep_test.js @@ -28,7 +28,7 @@ describe('retryFailedStep', () => { event.dispatcher.emit(event.step.started, { name: 'click' }); let counter = 0; - recorder.add(() => { + await recorder.add(() => { counter++; if (counter < 3) { throw new Error(); @@ -51,7 +51,7 @@ describe('retryFailedStep', () => { }); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } // expects to retry only once @@ -65,7 +65,7 @@ describe('retryFailedStep', () => { let counter = 0; event.dispatcher.emit(event.step.started, { name: 'waitForElement' }); try { - recorder.add(() => { + await recorder.add(() => { counter++; if (counter < 3) { throw new Error(); @@ -73,7 +73,7 @@ describe('retryFailedStep', () => { }, undefined, undefined, true); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } expect(counter).to.equal(1); @@ -87,7 +87,7 @@ describe('retryFailedStep', () => { let counter = 0; event.dispatcher.emit(event.step.started, { name: 'amOnPage' }); try { - recorder.add(() => { + await recorder.add(() => { counter++; if (counter < 3) { throw new Error(); @@ -95,7 +95,7 @@ describe('retryFailedStep', () => { }, undefined, undefined, true); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } expect(counter).to.equal(1); @@ -109,7 +109,7 @@ describe('retryFailedStep', () => { let counter = 0; event.dispatcher.emit(event.step.started, { name: 'somethingNew' }); try { - recorder.add(() => { + await recorder.add(() => { counter++; if (counter < 3) { throw new Error(); @@ -117,7 +117,7 @@ describe('retryFailedStep', () => { }, undefined, undefined, true); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } expect(counter).to.equal(1); @@ -131,7 +131,7 @@ describe('retryFailedStep', () => { let counter = 0; event.dispatcher.emit(event.step.started, { name: 'somethingNew' }); try { - recorder.add(() => { + await recorder.add(() => { counter++; if (counter < 3) { throw new Error(); @@ -139,7 +139,7 @@ describe('retryFailedStep', () => { }, undefined, undefined, true); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } expect(counter).to.equal(1); @@ -161,7 +161,7 @@ describe('retryFailedStep', () => { }); await recorder.promise(); } catch (e) { - recorder.catchWithoutStop((err) => err); + await recorder.catchWithoutStop((err) => err); } // expects to retry only once