Skip to content

test: migrate contact syncing smoke tests to Appium SmokeAccounts#32109

Open
cmd-ob wants to merge 2 commits into
mainfrom
e2e/move-contact-sync-to-appium
Open

test: migrate contact syncing smoke tests to Appium SmokeAccounts#32109
cmd-ob wants to merge 2 commits into
mainfrom
e2e/move-contact-sync-to-appium

Conversation

@cmd-ob

@cmd-ob cmd-ob commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Description

Migrates the last Detox identity smoke tests (contact syncing) to Appium under SmokeAccounts, completing the identity smoke → accounts team ownership move started in #31945.

Changes:

  • Add tests/smoke-appium/accounts/contact-syncing.spec.ts — single multi-phase test covering sync-to-user-storage, restore after restart, and exclusion when contact sync is disabled
  • Add contact flow helpers in accounts.flow.ts and contactFixtureOptions in identity-fixture-options.ts
  • Update Contacts page objects to use PlatformDetector (Appium-safe)
  • Remove Detox contact-sync specs, orphaned mock-data.ts files, and Detox identity-*-smoke CI jobs
  • Retire SmokeIdentity smoke tag (scope merged into SmokeAccounts description)

After this PR there are no Detox smoke specs under tests/smoke/identity/ — only shared utils remain for Appium fixtures.

Changelog

CHANGELOG entry: null

Related issues

Refs: MMQA-1984

Manual testing steps

Feature: Contact syncing (Appium SmokeAccounts)

  Scenario: contact sync writes to user storage and restores after restart
    Given the Appium smoke suite is built with SmokeAccounts tag
    And contact sync is enabled in Backup and Sync settings

    When the user adds a contact from the account menu
    Then the contact is written to mocked user storage
    And after an app restart the contact is still visible in the contacts list

  Scenario: contacts added while sync is disabled are not restored
    Given a synced contact already exists
    And the user disables contact sync in Backup and Sync settings

    When the user adds a second contact locally
    And the app is restarted
    Then the originally synced contact is still visible
    And the locally added contact is not visible

CI: Appium SmokeAccounts (4 shards) on Android and iOS.

Screenshots/Recordings

N/A — test infrastructure migration only; no user-facing UI changes. Validation is via Appium smoke CI.

Before

N/A

After

N/A

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.

Made with Cursor

@cmd-ob cmd-ob requested review from a team as code owners June 19, 2026 16:25
@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.

@github-actions github-actions Bot added the pr-not-ready-for-e2e Skip E2E and block merging. Remove this label once the PR is ready to run the E2E tests. label Jun 19, 2026
@github-actions github-actions Bot added size-L risk:low AI analysis: low risk labels Jun 19, 2026
@cmd-ob cmd-ob removed the pr-not-ready-for-e2e Skip E2E and block merging. Remove this label once the PR is ready to run the E2E tests. label Jun 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeAccounts
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: medium
  • AI Confidence: 95%
click to see 🤖 AI reasoning details

E2E Test Selection:
This PR migrates contact syncing tests from the now-removed SmokeIdentity tag into SmokeAccounts. Key changes:

  1. SmokeIdentity tag removed from tests/tags.js and CI workflows — the identity/profile sync functionality is now covered under SmokeAccounts.

  2. Contact syncing spec files deleted (tests/smoke/identity/contact-syncing/contact-sync-toggle.spec.ts, sync-users-contacts.spec.ts, mock-data.ts) — these used SmokeIdentity.

  3. New contact syncing spec added (tests/smoke-appium/accounts/contact-syncing.spec.ts) — uses SmokeAccounts tag, migrated to Appium/Playwright framework.

  4. New flow helpers added to tests/flows/accounts.flow.ts: openContactsViaAccountMenu, loginAndOpenContacts, addContact, disableContactSyncViaSettings — these are used by the new contact syncing spec.

  5. Page objects updated (AddContactView.ts, ContactsView.ts) — refactored to use PlatformDetector.isIOS() instead of device.getPlatform() === 'ios'. These page objects are used in SmokeAccounts tests.

  6. CI workflows updated — removed identity-android-smoke and identity-ios-smoke jobs.

SmokeAccounts must run to validate:

  • The new contact syncing spec works correctly under the SmokeAccounts tag
  • The new flow helpers (addContact, loginAndOpenContacts, disableContactSyncViaSettings) function correctly
  • The PlatformDetector.isIOS() refactoring in page objects works correctly
  • The overall migration from SmokeIdentity to SmokeAccounts is sound

No other tags are needed since this is purely test infrastructure migration with no app code changes.

Performance Test Selection:
No app code changes in this PR — only test infrastructure changes (spec files, page objects, flow helpers, CI workflows, tags.js). No performance-sensitive code paths are affected.

View GitHub Actions results

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low AI analysis: low risk size-L team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants