# MetaMask Integration Test Checklist Comprehensive test checklist for MetaMask integration with ChainID 138. ## Pre-Testing Setup - [ ] MetaMask extension installed (latest version) - [ ] MetaMask mobile app installed (for mobile testing) - [ ] Test accounts created and funded - [ ] RPC endpoints accessible - [ ] Blockscout explorer accessible - [ ] Token contracts deployed ## Browser Testing ### Chrome/Chromium - [ ] Network addition via `wallet_addEthereumChain` - [ ] Network addition via Chainlist - [ ] Network switching via `wallet_switchEthereumChain` - [ ] Token addition via `wallet_watchAsset` - [ ] Account connection - [ ] Transaction signing - [ ] Network change event handling - [ ] Account change event handling ### Firefox - [ ] Network addition via `wallet_addEthereumChain` - [ ] Network addition via Chainlist - [ ] Network switching - [ ] Token addition - [ ] Account connection - [ ] Transaction signing ### Edge - [ ] Network addition - [ ] Network switching - [ ] Token addition - [ ] Account connection ## Mobile Testing ### iOS (MetaMask Mobile) - [ ] Network addition - [ ] Network switching - [ ] Token addition - [ ] Account connection - [ ] Transaction signing - [ ] Deep linking ### Android (MetaMask Mobile) - [ ] Network addition - [ ] Network switching - [ ] Token addition - [ ] Account connection - [ ] Transaction signing - [ ] Deep linking ## Network Addition Tests ### Method 1: wallet_addEthereumChain - [ ] Add network successfully - [ ] Handle network already added error - [ ] Handle user rejection - [ ] Handle invalid parameters - [ ] Verify network appears in MetaMask - [ ] Verify network details are correct ### Method 2: Chainlist - [ ] Find network on Chainlist - [ ] Click "Add to MetaMask" button - [ ] Approve network addition - [ ] Verify network added correctly ### Method 3: Manual Addition - [ ] Add network manually via MetaMask UI - [ ] Verify all fields are correct - [ ] Test with different RPC URLs - [ ] Test with different explorer URLs ## Network Switching Tests - [ ] Switch to ChainID 138 from another network - [ ] Switch away from ChainID 138 - [ ] Handle network not added error - [ ] Handle user rejection - [ ] Verify chain change event fires - [ ] Verify UI updates on chain change ## Token Addition Tests ### Method 1: wallet_watchAsset - [ ] Add token successfully - [ ] Handle invalid address - [ ] Handle invalid decimals - [ ] Handle user rejection - [ ] Verify token appears in MetaMask - [ ] Verify token balance displays correctly - [ ] Verify token logo displays correctly ### Method 2: Token List - [ ] Token auto-detection works - [ ] Token appears in token list - [ ] Token metadata is correct - [ ] Token logo is accessible ## Integration Tests ### React Integration - [ ] useChain138 hook works correctly - [ ] Chain138Button component works - [ ] AddTokenButton component works - [ ] Event listeners work correctly - [ ] State management works correctly ### Vanilla JS Integration - [ ] Network addition works - [ ] Network switching works - [ ] Token addition works - [ ] Event handlers work correctly ### Vue Integration - [ ] useChain138 composable works - [ ] Components work correctly - [ ] Event listeners work correctly ## Error Handling Tests - [ ] MetaMask not installed error - [ ] MetaMask locked error - [ ] User rejection error - [ ] Network not added error - [ ] Invalid parameters error - [ ] RPC endpoint error - [ ] Network connectivity error ## Edge Cases - [ ] Multiple network additions - [ ] Rapid network switching - [ ] Network addition during transaction - [ ] Token addition with invalid logo URL - [ ] Token addition with missing metadata - [ ] Network change during token addition - [ ] Account change during network switch ## Performance Tests - [ ] Network addition response time - [ ] Network switching response time - [ ] Token addition response time - [ ] Event handler performance - [ ] Memory usage ## Security Tests - [ ] Verify RPC URLs are correct - [ ] Verify explorer URLs are correct - [ ] Verify token addresses are correct - [ ] Test with malicious RPC URLs - [ ] Test with malicious token addresses - [ ] Verify CORS headers - [ ] Verify SSL certificates ## Regression Tests - [ ] Test with older MetaMask versions - [ ] Test with newer MetaMask versions - [ ] Test with different browser versions - [ ] Test with different operating systems - [ ] Test with different network conditions ## Documentation Tests - [ ] Code examples work correctly - [ ] Documentation is accurate - [ ] Links are working - [ ] Screenshots are up to date ## Production Readiness - [ ] All tests pass - [ ] Error handling is comprehensive - [ ] User experience is smooth - [ ] Documentation is complete - [ ] Security checks pass - [ ] Performance is acceptable ## Test Results ### Test Date: ___________ ### Tester: ___________ ### Browser: ___________ ### MetaMask Version: ___________ ### Results: - Total Tests: ___________ - Passed: ___________ - Failed: ___________ - Skipped: ___________ ### Notes: ___________ ___________ ___________ ## Sign-off - [ ] All critical tests passed - [ ] All high-priority tests passed - [ ] Documentation reviewed - [ ] Security reviewed - [ ] Ready for production **Tester Signature**: ___________ **Date**: ___________