Skip to content

test: fixed issue with new modal appearing#30917

Merged
javiergarciavera merged 7 commits into
mainfrom
MMQA-new-notifications-modal
Jun 2, 2026
Merged

test: fixed issue with new modal appearing#30917
javiergarciavera merged 7 commits into
mainfrom
MMQA-new-notifications-modal

Conversation

@javiergarciavera

@javiergarciavera javiergarciavera commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Description

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]

Screenshots/Recordings

Before

After

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.

Note

Low Risk
Changes are limited to test helpers and performance specs; no production app logic is modified.

Overview
Performance and Playwright E2E flows are updated so post-login and post-onboarding overlays no longer block navigation or skew timers.

wallet.flow adds optional-dismiss helpers for the existing-user push notification sheet and Experience Enhancer marketing modal, and calls them from loginToAppPlaywright, onboardingFlowImportSRPPlaywright, and several onboarding performance specs after Done. Experience Enhancer and Toast page objects gain Detox/Appium dismissIfPresent / waitForToastToDismiss (non-failing when UI is absent). Predict performance specs wait for toasts before tapping Actions; Perps add funds asserts quote readiness via TransactionPayConfirmation.transactionFee; the multi-SRP import perf case is **skip**ped (account sync); ETH swap uses a larger test amount; seedless Android timer budgets are slightly relaxed; Predict modal dismiss reuses one button handle for the hidden wait.

Reviewed by Cursor Bugbot for commit 3fe4812. Bugbot is set up for automated code reviews on this repo. Configure here.

@javiergarciavera javiergarciavera requested a review from a team as a code owner June 2, 2026 07:17
@github-actions

github-actions Bot commented Jun 2, 2026

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.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.72%. Comparing base (044726b) to head (7a1dc0c).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff            @@
##             main   #30917    +/-   ##
========================================
  Coverage   82.72%   82.72%            
========================================
  Files        5566     5573     +7     
  Lines      143286   143424   +138     
  Branches    33099    33145    +46     
========================================
+ Hits       118529   118650   +121     
- Misses      16870    16881    +11     
- Partials     7887     7893     +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread tests/flows/wallet.flow.ts Outdated
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: @PerformanceLogin, @PerformanceOnboarding, @PerformanceSwaps, @PerformancePreps, @PerformancePredict
  • Risk Level: low
  • AI Confidence: 92%
click to see 🤖 AI reasoning details

E2E Test Selection:
All 13 changed files are exclusively in the tests/ directory — no application source code was modified. The changes are:

  1. tests/flows/wallet.flow.ts: Added dismissPushNotificationExistingUserSheet() and dismissExperienceEnhancerModal() helper functions, and called them inside loginToAppPlaywright() and onboardingFlowImportSRPPlaywright(). These are test stability improvements to handle modals that appear after login/onboarding and block navigation in performance tests.

  2. tests/page-objects/Onboarding/ExperienceEnhancerBottomSheet.ts: Enhanced the page object with Playwright/Appium dual-framework support, added noThanksButton, iAgreeButton, dismissIfPresent(), and tapNoThanks() methods.

  3. tests/page-objects/wallet/ToastModal.ts: Added waitForToastToDismiss() with polling logic for both Detox and Appium frameworks.

  4. Performance test specs (tests/performance/): All changes are stability fixes — adding dismissPushNotificationExistingUserSheet() calls after onboarding/login, adding ToastModal.waitForToastToDismiss() before navigation, skipping a flaky test, adjusting timer thresholds, and fixing an assertion in perps-add-funds.

Since no Detox E2E test files or app source code were changed, no Detox E2E tags are required. The changes are purely in the Playwright/Appium performance test infrastructure.

Performance Test Selection:
All changed files are in the performance test infrastructure. The key changes that warrant running performance tests are: (1) loginToAppPlaywright() in wallet.flow.ts now calls dismissPushNotificationExistingUserSheet() and dismissExperienceEnhancerModal() — this function is used by virtually all performance tests (login, onboarding, swap, perps, predict, mm-connect), so the fix needs validation; (2) ToastModal.waitForToastToDismiss() was added to predict-available-balance and predict-market-details specs; (3) perps-add-funds.spec.ts updated its assertion to use TransactionPayConfirmation; (4) onboarding specs (import-wallet, new-wallet-account-creation, seedless-apple, seedless-google) all added the push notification dismissal call; (5) eth-swap-flow.spec.ts changed the swap amount from 0.0001 to 0.01. The @PerformanceLogin tag covers login flows that use loginToAppPlaywright. @PerformanceOnboarding covers the onboarding specs. @PerformanceSwaps covers eth-swap-flow. @PerformancePreps covers perps-add-funds. @PerformancePredict covers the predict specs. The import-multiple-srps test was skipped so no account list performance tag is needed for that change.

View GitHub Actions results

@javiergarciavera javiergarciavera added the no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed label Jun 2, 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 3fe4812. Configure here.

testEnvironment,
);

await dismissPushNotificationExistingUserSheet();

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.

Missing experience enhancer dismiss in onboarding flows

Medium Severity

loginToAppPlaywright dismisses both dismissPushNotificationExistingUserSheet and dismissExperienceEnhancerModal, but completeOnboardingPlaywright and all onboarding specs only call dismissPushNotificationExistingUserSheet. If the experience enhancer modal appears after onboarding (it's a navigation-level modal registered in App.tsx), it would block the subsequent WalletView.container visibility assertion or predict modal timer, causing test failures.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3fe4812. Configure here.

@javiergarciavera javiergarciavera added this pull request to the merge queue Jun 2, 2026
Merged via the queue into main with commit 69552da Jun 2, 2026
108 of 164 checks passed
@javiergarciavera javiergarciavera deleted the MMQA-new-notifications-modal branch June 2, 2026 14:38
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 2, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.81.0 Issue or pull request that will be included in release 7.81.0 label Jun 2, 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 release-7.81.0 Issue or pull request that will be included in release 7.81.0 risk:low AI analysis: low risk size-M team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants