* refactor(e2e): extract shared extension launcher from MetaMask fixture
Move the persistent-context + temp-profile + SW-derived extension-id
logic into launchExtensionContext (with beforeLaunch, afterClose,
extraChromeArgs, profilePrefix, viewport options) so other extensions
can reuse it. MetaMask fixture becomes a thin wrapper; behavior
unchanged for the existing Hub suite.
* feat(e2e): add congestion and balance controls to Anvil helper
Add setNextBlockBaseFee, setBlockGasLimit, disableAutoMining,
dropTransaction, setEthBalanceFor, and getEthBalance for staging
network conditions and localizing accounts on the forks.
* feat(e2e): add rpc-router and opt-in wallet test-server orchestration
Anvil only answers JSON-RPC at / while apps/api appends path suffixes
(/ethereum/mainnet/alchemy), so add a small host-side router that
strips the prefix and forwards by chain segment to the forks.
Wire wallet-send/wallet-swap Playwright projects behind the
RUN_WALLET_E2E env flag (env rather than argv: workers re-evaluate the
config without --project) with apps/api and the router as web servers,
narrow the @wallet grep so it no longer swallows the new tags, and add
setup:wallet / test:wallet-* scripts. setup:wallet passes
WXT_STATUS_API_URL explicitly because wxt build --mode development
otherwise bakes the production API URL.
* chore: add changeset
* ci: point changesets and workflow triggers at master
The main branch was renamed to master, so origin/main no longer exists:
the changeset status step failed to find the divergence point, and the
CI/E2E/Release push triggers never fired.
* test(e2e): run the suite against a local Hub
Start the Hub dev server via Playwright's webServer and default BASE_URL to
localhost so tests exercise local code; set BASE_URL to test a deployment.
Pre-compile routes in global-setup, derive the wallet address from the seed
(dropping WALLET_ADDRESS), and let anvil:up/down run without a .env file.
* ci(e2e): build and serve the local Hub with forks
Drop the deployed-URL logic; build Hub deps, start Anvil forks, and run all
projects against the webServer-started local Hub.
* chore(e2e): remove dead pre-deposit deposit tests
Deposits are sunsetted; the Hub pre-deposits page is now withdrawal-only.
Drop the network-switch and validation specs, the deposit modal page
object, and the now-unused TEST_AMOUNTS and clickDepositForVault helpers.
* fix(e2e): repair pre-deposits display smoke test
- sidebar: match the renamed "Pre-deposit vaults" link
- vaultHeadings: anchor to "<token> vault" so FAQ headings aren't counted
- assert exact vault names to avoid FAQ strict-mode collisions
* chore: add changeset
* ci(e2e): align workflow triggers with CI
Run on push to main, pull_request, and workflow_call.
Drop deployment_status, path filters, and manual dispatch.
* feat(e2e): expand MetaMask harness for transaction flows
Add tx, token-spend and signature approval to the notification page
object, expose a reusable launchMetaMaskContext, and split VIEWPORT into
its own constants module. Drop the unused home page object.
* feat(e2e): add Anvil fork wallet harness
Local mainnet + Linea Anvil forks (docker compose + eRPC) with an
AnvilRpcHelper for funding and snapshot/revert, MetaMask RPC redirection
(service-worker patch + Smart Transactions disabler), and a Hub-connected
anvil fixture decoupled from any feature. Adds anvil:up/down + test:anvil
scripts and an `anvil` Playwright project; reads metamaskVersion from
package.json.
* chore(e2e): add changelog