This folder contains the end-to-end (E2E) tests for the Ledger Wallet Desktop app. Dev teams are responsible for adding/updating tests when implementing new features.
Use the /e2e-desktop-onboard skill (from an agent tool that supports repo skills) for a guided walkthrough that checks every
prerequisite, validates your environment, builds the app, and runs a smoke test.
All build and test commands below are run from the repo root (ledger-live/).
- Read the e2e environment guide❗
- Docker Desktop installed and running (Speculos runs in Docker)
- Pull the Speculos Docker image:
docker pull ghcr.io/ledgerhq/speculos:latest- Install mise, then from the repo root install the pinned toolchain:
mise installSet these environment variables before you run tests and change the values as per your testing needs:
export MOCK=0
export SPECULOS_IMAGE_TAG=ghcr.io/ledgerhq/speculos:latest
export SPECULOS_DEVICE=nanoSP # Options: nanoSP | nanoX | nanoS | stax | flex | nanoGen5Consider adding these exports to your profile so they persist.
Before running tests, build the app and dependencies:
pnpm i --filter="ledger-live-desktop..." --filter="live-cli..." --filter="ledger-live" --filter="@ledgerhq/dummy-*-app..." --filter="ledger-live-desktop-e2e-tests" --unsafe-perm
pnpm build:lld:deps
pnpm build:cli
pnpm desktop build:testing🔹 Run this whenever the source code changes.
Install Playwright dependencies:
pnpm e2e:desktop test:playwright:setup- Run all tests
pnpm e2e:desktop test:playwright- Run a single test
pnpm e2e:desktop test:playwright <testFileName>For detailed setup, debugging, and contribution guidelines, see: Ledger Wallet Desktop E2E Wiki
You can inject extra feature flags globally for Desktop E2E by setting E2E_FEATURE_FLAGS_JSON.
Example shape:
{
"myFeature": {
"enabled": true,
"params": {
"foo": "bar"
}
}
}Usage examples:
# Enable one feature with params
export E2E_FEATURE_FLAGS_JSON='{"myFeature":{"enabled":true,"params":{"foo":"bar"}}}'
Notes:
- Arrays, scalars, or invalid JSON are rejected.
E2E_FEATURE_FLAGS_JSONOVERRIDES any other E2E feature flags.- Per-test
featureFlagsfixture values still override env-provided values when both set the same key.
It is possible to choose an optional Feature Flag set for the test run.
Set the env var to the desired value, eg:
export E2E_DESKTOP_FEATURE_FLAGS="wallet40-q2"Or use the "Choose a feature flag set" options dropdown on the Github workflow.