Conversation
|
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. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
None of these changes affect Detox E2E smoke test flows. The WalletView.ts page object is used by Playwright performance tests, not Detox smoke tests. No smoke test tags are warranted. For performance tests: The changes directly affect Performance Test Selection: |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
❌ 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 a37b8b6. Configure here.
| <SectionHeader | ||
| title={title} | ||
| onPress={handleViewAllTokens} | ||
| testID={TokensSectionTestIds.SECTION_HEADER} |
There was a problem hiding this comment.
Duplicate testID on simultaneously rendered sections
High Severity
Both TokensSectionMain and TokensSectionTrendingOnly use the identical TokensSectionTestIds.SECTION_HEADER ('tokens-section-header') as their testID. In Homepage.tsx, when separateTrending is true, both components render simultaneously on-screen (lines ~234 and ~290). This produces two DOM elements with the same testID, making the WalletView.tokensSection E2E selector ambiguous — it may match the trending section instead of the main tokens section. The PR aims to fix flakiness but this introduces a new source of it.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a37b8b6. Configure here.
| launchableActivity: 'io.metamask.MainActivity', | ||
| }, | ||
| buildPath: process.env.BROWSERSTACK_ANDROID_APP_URL, // Path to Browserstack url | ||
| buildPath: 'bs://c0fac532d9c0e9db7e7031931029b09564307577', // Path to Browserstack url |
There was a problem hiding this comment.
Hardcoded BrowserStack URLs replace environment variables
High Severity
The buildPath for browserstack-android and browserstack-ios projects was changed from process.env.BROWSERSTACK_ANDROID_APP_URL / process.env.BROWSERSTACK_IOS_APP_URL to hardcoded BrowserStack hashes (bs://c0fac53... and bs://13447ba...). These point to a specific build artifact and will fail for all other CI runs or team members. Other projects in the same config (e.g., mm-connect-android-browserstack) still correctly use environment variables.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a37b8b6. Configure here.
| // Browserstack does not support appium 3 just yet. | ||
| name: 'browserstack-android', | ||
| testMatch: '**/performance/login/**/*.spec.ts', | ||
| testMatch: '**/performance/login/**/asset-view.spec.ts', |
There was a problem hiding this comment.
BrowserStack testMatch narrowed to single file only
Medium Severity
The testMatch for browserstack-android and browserstack-ios projects changed from **/performance/login/**/*.spec.ts to **/performance/login/**/asset-view.spec.ts. This excludes at least 7 other performance test files (e.g., asset-balances.spec.ts, cross-chain-swap-flow.spec.ts, eth-swap-flow.spec.ts) from running on BrowserStack. The local android and ios projects still use the wildcard pattern, suggesting this narrowing was a debugging change that got committed.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a37b8b6. Configure here.
|





Description
Changelog
CHANGELOG entry:
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Medium Risk
Moderate risk because it changes Playwright project matching/build configuration and alters iOS-specific element lookup/polling logic, which can affect what runs in CI and how tests behave across platforms.
Overview
Improves homepage token section testability by adding
TokensSectionTestIdsand wiringtestIDinto theTokensSectionSectionHeader(including trending-only mode), then updatingWalletViewpage objects to target that ID instead of header text.Reduces iOS Appium/Playwright flakiness by switching some iOS lookups to accessibility-id selectors, updating token row selection similarly, and revising
waitForBalanceToStabilizeto first wait for the balance empty-state banner to disappear before running the usual stability polling.Adjusts performance test expectations/config by increasing the
asset-viewtimer thresholds and narrowing BrowserStack Playwright projects to only runasset-view.spec.ts, with hardcoded BrowserStackbuildPathURLs.Reviewed by Cursor Bugbot for commit a37b8b6. Bugbot is set up for automated code reviews on this repo. Configure here.