Skip to content

test: add performance tests for seedless onboarding#26753

Merged
grvgoel81 merged 26 commits into
mainfrom
feat/seedless-onboarding-performance-tests
Mar 30, 2026
Merged

test: add performance tests for seedless onboarding#26753
grvgoel81 merged 26 commits into
mainfrom
feat/seedless-onboarding-performance-tests

Conversation

@grvgoel81

@grvgoel81 grvgoel81 commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Description

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

Feature: Seedless onboarding performance tests.

  Scenario: Android seedless onboarding perf project runs with mock OAuth env
    Given BrowserStack credentials and onboarding Android build are configured
    When someone runs the test for Android onboarding seedless 
    Then seedless-apple and/or seedless-google perf specs execute 

  Scenario: iOS seedless onboarding perf project runs with mock OAuth env
    Given BrowserStack credentials and onboarding iOS build are configured
    When someone runs the test for iOS onboarding seedless
    Then seedless perf specs complete and timers reflect the documented steps

Screenshots/Recordings

Before

After

Screenshot 2026-03-30 at 12 10 24 PM
Screen.Recording.2026-03-27.at.6.28.14.PM.mov
Screen.Recording.2026-03-27.at.6.30.17.PM.mov

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

Low Risk
Adds new Appwright performance tests and extends a screen object to support Appwright interactions; production app code is untouched, with minimal risk limited to potential test flakiness from updated selectors/tap behavior.

Overview
Adds two new Appwright performance specs that measure end-to-end seedless onboarding timings for Apple and Google social login, including post-OAuth handling, password creation, metrics consent, and first wallet render.

Introduces a new SocialLoginScreen screen object for iOS post-OAuth/new-user and account-status screens, and updates OnboardingSheet Apple/Google login selectors and tap methods to support both legacy (WDIO) and Appwright (device-aware) execution.

Written by Cursor Bugbot for commit 50f2215. Configure here.

@grvgoel81 grvgoel81 self-assigned this Mar 2, 2026
@github-actions

github-actions Bot commented Mar 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.

@grvgoel81 grvgoel81 added the team-onboarding Onboarding team label Mar 2, 2026
@github-actions github-actions Bot added the size-M label Mar 2, 2026
@grvgoel81 grvgoel81 changed the title test: add preformance tests for seedless onboarding test: add performance tests for seedless onboarding Mar 3, 2026
@github-actions github-actions Bot added size-L and removed size-M labels Mar 16, 2026
@github-actions github-actions Bot added size-M and removed size-L labels Mar 16, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk size-L and removed size-M labels Mar 17, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk size-M and removed risk-high Extensive testing required · High bug introduction risk size-L 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
@grvgoel81 grvgoel81 marked this pull request as ready for review March 30, 2026 03:23
@grvgoel81 grvgoel81 requested review from a team as code owners March 30, 2026 03:23
Comment thread tests/performance/onboarding/seedless-apple-onboarding.spec.js
Comment thread tests/performance/onboarding/seedless-google-onboarding.spec.js Outdated
Comment thread wdio/screen-objects/Onboarding/CreateNewWalletScreen.js
Comment thread wdio/screen-objects/Onboarding/CreateNewWalletScreen.js
Comment thread wdio/screen-objects/Onboarding/CreatePasswordScreen.js
Comment thread wdio/screen-objects/Onboarding/CreatePasswordScreen.js
@github-actions github-actions Bot added risk-medium Moderate testing recommended · Possible bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Mar 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeWalletPlatform, SmokeAccounts, SmokeIdentity
  • Selected Performance tags: @PerformanceOnboarding
  • Risk Level: medium
  • AI Confidence: 78%
click to see 🤖 AI reasoning details

E2E Test Selection:

This PR introduces seedless OAuth onboarding performance testing infrastructure with the following key changes:

  1. Core Authentication Changes (medium risk):

    • Authentication.ts: Added isE2EMockOAuth() guard to skip createAndBackupSeedPhrase during E2E mock OAuth. This is gated by env var so production behavior is unchanged, but the authentication path is modified.
    • OAuthService.ts: Significant refactoring — handleOAuthLogin now splits into #handleOAuthLoginMockPath and #handleOAuthLoginProductionPath. The production path logic is preserved but restructured. This warrants validation of the normal onboarding/login flows.
  2. metro.config.js (medium risk):

    • The seedless onboarding controller mock and OAuth login handlers mock are now conditional (controlled by E2E_USE_SEEDLESS_CONTROLLER_METRO_MOCK and E2E_USE_OAUTH_LOGIN_HANDLERS_METRO_MOCK env vars). Previously these were always active in E2E builds. This could affect existing E2E tests that relied on these mocks being unconditionally active. The default behavior (when E2E_USE_SEEDLESS_OAUTH_METRO_MOCK is not set to 'false') should preserve existing behavior for standard E2E runs, but this is a risk area.
  3. Performance test infrastructure (new):

    • New seedless-apple-onboarding.spec.js and seedless-google-onboarding.spec.js are Appwright/wdio-based performance tests, not Detox tests — no Detox tags needed for these.
    • New appwright.config.ts projects and CI workflow changes are infrastructure-only.
  4. wdio screen objects: Changes to OnboardingSheet.js, CreatePasswordScreen.js, CreateNewWalletScreen.js, and new SocialLoginScreen.js are for the Appwright/wdio framework, not Detox.

Selected Detox E2E tags:

  • SmokeWalletPlatform: Covers wallet lifecycle analytics (new wallet creation, SRP import events) and multi-SRP architecture. The Authentication.ts and OAuthService.ts changes directly affect wallet creation flows.
  • SmokeAccounts: Covers SRP export flows, account management, and multi-SRP architecture. The authentication changes could affect how accounts are created and managed.
  • SmokeIdentity: Covers account syncing and backup flows. The createAndBackupSeedPhrase path in Authentication.ts is directly modified, and identity sync is tied to the seedless onboarding flow.

The changes are primarily test infrastructure and E2E mock additions, but the core Authentication.ts and OAuthService.ts modifications (even if gated by env vars) warrant running onboarding-related E2E tests to ensure the production path still works correctly.

Performance Test Selection:
Two new performance test specs are added directly to tests/performance/onboarding/ — seedless-apple-onboarding.spec.js and seedless-google-onboarding.spec.js — both tagged with @PerformanceOnboarding. The appwright.config.ts adds new 'android-onboarding-seedless' and 'ios-onboarding-seedless' projects specifically to run these tests. The CI workflows are updated to pass OAuth mock credentials to BrowserStack builds. These new performance tests measure the seedless onboarding flow timing (OAuth → password creation → wallet main screen), which is a new critical user flow. @PerformanceOnboarding should be selected to validate the new seedless onboarding performance tests work correctly with the new QAMockOAuthService infrastructure.

View GitHub Actions results

@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

@grvgoel81 grvgoel81 added this pull request to the merge queue Mar 30, 2026
Merged via the queue into main with commit 8462332 Mar 30, 2026
123 of 133 checks passed
@grvgoel81 grvgoel81 deleted the feat/seedless-onboarding-performance-tests branch March 30, 2026 14:29
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 30, 2026
@metamaskbot metamaskbot added the release-7.73.0 Issue or pull request that will be included in release 7.73.0 label Mar 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.73.0 Issue or pull request that will be included in release 7.73.0 risk-medium Moderate testing recommended · Possible bug introduction risk size-XL team-onboarding Onboarding team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants