35971596b3
Implement strict CORS enforcement and per-IP rate limiting in the Next.js middleware. Add input validation helpers for coordinates and request body size limits. Introduce SSRF protection for calendar URL fetching. Update mobile settings to support new transport options and arrival buffers. Include a comprehensive manual testing checklist for integration verification.
6.4 KiB
6.4 KiB
TimeToLeave - Manual Integration Testing Checklist
Overview
This checklist guides you through manual testing of the TimeToLeave application to ensure all features work correctly in the browser.
Prerequisites
- Application is running locally or deployed
- All required environment variables are set
- Network connection is available for external API calls
1. Settings Infrastructure Testing
Arrival Buffer Settings
- Navigate to Settings panel
- Set arrival buffer to 10 minutes
- Verify buffer value is displayed correctly
- Test different buffer values (0, 5, 15, 30 minutes)
- Verify buffer value persists after page refresh
Walking Option Toggle
- Enable "Show walking option" toggle
- Verify toggle state is saved
- Disable "Show walking option" toggle
- Verify toggle state persists after page refresh
Bike Option Toggle
- Enable "Show bike option" toggle
- Verify toggle state is saved
- Disable "Show bike option" toggle
- Verify toggle state persists after page refresh
2. Walk Routing Testing
Walk Route API
- Open Developer Tools (F12) → Network tab
- Trigger a walk route calculation (e.g., by loading an event with walk mode)
- Verify
/api/walk-routerequest appears in network log - Check request contains correct query parameters (fromLat, fromLng, toLat, toLng)
- Verify response contains distance, duration, and steps array
- Test with different coordinate pairs
Walk Route Display
- Enable walking option in settings
- Load an event that should show walk route
- Verify walk duration appears under train section
- Verify walk distance is displayed
- Verify step-by-step instructions are shown
- Test with events at different locations
3. Departure Time Calculation Testing
Countdown Badge
- Set arrival buffer to 10 minutes
- Verify countdown badge shows earlier departure time than event time
- Test with different event times (now, in 1 hour, in 3 hours)
- Verify countdown updates in real-time
Departure Time Override
- Switch between transport modes (train, bike, walk)
- Verify countdown updates to reflect selected mode
- Test mode switching multiple times
- Verify departure time calculation is consistent
4. Mode Selector Testing
Transport Mode Selection
- Verify "Train" mode is selected by default
- Click "Bike" mode button
- Verify "Bike" mode is now active
- Click "Walk" mode button
- Verify "Walk" mode is now active
- Test switching between all modes multiple times
Conditional Rendering
- With walking option disabled: verify walk section is hidden
- With walking option enabled: verify walk section appears
- With bike option disabled: verify bike section is hidden
- With bike option enabled: verify bike section appears
- Test all combinations of toggle states
5. JourneyList Filtering Testing
Arrival Buffer Filtering
- Set arrival buffer to 5 minutes
- Load multiple journeys with different arrival times
- Verify journeys arriving too late are filtered out
- Increase arrival buffer to 15 minutes
- Verify previously filtered journeys now appear
- Test filtering with real-world journey data
6. Cross-Feature Integration Testing
Complete Workflow
- Open settings and set arrival buffer to 10 minutes
- Enable walking option
- Enable bike option
- Load an event with multiple journey options
- Verify countdown badge shows earlier departure time
- Switch to bike mode and verify countdown updates
- Verify walk duration appears under train section
- Disable bike option and verify bike section disappears
- Re-enable bike option and verify bike section reappears
- Test complete workflow with different events
7. Edge Cases Testing
Empty States
- Test with no walk route available (remote location)
- Verify appropriate error message is displayed
- Test with missing coordinates
- Verify graceful handling of missing data
Network Errors
- Disable network connection (offline mode in DevTools)
- Attempt to load walk route
- Verify error state is displayed
- Re-enable network and verify retry works
Invalid Data
- Test with invalid coordinate values
- Test with zero or negative buffer times
- Verify application handles invalid data gracefully
8. Accessibility Testing
Keyboard Navigation
- Tab through all settings controls
- Verify all buttons and toggles are keyboard accessible
- Test mode selector with keyboard only
Screen Reader Compatibility
- Use Chrome's accessibility inspector or a screen reader
- Verify all settings have proper labels
- Verify all interactive elements are announced correctly
High Contrast Mode
- Enable high contrast mode in OS settings
- Verify all UI elements remain visible and readable
9. Performance Testing
Loading Times
- Measure time to load walk route for nearby location (< 5km)
- Measure time to load walk route for farther location (10-20km)
- Verify loading spinner appears during API calls
- Verify loading spinner disappears when complete
Memory Usage
- Open Developer Tools → Memory tab
- Perform multiple walk route calculations
- Verify no memory leaks (memory usage should stabilize)
10. Responsive Design Testing
Mobile
- Test on mobile device (iPhone/Android)
- Verify settings panel is usable on small screens
Tablet
- Test on tablet device
- Verify all controls are properly sized
Desktop
- Test on various desktop screen sizes
- Verify layout does not break
Reporting Issues
When you encounter an issue during testing:
- Note the exact steps to reproduce
- Record browser/device information
- Capture any error messages or console logs
- Take screenshots if UI is affected
- Test with latest code after reporting
Sign-Off
- All required tests passed successfully
- No critical bugs found
- Application ready for production deployment
Tested by: ________________________ Date: ________________________ Browser/Device: ________________________ Build Version: ________________________
Additional Notes
Add any observations, workarounds, or special test conditions here.