Skip to content

test: MMQA-2092 migrate wallet browser smoke to Appium 1/2 - #33816

Merged
vivek-consensys merged 8 commits into
mainfrom
MMQA-2092-wallet-browser-smoke-appium
Jul 27, 2026
Merged

test: MMQA-2092 migrate wallet browser smoke to Appium 1/2#33816
vivek-consensys merged 8 commits into
mainfrom
MMQA-2092-wallet-browser-smoke-appium

Conversation

@vivek-consensys

Copy link
Copy Markdown
Contributor

Description

Part 1/2 of MMQA-2092: migrates Detox wallet browser download and navigation smoke coverage to Appium so these flows run in the Appium smoke pipeline.

  • Adds tests/smoke-appium/wallet/browser/browser-download.spec.ts and browser-navigation.spec.ts
  • Removes the corresponding Detox specs under tests/smoke/wallet/browser/
  • Hardens shared Browser page objects / external website POs for Appium (selectors, waits, download handling)
  • Adds browser-url-display-text testID so URL-bar focus works without coordinate taps
  • Extends Playwright assertions for Appium URL / text checks where needed
  • Skips the cross-origin redirect URL-bar assertion until #33815 / MCWP-540 (URL bar does not update after JS cross-origin redirects)

Changelog

CHANGELOG entry: null

Related issues

Fixes: MMQA-2092

Manual testing steps

Feature: Wallet browser Appium smoke (download + navigation)

  Scenario: downloads a file from the browser
    Given the Appium main-e2e build is installed on a simulator or emulator
    And fixtures start with an imported wallet and browser available
    When the user opens the download test dapp and triggers a download
    Then the download completes successfully

  Scenario: navigates browser history and URL bar flows
    Given the Appium main-e2e build is installed on a simulator or emulator
    And fixtures start with an imported wallet and browser available
    When the user navigates between pages via URL bar / back / forward
    Then the browser URL and page content update as expected

  Scenario: cross-origin redirect URL bar (skipped)
    Given a JS cross-origin redirect occurs in the in-app browser
    Then the URL bar should show the redirected origin
    # Currently skipped — tracked by MetaMask/metamask-mobile#33815

Local commands:

# iOS
IOS_APP_PATH=build/ci-main-e2e/MetaMask.app \
yarn appium-smoke:ios \
  tests/smoke-appium/wallet/browser/browser-download.spec.ts \
  tests/smoke-appium/wallet/browser/browser-navigation.spec.ts

# Android
ANDROID_APK_PATH=build/ci-main-e2e/app-prod-release.apk \
yarn appium-smoke:android \
  tests/smoke-appium/wallet/browser/browser-download.spec.ts \
  tests/smoke-appium/wallet/browser/browser-navigation.spec.ts

Screenshots/Recordings

N/A — E2E/test-focused change (small testID addition only); no end-user product UI change.

Before

N/A

After

N/A

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Made with Cursor

vivek-consensys and others added 3 commits July 24, 2026 15:33
…MQA-2092)

Move Detox browser download/navigation specs to smoke-appium with Appium page
objects and selectors, and add a URL display Text testID so URL-bar focus works
without coordinate taps.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rely on page-load waits instead of a hardcoded post-submit delay.

Co-authored-by: Cursor <cursoragent@cursor.com>
Skip until #33815 — URL bar does not update after JS cross-origin redirects (MCWP-540).

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

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.

@metamask-ci metamask-ci Bot added the team-qa QA team label Jul 27, 2026
@metamask-ci

metamask-ci Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

PR template — items to address before "Ready for review"

Warnings — informational, address before merging:

  • Pre-merge author checklist has unchecked items (e.g. "I've applied the right labels on the PR (see labeling guidelines). Not required for external contributors."). Every box must be consciously checked — see docs/readme/ready-for-review.md.

See docs/readme/ready-for-review.md for the full Definition of Ready for Review.

vivek-consensys and others added 3 commits July 27, 2026 13:06
Replace hardcoded waitForExist/waitAndTap timeouts with existing assertion
and gesture helpers, and route expectElementNotToHaveText through executeWithRetry.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move download dialog selectors into a shared selectors file and rely on
framework default timeouts for BrowserView, DownloadFile, and ENS retry.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vivek-consensys vivek-consensys added the skip-smart-e2e-selection Skip Smart E2E selection, i.e. select all E2E tests to run label Jul 27, 2026
@vivek-consensys
vivek-consensys marked this pull request as ready for review July 27, 2026 11:49
@vivek-consensys
vivek-consensys requested a review from a team as a code owner July 27, 2026 11:49
@github-actions github-actions Bot added the risk:medium AI analysis: medium risk label Jul 27, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9579dc8. Configure here.

Comment thread tests/page-objects/Browser/BrowserView.ts
Use browser-url-display-text instead of the url-input wrapper so
expectUrlNotEqualTo cannot pass on empty getText().

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - skip-smart-e2e-selection label found

All E2E tests pre-selected.

View GitHub Actions results

@sonarqubecloud

Copy link
Copy Markdown

@vivek-consensys
vivek-consensys added this pull request to the merge queue Jul 27, 2026
Merged via the queue into main with commit 54e4635 Jul 27, 2026
287 of 289 checks passed
@vivek-consensys
vivek-consensys deleted the MMQA-2092-wallet-browser-smoke-appium branch July 27, 2026 14:39
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 27, 2026
@metamask-ci metamask-ci Bot added the release-8.6.0 Issue or pull request that will be included in release 8.6.0 label Jul 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-8.6.0 Issue or pull request that will be included in release 8.6.0 risk:medium AI analysis: medium risk size-L skip-smart-e2e-selection Skip Smart E2E selection, i.e. select all E2E tests to run team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants