Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: codeceptjs/CodeceptJS
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4.0.2
Choose a base ref
...
head repository: codeceptjs/CodeceptJS
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4.0.3
Choose a head ref
  • 13 commits
  • 18 files changed
  • 9 contributors

Commits on May 26, 2026

  1. Configuration menu
    Copy the full SHA
    989ad79 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    75f9afd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b63587e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    204a0b0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3e21c57 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0ce5349 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    38f76bd View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    675c608 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    080da45 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2026

  1. fix(gherkin): emit test.before/after with real current test (#5580)

    Gherkin beforeEach/afterEach pass Mocha hook Context into setup/teardown,
    but asyncWrapper read suite.ctx.currentTest (undefined on Context), so
    event.test.before received a placeholder test (title "...", empty tags).
    
    Also forward Mocha's done callback instead of no-op () => {}, so
    event.test.before completes before scenario Background Before hooks run.
    
    Co-authored-by: Daniil Krapiunitski <[email protected]>
    Co-authored-by: Cursor <[email protected]>
    3 people authored May 27, 2026
    Configuration menu
    Copy the full SHA
    770749e View commit details
    Browse the repository at this point in the history
  2. test(gherkin): cover event.test.before/after payload regression (#5582)

    Adds three layers of coverage for the bug fixed in 770749e (gherkin
    beforeEach/afterEach emitting event.test.before with a placeholder test
    when the hook Context lacked .ctx.currentTest):
    
    * Unit (test/unit/bdd_test.js): six tests in a new "Gherkin hook events"
      block that drive the codeceptjs.before/after hooks with a mock Mocha
      Context and assert the real scenario title and tags reach
      event.test.before, event.test.after, the Before/After step-definition
      hooks, and that done is forwarded.
    * Runner (test/runner/bdd_test.js + test/data/sandbox): a capture plugin
      and codecept.bdd.events.js config that serialize event payloads to a
      temp JSON file so a spawned runner asserts the real @important/@very
      tags reach listeners end-to-end.
    * Acceptance (test/acceptance/gherkin/before_hook.feature + steps.js):
      a new Background+tagged feature whose Then step verifies both the BDD
      Before() hook and a direct event.test.before listener captured the
      real scenario.
    
    Also flips setup/teardown to prefer suite.ctx.currentTest over
    suite.currentTest, restoring the regular Scenario path while keeping the
    BDD fallback.
    
    Co-authored-by: DavertMik <[email protected]>
    Co-authored-by: Claude Opus 4.7 <[email protected]>
    3 people authored May 27, 2026
    Configuration menu
    Copy the full SHA
    6c7e718 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2026

  1. fix(appium): resolve "Unsupported helper type: unknown" in fillField (#…

    …5583)
    
    * fix(appium): resolve "Unsupported helper type: unknown" in fillField
    
    Appium extends WebDriver but WebElement._detectHelperType only checked
    constructor.name === 'WebDriver', so Appium helpers fell through to
    'unknown'. fillRichEditor (added in #5527) wraps elements in WebElement
    and calls evaluate(), which then threw on every fillField/appendField
    call from Appium.
    
    - WebElement now walks the prototype chain so any subclass of
      WebDriver/Playwright/Puppeteer is detected correctly.
    - WebDriver.fillField skips fillRichEditor when isWeb === false, since
      rich-editor detection needs a DOM that doesn't exist in Appium native.
    - Appium constructor: appiumV2 defaulted via `|| true` (always truthy);
      the v1-deprecation banner then fired on every default-config user.
      Fixed both: explicit `appiumV2: false` is now honored, and the banner
      only prints when the user opts into v1.
    - Added regression tests for prototype-chain detection.
    - Enabled the Android Appium workflow on pull_request to 4.x so the fix
      can be verified end-to-end via Sauce Labs from the PR.
    
    Co-Authored-By: Claude Opus 4.7 <[email protected]>
    
    * fix(appium): raise connectionRetryTimeout to 5min, enable test retries
    
    The Sauce Labs Android emulator cold-start regularly exceeds
    webdriverio's 2-minute connectionRetryTimeout default, producing
    UND_ERR_HEADERS_TIMEOUT on `POST /wd/hub/session` and failing the
    suite before any test runs. Bump the default for the Appium helper
    to 5 minutes (mobile cloud grids are slow by nature).
    
    Also re-enable Mocha's `this.retries(1)` in the Appium test suite —
    already attempted but commented out — so a single transient Sauce
    Labs hiccup no longer reds the whole job.
    
    Co-Authored-By: Claude Opus 4.7 <[email protected]>
    
    * fix(appium): silence "Method is not implemented" log spam from isDisplayed
    
    webdriverio v9 implements element.isDisplayed() by injecting a JS
    visibility check via POST /execute/sync. Appium's native context has no
    JS engine, so every call lands a "Method is not implemented" error in
    the wdio logger before the existing _isDisplayedSafe catch swallows it.
    
    Tests pass but logs are noisy with these false-positive errors during
    seeElement, click, grabTextFrom, grabAttributeFrom, etc.
    
    Override isDisplayed at the element level: short-circuit to true while
    in native context so the failing request is never issued. Matches the
    semantics _isDisplayedSafe already applies (treats "not implemented" as
    displayed since we found the element). In web/webview context, defer
    to the original implementation.
    
    Co-Authored-By: Claude Opus 4.7 <[email protected]>
    
    ---------
    
    Co-authored-by: DavertMik <[email protected]>
    Co-authored-by: Claude Opus 4.7 <[email protected]>
    3 people authored May 28, 2026
    Configuration menu
    Copy the full SHA
    d48558a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    06cdb0c View commit details
    Browse the repository at this point in the history
Loading