mirror of
https://github.com/luxfi/extension.git
synced 2026-10-30 16:56:33 +00:00
- Multi-chain wallet for Lux ecosystem (Lux, Zoo, SPC, Hanzo networks) - Support for external EVM chains (Ethereum, Arbitrum, Base, etc.) - WXT-based build system for Chrome and Firefox - Ledger hardware wallet integration - Security engine for transaction risk analysis - Address book and custom networks support
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:
light light light light light light light light light light light energy - 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.