Skip to content

test: migrates the page objects used by Flows.js#27494

Closed
christopherferreira9 wants to merge 6 commits into
mainfrom
cferreira/migrate-performance-flows
Closed

test: migrates the page objects used by Flows.js#27494
christopherferreira9 wants to merge 6 commits into
mainfrom
cferreira/migrate-performance-flows

Conversation

@christopherferreira9
Copy link
Copy Markdown
Contributor

@christopherferreira9 christopherferreira9 commented Mar 16, 2026

Description

This PR migrates the page objects used by Flows.js (performance related) to the new unified approach.

Changelog

CHANGELOG entry:

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-1469

Manual testing steps

N/A

Screenshots/Recordings

Before

N/A

After

N/A

Pre-merge author checklist

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.

Note

Medium Risk
Medium risk because it refactors multiple frequently-used E2E page objects and selector strategies (including new XPath/catch-all locators), which can introduce cross-platform test flakiness even though production code is unaffected.

Overview
Migrates the page objects used by performance Flows.js to the unified EncapsulatedElement/UnifiedGestures approach, adding Appium/Playwright selector paths alongside existing Detox locators.

Adds new Appium-capable page objects/modals and expands existing onboarding and wallet page objects with cross-platform isVisible/wait helpers and flow-specific actions (e.g., SRP word-by-word entry, account list syncing waits).

Updates the migration test utilities and mocks to account for additional Playwright matcher types (getElementByXPath, getElementByCatchAll) and introduces a simple PlaywrightGestures.tap wrapper used by the migrated objects.

Written by Cursor Bugbot for commit 211f10f. This will update automatically on new commits. Configure here.

@christopherferreira9 christopherferreira9 requested a review from a team as a code owner March 16, 2026 16:14
@christopherferreira9 christopherferreira9 added team-qa QA team no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels Mar 16, 2026
@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.

Comment thread tests/page-objects/Onboarding/ImportWalletView.ts Outdated
@github-actions github-actions Bot added the risk-high Extensive testing required · High bug introduction risk label Mar 16, 2026
Comment thread tests/page-objects/Onboarding/ImportWalletView.ts
Comment thread tests/page-objects/Onboarding/MetaMetricsOptInView.ts
expect(PlaywrightMatchers.getElementByText).not.toHaveBeenCalled();
expect(PlaywrightMatchers.getElementByAccessibilityId).not.toHaveBeenCalled();
expect(PlaywrightMatchers.getElementByXPath).not.toHaveBeenCalled();
expect(PlaywrightMatchers.getElementByCatchAll).not.toHaveBeenCalled();
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.

Inconsistent indentation in noPlaywrightMatcherWasCalled function

Low Severity

The two new expect statements at lines 81–82 use 2-space indentation while all other statements in noPlaywrightMatcherWasCalled use 4-space indentation. This breaks the visual consistency of the function body.

Fix in Cursor Fix in Web

@github-actions github-actions Bot added risk-low Low testing needed · Low bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Mar 16, 2026
Comment thread tests/page-objects/wallet/AccountListBottomSheet.ts Outdated
@christopherferreira9 christopherferreira9 added skip-e2e-flakiness-detection Skips the E2E flakiness detection (extra runs on new and modified E2E files) skip-smart-e2e-selection Skip Smart E2E selection, i.e. select all E2E tests to run and removed skip-e2e-flakiness-detection Skips the E2E flakiness detection (extra runs on new and modified E2E files) labels Mar 17, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-low Low testing needed · Low bug introduction risk labels Mar 17, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Mar 17, 2026
Comment thread tests/page-objects/wallet/AccountListBottomSheet.ts Outdated
Comment thread tests/page-objects/wallet/AccountListBottomSheet.ts
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Mar 17, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Mar 17, 2026
@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

Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

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.

There are 2 total unresolved issues (including 1 from previous review).

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.

await Gestures.tap(this.continueButton, {
elemDescription: 'Import Wallet Continue Button',
await UnifiedGestures.tap(this.continueButton, {
description: 'Import Wallet Continue Button',
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.

tapContinueButton passes non-encapsulated element to UnifiedGestures

Medium Severity

tapContinueButton was migrated from Gestures.tap to UnifiedGestures.tap, but still passes this.continueButton which returns a plain DetoxElement instead of EncapsulatedElementType. In Appium context, AppiumGestureStrategy.tap would call .click() on a DetoxElement, which lacks that method. A properly encapsulated continueButtonEncapsulated getter already exists but isn't used here.

Additional Locations (1)
Fix in Cursor Fix in Web

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.

Will fix in a follow up pr

@github-actions
Copy link
Copy Markdown
Contributor

E2E Fixture Validation — Schema is up to date
17 value mismatches detected (expected — fixture represents an existing user).
View details

@sonarqubecloud
Copy link
Copy Markdown

@christopherferreira9 christopherferreira9 added this pull request to the merge queue Mar 17, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Mar 17, 2026
@christopherferreira9
Copy link
Copy Markdown
Contributor Author

Closing as not relevant for now.

@github-actions github-actions Bot locked and limited conversation to collaborators May 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed risk-high Extensive testing required · High bug introduction 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