[LWD] Staking/Unstaking e2e tests#18882
Conversation
Covers the staking entry on a delegated account (3-step stake modal) and the earning-choice chooser routing on an undelegated account.
Unstake from the staking-section menu; change-validator and stop-delegation are blocked (unstake-required modal) while staked. Adds menu buttonIds and fills the staking-flow Xray ids.
There was a problem hiding this comment.
Pull request overview
This PR adds Ledger Wallet Desktop (Playwright + Speculos) end-to-end coverage for Tezos staking/unstaking flows behind lldTezosStaking, and introduces stable dropdown trigger/item identifiers in the Tezos account UI to make those flows addressable from E2E tests.
Changes:
- Add a new desktop E2E spec covering Tezos earning-choice routing, stake/restake, unstake, and “blocked while staked” gating behaviors.
- Add new Tezos staking-related modal page objects and wire them into the E2E
Applicationpage holder. - Add
buttonIdprops to the Tezos staking-section and delegation context menus to provide stable DOMids for test selectors, plus a changeset for the desktop package.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| e2e/desktop/tests/specs/stake.spec.ts | New Playwright spec covering Tezos staking/unstaking + blocked actions while staked. |
| e2e/desktop/tests/page/modal/tezos.unstake.required.modal.ts | Page object for interacting with the “unstake required” gating modal and delegation menu actions. |
| e2e/desktop/tests/page/modal/tezos.unstake.modal.ts | Page object for opening and completing the Tezos unstake modal flow. |
| e2e/desktop/tests/page/modal/tezos.stake.modal.ts | Page object for Tezos stake flow steps (validator/amount/awaiting-delegation/success). |
| e2e/desktop/tests/page/modal/tezos.earning.choice.modal.ts | Page object for the Tezos earning-choice chooser modal. |
| e2e/desktop/tests/page/modal/delegate.modal.ts | Adds a helper assertion for the Tezos delegation starter UI. |
| e2e/desktop/tests/page/index.ts | Exposes the new Tezos modal page objects on the Application fixture. |
| apps/ledger-live-desktop/src/renderer/families/tezos/Delegation/StakingSection.tsx | Adds buttonId="tezos-staking-menu" to the staking-section dropdown for stable selectors. |
| apps/ledger-live-desktop/src/renderer/families/tezos/Delegation/ContextMenu.tsx | Adds buttonId="tezos-delegation-menu" to the delegation context menu dropdown for stable selectors. |
| .changeset/mighty-otters-juggle.md | Changeset documenting the desktop UI test-id enabling change. |
Web Tools Build Status
|
|
Rsdoctor Bundle Diff AnalysisFound 7 projects in monorepo, 7 projects with changes. 📊 Quick Summary
📋 Detailed Reports (Click to expand)📁 desktop-mainPath:
📁 desktop-preloaderPath:
📁 desktop-rendererPath:
📁 desktop-webviewDappPreloaderPath:
📁 desktop-webviewPreloaderPath:
📁 desktop-workersPath:
📁 mobilePath:
Generated by Rsdoctor GitHub Action |
index-0 stays undelegated for earning-choice + legacy receive/add/delegate; index-1 (delegated + staked) hosts stake/unstake/blocked.
f35c592 to
8d996c0
Compare
|



✅ Checklist
npx changesetwas attached.📝 Description
Adds desktop (Playwright + Speculos) end-to-end coverage for the Tezos LWD staking feature (lldTezosStaking), which previously had none. New
e2e/desktop/tests/specs/stake.spec.ts + Tezos page objects cover:
Device signing reuses the existing Tezos delegation flow — the app signs stake/unstake through the same on-device review screens, so no new signer was added. The only non-test change is two buttonId props on the staking-section and delegation context-menu dropdowns so their menus are addressable from tests (no behaviour change).
❓ Context
🧐 Checklist for the PR Reviewers