Extension issues
Extension not found
Extension not found
Error message:Solution:Download wallet extensions before running tests:Why this happens:Chroma requires wallet extensions to be downloaded locally. The extensions are stored in
./.chroma and are not included in npm packages due to licensing.Extension failed to load
Extension failed to load
Error message:Solutions:
-
Delete the
.chromadirectory and re-download: -
Check file permissions:
-
Verify the extension directory exists and is not empty:
Wrong extension version
Wrong extension version
Issue: Tests fail after extension updates.Solution:Re-download extensions to get the latest versions:Supported versions:
- Polkadot JS Extension: v0.62.6
- Talisman: v3.1.13
- MetaMask: v13.17.0 (Flask)
CI/CD issues
Tests pass locally but fail in CI
Tests pass locally but fail in CI
Common causes and solutions:
-
Extensions not downloaded in CI:
Add the download step to your workflow:
-
Missing xvfb for headless display:
Use
xvfb-runin CI environments: -
Playwright browsers not installed:
-
Environment differences:
Set CI environment variable:
Docker tests crash
Docker tests crash
Error message:Solution:Increase shared memory size:For Docker Compose:
Slow CI performance
Slow CI performance
Optimization strategies:
-
Cache Playwright browsers:
-
Cache node_modules:
-
Run tests in parallel:
Test failures
Timeout waiting for selector
Timeout waiting for selector
Error message:Solutions:
-
Increase timeout:
-
Wait for network idle:
-
Check if element exists:
-
Use more specific selectors:
Wallet authorization fails
Wallet authorization fails
Transaction approval fails
Transaction approval fails
Error message:Solutions:
-
Provide password if required:
-
Wait for transaction popup:
-
Increase method timeout:
Multi-wallet issues
Wallets interfere with each other
Wallets interfere with each other
Issue: One wallet’s actions affect another wallet.Solution:Ensure each wallet has its own isolated context:
Chroma uses worker-scoped fixtures to ensure wallet contexts are isolated. Each wallet runs in its own browser context.
Wrong wallet responds to action
Wrong wallet responds to action
Issue: Calling
authorize() on one wallet, but another wallet’s popup appears.Solution:Be explicit about which wallet to use:Performance issues
Tests are slow
Tests are slow
Optimization tips:
-
Import accounts once in beforeAll:
-
Run tests in parallel:
-
Disable slowMo in CI:
-
Use headless mode:
Debugging tips
Enable debug mode
Add console logs
Use Playwright Inspector
Take screenshots
Getting help
If you’re still experiencing issues:- Check the GitHub Issues for similar problems
- Review the test examples in the repository
- Open a new issue with:
- Error message
- Minimal reproduction code
- Environment details (OS, Node version, Playwright version)
- Screenshots or videos if relevant