Skip to content

test: add hardware wallet e2e on ios#618

Draft
piotr-iohk wants to merge 4 commits into
masterfrom
test/hw-wallet-e2e-ios
Draft

test: add hardware wallet e2e on ios#618
piotr-iohk wants to merge 4 commits into
masterfrom
test/hw-wallet-e2e-ios

Conversation

@piotr-iohk

@piotr-iohk piotr-iohk commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Refs #589

This PR:

  1. Aligns hardware wallet accessibility identifiers with the Android E2E suite so Appium can drive connect, rename, delete, transfer, and settings flows on iOS.
  2. Adds Trezor bridge plist keys and enables Trezor bridge in the local E2E app build.
  3. Wires @hardware_wallet specs into the self-hosted local iOS E2E job (with Trezor emulator image pull), running serially alongside the existing local grep list.

Linked Issues/Tasks

Refs #589

Companion PR: synonymdev/bitkit-e2e-tests#195

Screenshot / Video

N/A

QA Notes

Manual Tests

N/A

Automated Checks

  • iOS E2E helpers updated in companion bitkit-e2e-tests PR: actions.ts adds cross-platform id-prefix matching; hardware-wallet.ts fixes rename/delete taps on iOS.
  • Local E2E workflow adds @hardware_wallet to the existing e2e-tests-local grep, pulls the Trezor emulator image, and builds with TREZOR_BRIDGE=true / TREZOR_BRIDGE_URL=http://127.0.0.1:21325.
  • Hardware wallet specs exercised locally on iOS simulator with BACKEND=local: @hardware_wallet_1, @hardware_wallet_2, @hardware_wallet_3 pass.
  • CI: local iOS E2E shard runs on the self-hosted macOS runner after merge (workflow changes only apply to PRs opened after this merges).

@greptile-apps

greptile-apps Bot commented Jul 8, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds iOS hardware-wallet E2E support. The main changes are:

  • Hardware-wallet accessibility identifiers aligned with the cross-platform E2E suite.
  • Trezor bridge settings added to the app plist.
  • Local iOS E2E workflow expanded to run @hardware_wallet specs.

Confidence Score: 4/5

This is close, but the hardware-wallet E2E config should be fixed before merging.

  • The bridge settings are added for the local E2E app build.
  • The Electrum setting is added to the plist but not defined by the same workflow.
  • Hardware-wallet regtest flows can receive an unresolved placeholder instead of the expected Electrum endpoint.

Bitkit/Info.plist and .github/workflows/e2e-tests.yml

Important Files Changed

Filename Overview
.github/workflows/e2e-tests.yml Adds Trezor bridge build settings and includes hardware-wallet specs in the local iOS E2E shard.
Bitkit/Info.plist Adds Trezor bridge and Electrum plist keys for hardware-wallet E2E configuration.
Bitkit/Views/Settings/General/HardwareWalletsSettingsScreen.swift Updates hardware-wallet settings identifiers and row interactions for E2E access.
Bitkit/Views/Sheets/HardwareConnect/HwFoundView.swift Renames found-screen accessibility identifiers for the hardware-wallet flow.
Bitkit/Views/Sheets/HardwareConnect/HwPairedView.swift Adds a paired-screen accessibility identifier.
Bitkit/Views/Sheets/HardwareConnect/HwSearchingView.swift Renames searching-screen accessibility identifiers for the hardware-wallet flow.
Bitkit/Views/Sheets/HardwareConnectSheet.swift Renames intro-sheet accessibility identifiers for the hardware-wallet flow.
Bitkit/Views/Transfer/Hardware/SpendingAmountHw.swift Adds an accessibility identifier to the hardware transfer amount screen.
Bitkit/Views/Transfer/Hardware/SpendingHwSign.swift Adds an accessibility identifier to the hardware signing screen.
Bitkit/Views/Wallets/HardwareWalletScreen.swift Adds an accessibility identifier to the hardware wallet screen.

Reviews (2): Last reviewed commit: "ci: drop trezor image pull from ios e2e" | Re-trigger Greptile

Comment thread .github/workflows/e2e-tests.yml Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1081e125c4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/e2e-tests.yml
@piotr-iohk piotr-iohk requested a review from jvsena42 July 8, 2026 14:42
@piotr-iohk piotr-iohk mentioned this pull request Jul 9, 2026
9 tasks
@piotr-iohk piotr-iohk marked this pull request as draft July 10, 2026 13:37
@piotr-iohk piotr-iohk marked this pull request as ready for review July 13, 2026 14:46
Comment thread Bitkit/Info.plist
Comment on lines +30 to +31
<key>TREZOR_ELECTRUM_URL</key>
<string>$(TREZOR_ELECTRUM_URL)</string>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Define Electrum URL

The local E2E build now defines TREZOR_BRIDGE and TREZOR_BRIDGE_URL, but this new TREZOR_ELECTRUM_URL plist value has no matching build setting in the workflow. When the app falls back to the plist, the hardware-wallet regtest path can receive the literal $(TREZOR_ELECTRUM_URL) value as its Electrum URL. That leaves bridge-backed hardware-wallet tests able to find the emulator, but unable to sync or sign through the expected regtest Electrum endpoint.

@piotr-iohk piotr-iohk marked this pull request as draft July 13, 2026 16:24
@piotr-iohk

Copy link
Copy Markdown
Collaborator Author

Docker pull of trezor emulator is stuck on mac-mini. Needs investigation on mac-mini itself - James will have access to it next week to check.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant