chore(appium): harden local runner with preflights and clearer docs#39
Open
nan-li wants to merge 1 commit into
Open
chore(appium): harden local runner with preflights and clearer docs#39nan-li wants to merge 1 commit into
nan-li wants to merge 1 commit into
Conversation
Surface setup problems early instead of as cryptic late failures, based on issues hit running the suite on a fresh machine. run-local.sh: * fail-fast preflight for appium, the platform driver, vpx, and auto-install of node_modules when missing, each with remediation * auto-export WDIO_USE_NATIVE_FETCH=1 on Node >= 26 (webdriverio/undici fetch incompatibility; CI on Node 24 is unaffected) * fail fast on missing ONESIGNAL_APP_ID/API_KEY, directing users to the OneSignal app dedicated to Appium tests (not a general/shared app, whose live in-app campaigns can cover the UI and break tests) * graceful iOS simulator/runtime fallback (booted sim, else newest available runtime + matching device) * uninstall the app on iOS reset so the notification permission prompt reappears for local notification tests docs: * document the Vite+/vpx prerequisite and Node version expectations * note to use the dedicated Appium test app for credentials * explain CI-vs-local notification-test gating (itSkipBsIos / isBrowserStackIos) and the Enterprise signing-cert reason Co-authored-by: Cursor <cursoragent@cursor.com>
fadi-george
approved these changes
Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes
appium/scripts/run-local.shsurface setup problems early with actionable messages (or recover automatically) instead of failing late with cryptic errors, based on issues hit running the suite on a fresh machine. Also clarifies the docs. Local-only: CI callsvpx wdio rundirectly and does not use this script, so none of these changes affect CI behavior.run-local.shappium, the platform driver (xcuitest/uiautomator2), andvpx, plus auto-install ofnode_moduleswhen missing — each with the exact remediation command.WDIO_USE_NATIVE_FETCH=1when local Node ≥ 26 (webdriverio's undici dispatcher is rejected by Node 26's fetch). CI on Node 24 is unaffected.ONESIGNAL_APP_ID/ONESIGNAL_API_KEYnow fails fast, directing users to the OneSignal app dedicated to Appium tests — not a general/shared app, whose live in-app campaigns can cover the UI and cause misleading "element not displayed" failures.DEVICE/OS_VERSION/IOS_RUNTIMEso the Appium session matches.reset_appnow uninstalls the app on iOS so the permission prompt reappears (it can't be reset viasimctl privacy), which the local-only notification tests depend on.Docs
vpxprerequisite and Node version expectations.itSkipBsIos/isBrowserStackIos) and the Enterprise signing-cert reason behind the BrowserStack iOS skips.Test plan
appium/driver/vpx: script exits early with the correct install command.node_modules: script auto-installs before proceeding.WDIO_USE_NATIVE_FETCH=1is set automatically; Node 24 unaffected.--skip/--skip-reset).Made with Cursor