Files
e5dab1e854 tests(mobile): E2E for the nonce & approval draft editors (#8309)
* fix(mobile): expose dialog modal contents to accessibility

The overlay/container Pressables collapsed the dialog into one merged
a11y element (e.g. Cancel and Save read as a single label). Mark them
accessible={false} so the title, input and buttons stay individually
addressable for VoiceOver.

* tests(mobile): add draft-editor e2e setup harness

setupSendFlow seeds the primary Safe with an owner signer for the send
flow; setupApprovalDraft composes a swap-shaped multiSend draft (COW
approve + follow-up call) directly — the editors only render for drafts
— and surfaces the async outcome as e2e-draft-setup-ready/-failed
markers. Adds shared draft-editor timeouts to defaults.js.

* tests(mobile): add nonce-editor and approval-editor Maestro flows

send-nonce-editor drives the real send flow to a draft, then edits the
nonce (too-low custom value errors, a high one rebuilds and shows on the
row, recommended pick replaces it). approval-editor edits the approve
amount and toggles unlimited through the rebuild/redirect. Neither flow
signs or proposes — staging is only read.

* tests(mobile): verify approve action amount after each edit

After changing the approval value (edit to 2.5, then unlimited), open the
Actions row → approve action and assert its decoded on-chain _value in wei,
so the test checks the rebuilt calldata rather than just the display pill.

* tests(mobile): assert approve spender in the approval editor flow

Check the spender address in the approve action detail alongside the
amount, so an amount edit that also altered the spender would be caught.

* tests(mobile): verify nonce in transaction details after each change

After each nonce change (custom then recommended), open the transaction
details and assert the Nonce row matches the confirm-screen row. Uses
copyTextFrom so it works for the dynamic recommended nonce too.

* tests(mobile): address review polish on draft-editors setup

- waitFor: accept falsy non-null values (value != null) so future
  callers returning 0/''/false don't silently time out
- assert setupSendFlow triggers onboarding navigation

* tests(mobile): remove draft-editors suite orchestrator

The send-nonce-editor and approval-editor flows reset state
independently and run standalone, so the suite wrapper is redundant.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-30 17:38:52 +02:00
..