Skip to content

fix: retryFailedStep plugin works in debug/verbose mode#5128

Open
mirao wants to merge 56 commits into
codeceptjs:4.xfrom
mirao:fix-retry-failed-step-debug-mode
Open

fix: retryFailedStep plugin works in debug/verbose mode#5128
mirao wants to merge 56 commits into
codeceptjs:4.xfrom
mirao:fix-retry-failed-step-debug-mode

Conversation

@mirao
Copy link
Copy Markdown
Contributor

@mirao mirao commented Sep 2, 2025

Fixed by VSCode Copilot with Claude Sonnet 4.

Personally I checked that the added unit test fails as expected before the fix.

Motivation/Description of the PR

  • Remove debugMode check that prevented retries when --verbose or --debug flags are used
  • Fix affects both retryFailedStep and enhancedRetryFailedStep plugins
  • Add regression test to ensure retries work correctly in debug mode
  • Resolves issue where plugin was disabled in debug mode without clear reason

Fixes #4384

Applicable helpers:

  • Playwright
  • Puppeteer
  • WebDriver
  • REST
  • FileHelper
  • Appium
  • TestCafe

Applicable plugins:

  • allure
  • autoDelay
  • autoLogin
  • customLocator
  • pauseOnFail
  • coverage
  • retryFailedStep
  • screenshotOnFail
  • selenoid
  • stepByStepReport
  • stepTimeout
  • wdio
  • subtitles

Type of change

  • 🔥 Breaking changes
  • 🚀 New functionality
  • 🐛 Bug fix
  • 🧹 Chore
  • 📋 Documentation changes/updates
  • ♨️ Hot fix
  • 🔨 Markdown files fix - not related to source code
  • 💅 Polish code

Checklist:

  • Tests have been added
  • Documentation has been added (Run npm run docs)
  • Lint checking (Run npm run lint)
  • Local tests are passed (Run npm test)

dependabot Bot and others added 30 commits July 16, 2025 09:36
Bumps [playwright](https://github.com/microsoft/playwright) from 1.53.0 to 1.54.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.53.0...v1.54.1)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.54.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [expect](https://github.com/jestjs/jest/tree/HEAD/packages/expect) from 29.7.0 to 30.0.4.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.4/packages/expect)

---
updated-dependencies:
- dependency-name: expect
  dependency-version: 30.0.4
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.10.0 to 16.11.0.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](graphql/graphql-js@v16.10.0...v16.11.0)

