This commit implements browser-based integration testing for the Phoenix LiveView
application using Wallaby and ChromeDriver to test the complete user experience
including JavaScript interactions.
## Changes Made
### Testing Infrastructure
- Add Wallaby dependency for browser automation testing
- Configure Chrome driver with headless mode for CI/CD
- Set up Phoenix server integration for test environment
- Enable screenshot capture on test failures
### Integration Tests
- `test/integration/simple_integration_test.exs` - Basic homepage functionality
- `test/integration/map_integration_test.exs` - Map interface and routing tests
- Tests validate page loading, content rendering, and navigation
### CI/CD Integration
- Update GitHub Actions workflow to install ChromeDriver
- Add separate integration test step in CI pipeline
- Configure headless Chrome for automated testing
### Configuration Updates
- Enable Phoenix server in test environment for Wallaby
- Configure Wallaby with proper base URL and screenshot settings
- Initialize Wallaby application in test helper
## Features Tested
- ✅ Homepage loads with APRS content
- ✅ Main page structure renders correctly
- ✅ Route navigation functions properly
- ✅ Basic Phoenix LiveView functionality
## Next Steps
This provides a solid foundation for expanding to test:
- Interactive map controls and JavaScript functionality
- Real-time packet updates via LiveView PubSub
- User authentication flows and form submissions
- Mobile responsive behavior
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reduced test execution time from 21.2s to 14.3s through multiple optimizations:
1. Reduced test data size:
- Memory efficiency test: 5000→1000 packets, smaller payloads (saved ~3.2s)
- More focused test scenarios without sacrificing coverage
2. Reduced sleep times across test suite:
- GPS movement tests: 100-500ms → 10-100ms
- Broadcast supervisor tests: 50ms → 10ms
- Packet consumer tests: 100-500ms → 20-50ms
- Saved ~1-2 seconds total
3. Enabled parallel test execution:
- Set max_cases to System.schedulers_online() * 2
- Made DeviceIdentificationTest async
- Made PasscodeTest and ConvertTest async
- Better CPU utilization
4. Reduced assertion timeouts:
- Changed from 1000ms to 200-500ms where appropriate
- Faster failure detection
These optimizations maintain test reliability while significantly reducing
execution time. The occasional timing-sensitive LiveView test failures are
addressed with slightly more generous timeouts where needed.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>