mirror of
https://github.com/luxfi/wallet.git
synced 2026-07-27 03:37:41 +00:00
Copies apps/extension, apps/mobile and 10 pkgs (wallet, ui, config, utilities, sessions, gating, notifications, analytics, eslint-config, prices) into a standalone pnpm workspace. Resolves merge conflict markers in extension and mobile package.json files, strips build artifacts (.wxt, .output, Pods).
2.2 KiB
2.2 KiB
Extension E2E Tests
End-to-end tests for the Uniswap Chrome Extension using Playwright.
Setup
-
Install dependencies (from repo root):
bun install -
Install Playwright browsers (from extension directory):
cd apps/extension bun playwright install chromium
Running Tests
Build and run all tests:
bun run e2e
Build and run smoke tests only:
bun run e2e:smoke
Run tests without rebuilding:
bun run playwright:test
Run tests in UI mode (for debugging):
bun playwright test --ui --config=e2e/config/playwright.config.ts
Run tests in headless environment (CI/SSH):
Chrome extensions require a display server. If you're running in a headless environment, use xvfb:
# Install xvfb if needed
sudo apt-get install xvfb
# Run tests with xvfb
xvfb-run -a bun run e2e:smoke
Test Structure
config/- Playwright configurationfixtures/- Test fixtures for extension loadingtests/smoke/- Smoke tests for critical functionalitybasic-setup.test.ts- Verifies extension loads correctlyonboarding-flow.test.ts- Tests fresh install onboardingsidebar-loads.test.ts- Tests sidebar functionality (auto-onboards)wallet-connection.test.ts- Tests dApp connection flow (auto-onboards)
utils/- Helper utilities including programmatic onboarding
Test Fixtures
freshExtensionTest
- Loads extension with no user data
- Triggers onboarding flow
- Use for testing fresh installation scenarios
onboardedExtensionTest
- Loads extension with fresh user data
- Automatically completes onboarding with test wallet
- Uses test seed phrase:
test test test test test test test test test test test junk - Use for testing wallet functionality
Programmatic Onboarding
Tests that require an onboarded extension will automatically complete the onboarding process using a test seed phrase. This approach:
- Avoids committing sensitive user data
- Ensures consistent test environment
- Works identically in CI and local development
- No manual setup required
CI Integration
Tests run automatically on PRs that affect the extension or its dependencies using GitHub Actions.