---
updated-dependencies:
- dependency-name: graphql
  dependency-version: 16.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [electron](https://github.com/electron/electron) from 37.1.0 to 37.2.3.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](electron/electron@v37.1.0...v37.2.3)

---
updated-dependencies:
- dependency-name: electron
  dependency-version: 37.2.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [axios](https://github.com/axios/axios) from 1.8.4 to 1.11.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.8.4...v1.11.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…deceptjs#5046)

Bumps [typedoc-plugin-markdown](https://github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/typedoc2md/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/typedoc2md/typedoc-plugin-markdown/blob/main/packages/typedoc-plugin-markdown/CHANGELOG.md)
- [Commits](https://github.com/typedoc2md/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@4.7.1/packages/typedoc-plugin-markdown)

---
updated-dependencies:
- dependency-name: typedoc-plugin-markdown
  dependency-version: 4.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…s#5041)

Bumps [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) from 1 to 2.
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](browser-actions/setup-chrome@v1...v2)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.28.7 to 0.28.10.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](TypeStrong/typedoc@v0.28.7...v0.28.10)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-version: 0.28.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: hook exit code

* Update asyncWrapper.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update asyncWrapper.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update asyncWrapper.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update asyncWrapper.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update asyncWrapper.js

* Update asyncWrapper.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tsd](https://github.com/tsdjs/tsd) from 0.32.0 to 0.33.0.
- [Release notes](https://github.com/tsdjs/tsd/releases)
- [Commits](tsdjs/tsd@v0.32.0...v0.33.0)

---
updated-dependencies:
- dependency-name: tsd
  dependency-version: 0.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…deceptjs#5067)

Bumps [typedoc-plugin-markdown](https://github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) from 4.7.1 to 4.8.1.
- [Release notes](https://github.com/typedoc2md/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/typedoc2md/typedoc-plugin-markdown/blob/main/packages/typedoc-plugin-markdown/CHANGELOG.md)
- [Commits](https://github.com/typedoc2md/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@4.8.1/packages/typedoc-plugin-markdown)

---
updated-dependencies:
- dependency-name: typedoc-plugin-markdown
  dependency-version: 4.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…Timeout` value at the end of test suite (codeceptjs#5077)

* Initial plan

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
* Initial plan

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
codeceptjs#5082)

* Initial plan

* Fix JUnit XML test case name inconsistency in scenario retries

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Improve edge case handling for empty suite titles in cloned tests

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
* fix: TestCafe_test.js

* Fix TestCafe form submission timeout with efficient polling mechanism (codeceptjs#5080)

* Initial plan

* Fix failed TestCafe tests by skipping doubleClick test

* Update testcafe.yml

* Update testcafe.yml

* Update TestCafe_test.js

* Update TestCafe_test.js

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Fix TestCafe form submission timeout in CI environments

* Improve TestCafe form submission timeout handling with polling mechanism

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Improve TestCafe form submission timeout with efficient polling mechanism

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Update testcafe.yml

* fix: Chrome popup causes problems with TestCafe

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
Co-authored-by: kobenguyent <kobenguyent@gmail.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* Initial plan

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Add TypeScript types for Feature.only method

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Fix TypeScript test expectations for hook return types

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
* Initial plan

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
Copilot AI and others added 26 commits August 22, 2025 14:22
… element instance (codeceptjs#5091)

* Initial plan

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Fix helper tests to expect WebElement instances instead of native elements

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
)

* Initial plan

* Fix waitForText timeout regression in Playwright helper

* Add comprehensive tests for waitForText timeout behavior

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Fix waitForText timeout regression by checking title text

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

* Fix contextObject.waitForFunction error in iframe contexts

Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <7845001+kobenguyent@users.noreply.github.com>
…th Docker Compose support and reliable data reloading (codeceptjs#5101)
 codeceptjs#5042) (codeceptjs#5106)

* Fix: JSONResponse helper to preserve original onResponse behavior (Fixes codeceptjs#5042)

* Add unit tests for REST onResponse hook functionality:Fixes codeceptjs#5042

---------

Co-authored-by: myrepo <myrepo1987@gmail.com>
…odeceptjs#5109)

* Initial plan

* Complete sensitive data masking feature with custom patterns and documentation

* fix: runner tests

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kobenguyent <kobenguyent@gmail.com>
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.31.0 to 9.34.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.34.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… in `run-workers --by pool` (codeceptjs#5118)

* fix: Reset browser context and state on close

* test: add acceptance tests
…en sequentially executed tests, leading to state leakage (codeceptjs#5121)
* fix: improve traffic recording checks and add test for stopping network recording

* fix: lint

* fix: make stopRecordingTraffic asynchronous and add request interception handling for pupperteer
- Remove debugMode check that prevented retries when --verbose or --debug flags are used
- Fix affects both retryFailedStep and enhancedRetryFailedStep plugins
- Add regression test to ensure retries work correctly in debug mode
- Resolves issue where plugin was disabled in debug mode without clear reason

Fixes codeceptjs#4384
Comment thread lib/plugin/enhancedRetryFailedStep.js Outdated

const when = err => {
if (!enableRetry) return false
if (store.debugMode) return false
Copy link
Copy Markdown
Contributor Author

@mirao mirao Sep 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if the fix is needed here too, because enhancedRetryFailedStep plugin seems the quite hot new feature: #5103

@kobenguyent kobenguyent requested a review from Copilot September 23, 2025 08:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a bug where the retryFailedStep and enhancedRetryFailedStep plugins were disabled when running CodeceptJS with --verbose or --debug flags. The fix removes the debugMode check that prevented retries from working in debug mode.

  • Removes if (store.debugMode) return false check from both retry plugins
  • Adds regression test to verify retries work correctly when debugMode is enabled
  • Ensures retry functionality is available regardless of debug/verbose mode settings

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
lib/plugin/retryFailedStep.js Removes debugMode check that blocked retries in debug mode
lib/plugin/enhancedRetryFailedStep.js Removes debugMode check that blocked retries in debug mode
test/unit/plugin/retryFailedStep_test.js Adds regression test to ensure retries work in debug mode

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@kobenguyent kobenguyent changed the base branch from 3.x to 4.x June 2, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plugin "retryFailedStep" doesn't work in --debug or --verbose mode, searching for element fails immediately

8 participants