Release Notes
Released 2026-09-22
What’s Changed
Section titled “What’s Changed”- fix: workerInitializationDelay is not hardcoded by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5676
- mask secret data rows in data-driven titles by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5693
- fix: preserve test artifacts on retry by @gololdf1sh in https://github.com/codeceptjs/CodeceptJS/pull/5690
- fix(junit): preserve suite identity for hook failures reported from workers by @kapil971390 in https://github.com/codeceptjs/CodeceptJS/pull/5664
- fix(appium): skip data connectivity on devices without telephony (#5677) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5678
- fix(parser): inject params into one-line non-async arrow scenarios by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5680
- fix(typescript): no loader required under Bun by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5699
- fix(helpers): restore substring matching in waitInUrl by @nlespiaucq in https://github.com/codeceptjs/CodeceptJS/pull/5682
- feat: CDPBrowser helper family — Obscura and Kitesurf mini-browser support by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5681
- fix(junitReporter): stamp suites with their real start time by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5683
- fix: keep element text in simplifyHtmlElement by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5691
- fix(typescript): map included .ts files in step output by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5685
- fix: report Bun runtime in environment info by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5700
- feat: selectOption works with role=radiogroup widgets by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5702
- feat: checkOption finds checkables by ARIA role by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5704
- Serialize data-driven object titles as JSON by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5709
- refactor(locator): find ARIA checkables in Locator, not in each helper by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5708
- fix(hooks): emit hook.failed when a helper suite hook throws by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5684
- feat(strict-mode): render nested matches as tree in fetchDetails() by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5710
- feat(Playwright): visibleLocator config option by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5707
- fix(CDPBrowser): support ARIA radiogroups in selectOption, fix waitInUrl message by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5711
- fix(helpers): scroll element into view in moveCursorTo by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5715
- fix: use bunx instead of npx to read Playwright versions under Bun by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5714
- fix(Playwright): skip visibleLocator for scrollTo and grab* methods by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5712
- fix(Playwright): switchTo resolves nested iframes relative to current frame by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5717
- fix: retryFailedStep plugin works in debug/verbose mode by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5128
- fix: prevent retry config accumulation by @smalia2001 in https://github.com/codeceptjs/CodeceptJS/pull/5606
- docs: prepare Obscura and Node.js 22 for 4.2 by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5719
- feat(helpers): add seeInClipboard, seeClipboardEquals and clearClipboard by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5718
New Contributors
Section titled “New Contributors”- @luantaraschi made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5683
- @smalia2001 made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5606
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.1.0…4.2.0
4.2.0-beta.4 (pre-release)
Section titled “4.2.0-beta.4 (pre-release)”Released 2026-09-22
What’s Changed
Section titled “What’s Changed”- fix(Playwright): switchTo resolves nested iframes relative to current frame by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5717
- fix: retryFailedStep plugin works in debug/verbose mode by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5128
- fix: prevent retry config accumulation by @smalia2001 in https://github.com/codeceptjs/CodeceptJS/pull/5606
- docs: prepare Obscura and Node.js 22 for 4.2 by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5719
New Contributors
Section titled “New Contributors”- @smalia2001 made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5606
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.2.0-beta.3…4.2.0-beta.4
4.2.0-beta.2 (pre-release)
Section titled “4.2.0-beta.2 (pre-release)”Released 2026-09-10
What’s Changed
Section titled “What’s Changed”- Serialize data-driven object titles as JSON by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5709
- refactor(locator): find ARIA checkables in Locator, not in each helper by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5708
- fix(hooks): emit hook.failed when a helper suite hook throws by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5684
- feat(strict-mode): render nested matches as tree in fetchDetails() by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5710
- feat(Playwright): visibleLocator config option by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5707
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.2.0-beta.1…4.2.0-beta.2
4.2.0-beta.1 (pre-release)
Section titled “4.2.0-beta.1 (pre-release)”Released 2026-09-08
Added new Obscura helper for execution in Obscura browser
What’s Changed
Section titled “What’s Changed”- fix: workerInitializationDelay is not hardcoded by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5676
- mask secret data rows in data-driven titles by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5693
- fix: preserve test artifacts on retry by @gololdf1sh in https://github.com/codeceptjs/CodeceptJS/pull/5690
- fix(junit): preserve suite identity for hook failures reported from workers by @kapil971390 in https://github.com/codeceptjs/CodeceptJS/pull/5664
- fix(appium): skip data connectivity on devices without telephony (#5677) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5678
- fix(parser): inject params into one-line non-async arrow scenarios by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5680
- fix(typescript): no loader required under Bun by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5699
- fix(helpers): restore substring matching in waitInUrl by @nlespiaucq in https://github.com/codeceptjs/CodeceptJS/pull/5682
- feat: CDPBrowser helper family — Obscura and Kitesurf mini-browser support by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5681
- fix(junitReporter): stamp suites with their real start time by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5683
- fix: keep element text in simplifyHtmlElement by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5691
- fix(typescript): map included .ts files in step output by @luantaraschi in https://github.com/codeceptjs/CodeceptJS/pull/5685
- fix: report Bun runtime in environment info by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5700
- feat: selectOption works with role=radiogroup widgets by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5702
- feat: checkOption finds checkables by ARIA role by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5704
New Contributors
Section titled “New Contributors”- @luantaraschi made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5683
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.1.0…4.2.0-beta.1
Released 2026-07-30
What’s Changed
Section titled “What’s Changed”- Fixes run-rerun by @DenysKuchma in https://github.com/codeceptjs/CodeceptJS/pull/5667
- fix(core): load Mocha test files as ES Modules (fixes internal-API imports from tests, #5636) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5640
- chore(deps): bump @xmldom/xmldom from 0.9.8 to 0.9.10 by @ElVisPL in https://github.com/codeceptjs/CodeceptJS/pull/5651
- fix(appium): replace deprecated setNetworkConnection/getNetworkConnection with mobile: setConnectivity/getConnectivity by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5662
- fix(typings): add ARIA locators to ILocator by @patryk-przybysz in https://github.com/codeceptjs/CodeceptJS/pull/5665
- chore(deps-dev): bump eslint-plugin-mocha from 11.2.0 to 11.3.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5629
- chore(deps-dev): bump graphql from 16.12.0 to 16.14.2 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5627
- chore(deps): bump monocart-coverage-reports from 2.12.9 to 2.12.12 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5625
New Contributors
Section titled “New Contributors”- @ElVisPL made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5651
- @patryk-przybysz made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5665
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.9…4.1.0
Released 2026-07-07
What’s Changed
Section titled “What’s Changed”- fix(data): detect DataTable structurally so Data() works under tsx/cjs (#5641) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5649
- fix: future proof for ts6 by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5616
- ci(docker): build multi-arch images (amd64 + arm64) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5648
- fix(pause): stop pause() at the right step in 4.x (#5652) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5653
- fix(graphql): drop ESM-broken _checkRequirements() so
checkworks (#5654) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5658 - Add a custom Firefox binary example to the Playwright helper docs by @feder-cr in https://github.com/codeceptjs/CodeceptJS/pull/5655
- fix(junit): report suite hook failures via hook.failed event by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5657
New Contributors
Section titled “New Contributors”- @feder-cr made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5655
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.8…4.0.9
Released 2026-06-17
What’s Changed
Section titled “What’s Changed”- test(core): characterize promise-core error and hang paths by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5622
- fix(pause): remove leaked dispatcher listeners and guard session restore by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5630
- fix(core): re-land asyncWrapper + promise-core error-path fixes onto 4.x (#5624, #5633) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5637
- fix: guard sort() with shuffle check so —shuffle is not silently ignored by @kapil971390 in https://github.com/codeceptjs/CodeceptJS/pull/5639
- fix(typescript): unique temp file names to fix run-multiple race (#5642) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5643
New Contributors
Section titled “New Contributors”- @kapil971390 made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5639
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.7…4.0.8
Released 2026-06-17
- ESM test loading https://github.com/codeceptjs/CodeceptJS/pull/5640
Released 2026-06-13
What’s Changed
Section titled “What’s Changed”- fix(init): missing file ext of step file when using typescript by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5615
- fix(deps): don’t auto-install detox & react-native (#5620) by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5621
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.6…4.0.7
Released 2026-06-09
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.5…4.0.6
Released 2026-06-08
What’s Changed
Section titled “What’s Changed”- chore(deps): bump commander from 14.0.3 to 15.0.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5611
- chore(deps-dev): bump typedoc-plugin-markdown from 4.9.0 to 4.12.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5610
- chore(deps): bump @cucumber/messages from 32.0.1 to 32.3.1 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5609
- chore(deps-dev): bump ts-morph from 27.0.2 to 28.0.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5608
- chore(deps-dev): bump sinon from 21.0.1 to 22.0.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5607
- Add safeguards fo finish in pause.js #5461 by @incoming-th in https://github.com/codeceptjs/CodeceptJS/pull/5612
New Contributors
Section titled “New Contributors”- @incoming-th made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5612
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.4…4.0.5
Released 2026-06-05
What’s Changed
Section titled “What’s Changed”- fix(init): emit ESM-compatible tsconfig for TypeScript projects by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5596
- fix: support Playwright 1.58+ output format in
codeceptjs info(4.x) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5437 - fix: run-workers —by suite parallelization broken by test file sorting (4.x) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5438
- fix: some path issues on windows by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5595
- Fix: (index.d.ts) remove globals, add missing exports by @danielrentz in https://github.com/codeceptjs/CodeceptJS/pull/5597
- fix(container.js): TypeScript import to handle default export by @kobenguyent in https://github.com/codeceptjs/CodeceptJS/pull/5604
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.3…4.0.4
Released 2026-05-28
What’s Changed
Section titled “What’s Changed”- docs: fix typo in detox.md by @javigomez in https://github.com/codeceptjs/CodeceptJS/pull/5579
- fix(gherkin): emit test.before/after with real current test by @danikkrapivnitskiy in https://github.com/codeceptjs/CodeceptJS/pull/5580
- test(gherkin): cover event.test.before/after payload regression by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5582
- fix(appium): resolve “Unsupported helper type: unknown” in fillField by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5583
- chore: upgrade axios to 1.16.1 by @mscpdg in https://github.com/codeceptjs/CodeceptJS/pull/5584
- chore(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5485
- chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5484
- chore(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5483
- chore(deps): bump @codeceptjs/detox-helper from 1.1.13 to 1.1.14 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5439
- chore(deps-dev): bump electron from 40.1.0 to 40.2.1 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5441
- chore(deps-dev): bump @faker-js/faker from 10.2.0 to 10.3.0 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5443
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5454
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in https://github.com/codeceptjs/CodeceptJS/pull/5455
New Contributors
Section titled “New Contributors”- @danikkrapivnitskiy made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5580
- @mscpdg made their first contribution in https://github.com/codeceptjs/CodeceptJS/pull/5584
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.2…4.0.3
Released 2026-05-24
What’s Changed
Section titled “What’s Changed”- fix(run-multiple): restore plugin loading and per-child reportDir (#5577) by @mirao in https://github.com/codeceptjs/CodeceptJS/pull/5578
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.1…4.0.2
Released 2026-05-23
What’s Changed
Section titled “What’s Changed”- fixed esm compatible def by @DavertMik in https://github.com/codeceptjs/CodeceptJS/pull/5576
- Fix retryFailedStep ignoredSteps exact-name matching by @gololdf1sh in https://github.com/codeceptjs/CodeceptJS/pull/5571
Full Changelog: https://github.com/codeceptjs/CodeceptJS/compare/4.0.0…4.0.1