Skip to content

Conversation

mikhail-yesipchuk-zenitech
Copy link
Contributor

Motivation/Description of the PR

  • [iOS 17+] Override of 'sauce:options' cap into 'appium:sauce:options' lead to error on start and does not allow to run tests on cloud provider: iOS 17 and above must be used with the W3C protocol and Appium 2. Visit https://docs.saucelabs.com/mobile-apps/automated-testing/appium/appium-2-migration/ to learn how to migrate to Appium 2.
  • Preconditions: "codeceptjs": "^3.7.4", "webdriverio": "^9.19.2", cloud provider: SauceLabs
  • Used settings
    Appium: {
    "appiumV2": true,
    "protocol": "https",
    "host": "ondemand.eu-central-1.saucelabs.com",
    "region": "eu",
    "port": 443,
    "path": "/wd/hub",
    "user": "mikhail.yesipchuk",
    "key": "...",
    "waitForTimeout": 5000,
    "smartWait": 3000,
    "app": "storage:filename=.ipa",
    "platform": "iOS",
    "restart": false,
    "reuseSession": false,
    "desiredCapabilities": {
    "platformName": "iOS",
    "appium:app": "storage:filename=
    .ipa",
    "appium:automationName": "XCUITest",
    "appium:platformVersion": "18",
    "appium:deviceName": "iPhone 1.*",
    "appium:language": "en",
    "appium:locale": "en_GB",
    "sauce:options": {
    "name": "Mobile Automation Test - iOS",
    "appiumVersion": "latest",
    "phoneOnly": true,
    "networkCapture": false,
    },
    "appium:noReset": true,
    "appium:fullReset": false,
    "appium:waitForIdleTimeout": 0,
    "appium:newCommandTimeout": 90,
    "appium:autoAcceptAlerts": true,
    "appium:useNewWDA": false
    }
    }
Screenshot 2025-09-22 at 14 57 48

Note: issue happens after update wdio from v8 to v9

Applicable helpers:

  • Appium

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)

Test run:
220 passing (4m)
1 pending
1 failing

  1. CodeceptJS Workers Runner
    should run tests with pool mode:
    Uncaught Error: expect(received).toContain(expected) // indexOf

Expected substring: "Scenario Steps:"
Received string: "CodeceptJS v3.7.5 #StandWithUkraine

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

@Copilot 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

Fixes an issue where the Appium helper was incorrectly prefixing the sauce:options capability with appium:, causing test failures on iOS 17+ devices using SauceLabs cloud provider. The fix prevents the automatic prefixing of cloud provider-specific capabilities that should remain in their original format.

  • Added exception for sauce:options capability to prevent automatic appium: prefixing
  • Ensures cloud provider capabilities maintain their required format for proper communication
  • Fixes compatibility issue with WDIO v9 upgrade affecting iOS 17+ test execution

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

@kobenguyent kobenguyent merged commit 37cd6cb into codeceptjs:3.x Sep 24, 2025
19 of 22 checks passed
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.

2 participants