Skip to content

test(e2e): strengthen Appium Snap helpers ahead of remaining migrations - #34054

Merged
cmd-ob merged 4 commits into
mainfrom
e2e/snaps-appium-foundation
Jul 30, 2026
Merged

test(e2e): strengthen Appium Snap helpers ahead of remaining migrations#34054
cmd-ob merged 4 commits into
mainfrom
e2e/snaps-appium-foundation

Conversation

@cmd-ob

@cmd-ob cmd-ob commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Shared WebView/Appium helper improvements (WebView, Utilities, gestures, emulator helpers) used by Snap smokes.
  • TestSnaps page-object/selector updates, snap navigation flows, and related page-object tweaks.
  • Scale Appium SmokeSnaps shards (and Android timeout) ahead of migrating the remaining Detox snap suites.

Split from #33898. Specs migration and Detox CI removal follow in stacked PRs.

Test plan

  • Confirm Appium SmokeSnaps CI still passes on existing Appium snap suites with 8 shards
  • Spot-check that Detox SmokeSnaps jobs remain unchanged (still covering remaining Detox suites)
  • No snap spec add/delete in this PR

Made with Cursor

Shared WebView/Appium utilities, TestSnaps page objects/selectors, snap flows, and SmokeSnaps shard scaling so remaining Detox→Appium snap migrations can land as specs-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cmd-ob
cmd-ob requested a review from a team as a code owner July 30, 2026 12:07
@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 team-qa QA team INVALID-PR-TEMPLATE PR's body doesn't match template labels Jul 30, 2026
@metamask-ci

metamask-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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.

@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 139b1f6. Configure here.

Comment thread tests/page-objects/Browser/TestSnaps.ts Outdated
@github-actions github-actions Bot added the risk:medium AI analysis: medium risk label Jul 30, 2026
cmd-ob and others added 2 commits July 30, 2026 13:23
… helper

Re-merge PlaywrightGestures onto latest main so the named export used by unit tests is not dropped when adding typeViaIosKeyboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
Gate Appium WebView.blurActiveElement behind FrameworkDetector so Detox SmokeSnaps signing flows still blur via the main Detox WebView script.

Co-authored-by: Cursor <cursoragent@cursor.com>
* Dialog Snap custom input. iOS uses textfield selector as testID
* is not exposed in page source.
*/
async fillCustomDialogInput(text: string) {

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.

Should we move this into TestSnaps.selectors.ts?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Moved the locator strings (testIDs / iOS XPath) into TestSnaps.selectors.ts; left resolve/encapsulated in the page object.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated

`.resourceIdMatches(".*snap-ui-renderer__selector-item.*").childSelector(new UiSelector().text("${text}"))`,
),
ios: () =>
PlaywrightMatchers.getElementByXPath(

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.

Same as above, can it be moved into TestSnaps.selectors.ts?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Same here — selector-item ID + Android/iOS locator string builders now live in TestSnaps.selectors.ts; encapsulated stays in the page object.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated

Keep resolve/encapsulated wiring in the page object; hoist custom-input and selector-item IDs/XPaths into TestSnaps.selectors.ts.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cmd-ob
cmd-ob requested a review from vivek-consensys July 30, 2026 13:07
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeAccounts, SmokeConfirmations, SmokeNetworkAbstractions, SmokeNetworkExpansion, SmokeSwap, SmokeStake, SmokeWalletPlatform, SmokeMoney, SmokePerps, SmokeMultiChainAPI, SmokePredictions, SmokeSeedlessOnboarding, SmokeBrowser, SmokeSnaps, SmokeMMConnect
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: high
  • AI Confidence: 100%
click to see 🤖 AI reasoning details

E2E Test Selection:
Hard rule (test-framework-infra-change): Test framework infrastructure changed: tests/framework/Assertions.ts, tests/framework/Utilities.ts, tests/framework/fixtures/FixtureUtils.ts. Running all tests.

Performance Test Selection:
No app source code changes are present in this PR - all changes are to test infrastructure (page objects, flows, framework utilities, selectors, CI workflows, and the AI analyzer prompt). Performance tests measure app responsiveness and render times based on app code changes, not test framework changes. The FixtureUtils.ts change is a test utility fix, not an app performance change. Therefore no performance test tags are warranted.

View GitHub Actions results

@vivek-consensys vivek-consensys 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.

LGTM

@sonarqubecloud

Copy link
Copy Markdown

@cmd-ob
cmd-ob enabled auto-merge July 30, 2026 14:09
@cmd-ob
cmd-ob added this pull request to the merge queue Jul 30, 2026
Merged via the queue into main with commit 957031c Jul 30, 2026
315 of 317 checks passed
@cmd-ob
cmd-ob deleted the e2e/snaps-appium-foundation branch July 30, 2026 14:51
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 30, 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 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template 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 team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants