test(e2e): harden Appium Test Dapp readiness for confirmations smokes (MMQA-2254) - #34577
test(e2e): harden Appium Test Dapp readiness for confirmations smokes (MMQA-2254)#34577chrisleewilcox wants to merge 10 commits into
Conversation
… (MMQA-2254) Wait for page chrome, provider injection, and enabled controls before tapping; prefer native Android WebView taps so CDP false-success clicks do not block CI. Co-authored-by: Cursor <cursoragent@cursor.com>
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
PR template — items to address before "Ready for review"Warnings — informational, address before merging:
See docs/readme/ready-for-review.md for the full Definition of Ready for Review. |
iOS WebView logo/title waits left the session in WEBVIEW, breaking native close-browser taps in network-manager2. Use native WebView + title text instead. Co-authored-by: Cursor <cursoragent@cursor.com>
… reset (MMQA-2254) iOS does not expose the Test Dapp title in the native tree. Keep WebView logo/title waits on iOS and always switch back to NATIVE_APP afterward. Co-authored-by: Cursor <cursoragent@cursor.com>
…QA-2254) After reload, fixture permissions can inject ethereum without globalConnectionChange, leaving action buttons disabled. Request accounts, emit the dapp connection event, then use trusted CDP clicks with native fallback so confirm sheets open reliably on Android Appium. Co-authored-by: Cursor <cursoragent@cursor.com>
…s (MMQA-2254)
Screenshots showed Create Token already clicked ("Creation Failed") while
CI re-tapped every 3s waiting for confirm-button. Wait 15s per tap for gas
estimation, nudge dapp UI gates without eth_requestAccounts, and emit
blockBaseFeePerGasUpdate so EIP-1559 send enables.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #34577 +/- ##
==========================================
- Coverage 85.12% 85.11% -0.01%
==========================================
Files 6350 6369 +19
Lines 173080 173713 +633
Branches 42804 42977 +173
==========================================
+ Hits 147333 147864 +531
- Misses 15708 15771 +63
- Partials 10039 10078 +39 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…s (MMQA-2254) CI screenshots showed NOT CONNECTED / Account undefined after we dispatched globalConnectionChange — buttons enabled without src.provider. Click Connect so the dapp runs its real eth_requestAccounts handler, then wait for #accounts. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…MMQA-2254) CI showed Active Provider UUID/Name empty while eth_accounts still worked — Connect used unset globalContext.provider. Click "Use MetaMask" after the EIP-6963 button appears, then hydrate accounts via Connect as before. Co-authored-by: Cursor <cursoragent@cursor.com>
…2254) iOS evaluateInWebView cannot await async eth_accounts Promises, so the new hydration path timed out and broke previously-green iOS confirmations smokes. Keep EIP-6963 Active Provider + Connect hydration on Android only. Co-authored-by: Cursor <cursoragent@cursor.com>
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: Performance Test Selection: |
|



Description
appium-confirmations-android-smokehas been consistently failing across unrelated PRs (shards 1 and 2), blocking merges.Root cause is the shared Test Dapp → confirmation path, not a product regression:
waitForTestDappToLoadonly asserted the URL bar, while Test Dapp action buttons staydisableduntil page JS runs and the provider connects / EIP-1559 support is detected.WebView.tapByIdpreferred CDP clicks that can report success without MetaMask opening the confirmation sheet (confirm-buttonnever appears).This PR hardens the shared helpers used by confirmations Appium smokes:
selectedAddress/#accounts) and DOM-enabled target before tappreferNative)Changelog
CHANGELOG entry: null
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-2254
Related: https://consensyssoftware.atlassian.net/browse/MMQA-2232
Manual testing steps
Local validation so far:
Screenshots/Recordings
N/A — test/infra-only change; no product UI changes.
Before
N/A
After
N/A
Pre-merge author checklist
Performance checks (if applicable)
Pre-merge reviewer checklist
Made with Cursor