update documentation
This commit is contained in:
+109
-180
@@ -1,216 +1,145 @@
|
||||
# TimeToLeave - Manual Integration Testing Checklist
|
||||
# TimeToLeave - Manual Testing Checklist
|
||||
|
||||
## Overview
|
||||
This checklist guides you through manual testing of the TimeToLeave application to ensure all features work correctly in the browser.
|
||||
Use this checklist for browser, mobile, and integration testing before release.
|
||||
|
||||
## Prerequisites
|
||||
- [ ] Application is running locally or deployed
|
||||
- [ ] All required environment variables are set
|
||||
- [ ] Network connection is available for external API calls
|
||||
|
||||
---
|
||||
- [ ] `npm install` has been run.
|
||||
- [ ] Required environment variables are configured.
|
||||
- [ ] Web app is running locally or deployed.
|
||||
- [ ] Mobile app has a reachable `EXPO_PUBLIC_API_BASE_URL` when tested on a device.
|
||||
- [ ] Network access is available for HAFAS, Nominatim, OSRM, Wiener Linien, and calendar providers.
|
||||
|
||||
## 1. Settings Infrastructure Testing
|
||||
## Web Dashboard
|
||||
|
||||
### 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
|
||||
- [ ] Open `/`.
|
||||
- [ ] Verify the departure desk loads without console errors.
|
||||
- [ ] Add or import at least two future events.
|
||||
- [ ] Verify the dashboard shows the next upcoming event.
|
||||
- [ ] Verify edit and remove actions work from the event card.
|
||||
- [ ] Verify event data persists after browser 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
|
||||
## Web Calendar Import
|
||||
|
||||
### 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
|
||||
- [ ] Open `/calendar`.
|
||||
- [ ] Import a valid allowed ICS URL.
|
||||
- [ ] Upload a local `.ics` file.
|
||||
- [ ] Verify imported events with locations merge into the local event store.
|
||||
- [ ] Verify duplicate imports do not create unusable duplicate records.
|
||||
- [ ] Use batch destination editing and confirm edited destinations are retained.
|
||||
|
||||
---
|
||||
## Google Calendar Web Sync
|
||||
|
||||
## 2. Walk Routing Testing
|
||||
- [ ] Confirm `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_REDIRECT_URI`, and `DEPLOYMENT_URL` are configured.
|
||||
- [ ] Open the Google tab on `/calendar`.
|
||||
- [ ] Connect Google Calendar through OAuth.
|
||||
- [ ] Verify sync returns upcoming events with locations.
|
||||
- [ ] Disconnect Google Calendar.
|
||||
- [ ] Verify status returns to disconnected.
|
||||
|
||||
### 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-route` request 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
|
||||
## Settings and Reminders
|
||||
|
||||
### 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
|
||||
- [ ] Enable browser notifications when prompted.
|
||||
- [ ] Change reminder buffer and arrival buffer.
|
||||
- [ ] Toggle walking option off and on.
|
||||
- [ ] Toggle bike option off and on.
|
||||
- [ ] Refresh the page and verify settings persist.
|
||||
- [ ] Verify disabling bike hides or disables bike mode.
|
||||
- [ ] Verify disabling walking removes the final-walk adjustment from train mode.
|
||||
|
||||
---
|
||||
## Train Mode
|
||||
|
||||
## 3. Departure Time Calculation Testing
|
||||
- [ ] Use an event with a real destination and origin station.
|
||||
- [ ] Verify destination geocoding completes.
|
||||
- [ ] Verify destination station lookup completes.
|
||||
- [ ] Verify `/api/hafas` is called with `TripSearch`.
|
||||
- [ ] Verify journey rows show departure, arrival, platform, train labels, delay, changes, and cancellations when present.
|
||||
- [ ] Verify leave-by time is based on a journey that arrives before the event minus arrival buffer and final walk.
|
||||
- [ ] Increase arrival buffer and verify leave-by can move earlier.
|
||||
|
||||
### 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
|
||||
## Bike and Walking Routes
|
||||
|
||||
### 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
|
||||
- [ ] Switch to bike mode.
|
||||
- [ ] Verify `/api/bike-route` is called with four coordinate parameters.
|
||||
- [ ] Verify bike duration, distance, and steps are displayed.
|
||||
- [ ] Switch back to train mode with walking enabled.
|
||||
- [ ] Verify `/api/walk-route` is called for station-to-destination walking.
|
||||
- [ ] Verify walking duration and distance appear in the train section.
|
||||
- [ ] Test route error handling with invalid or very distant coordinates.
|
||||
|
||||
---
|
||||
## Wiener Linien
|
||||
|
||||
## 4. Mode Selector Testing
|
||||
- [ ] Use a destination near Vienna public transport.
|
||||
- [ ] Verify `/api/wienerlinien/stops` returns nearby stops.
|
||||
- [ ] Verify `/api/wienerlinien/monitor` returns live departures for selected stops.
|
||||
- [ ] Verify loading, empty, and error states are readable.
|
||||
|
||||
### 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
|
||||
## API Guards
|
||||
|
||||
### 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
|
||||
- [ ] Verify remote calendar URLs from unsupported hosts are rejected.
|
||||
- [ ] Verify private or localhost calendar URLs are rejected.
|
||||
- [ ] Verify overly large HAFAS POST bodies are rejected.
|
||||
- [ ] Verify invalid coordinates return client errors.
|
||||
- [ ] Verify CORS allows only configured origins.
|
||||
- [ ] Verify rate limiting returns `429` after the configured threshold.
|
||||
|
||||
---
|
||||
## Mobile Event Flow
|
||||
|
||||
## 5. JourneyList Filtering Testing
|
||||
- [ ] Start the Expo app.
|
||||
- [ ] Add a manual event.
|
||||
- [ ] Edit the event.
|
||||
- [ ] Delete the event.
|
||||
- [ ] Restart the app and verify stored events persist.
|
||||
- [ ] Open event detail and verify train, bike, walking, and nearby-stop sections load when data is available.
|
||||
|
||||
### 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
|
||||
## Mobile Calendar Import
|
||||
|
||||
---
|
||||
- [ ] Import an ICS URL.
|
||||
- [ ] Grant calendar permission.
|
||||
- [ ] Verify native calendars are listed.
|
||||
- [ ] Select and deselect individual calendars.
|
||||
- [ ] Use select all and deselect all.
|
||||
- [ ] Sync native calendars for the next 30 days.
|
||||
- [ ] Verify events without locations are excluded.
|
||||
- [ ] Verify CalDAV/DAVx, Apple, Google, Exchange, subscribed, local, and other source labels render correctly when available on the device.
|
||||
|
||||
## 6. Cross-Feature Integration Testing
|
||||
## Mobile Settings and Notifications
|
||||
|
||||
### 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
|
||||
- [ ] Search for an origin station.
|
||||
- [ ] Use current location to find nearest origin station.
|
||||
- [ ] Change reminder buffer and arrival buffer.
|
||||
- [ ] Toggle walking and bike options.
|
||||
- [ ] Toggle notifications.
|
||||
- [ ] Verify notification settings persist after app restart.
|
||||
- [ ] Verify scheduled notifications are recreated when settings change.
|
||||
- [ ] Toggle dark/light theme and verify it persists.
|
||||
|
||||
---
|
||||
## Offline and Failure States
|
||||
|
||||
## 7. Edge Cases Testing
|
||||
- [ ] Disable network and open web event detail data.
|
||||
- [ ] Verify geocoding, HAFAS, route, and Wiener Linien errors are visible and non-blocking.
|
||||
- [ ] Re-enable network and verify retry/refresh paths work.
|
||||
- [ ] Test mobile with the backend URL unavailable and verify errors are understandable.
|
||||
|
||||
### 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
|
||||
## Accessibility and Layout
|
||||
|
||||
### 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:
|
||||
|
||||
1. Note the exact steps to reproduce
|
||||
2. Record browser/device information
|
||||
3. Capture any error messages or console logs
|
||||
4. Take screenshots if UI is affected
|
||||
5. Test with latest code after reporting
|
||||
|
||||
---
|
||||
- [ ] Navigate web controls with keyboard only.
|
||||
- [ ] Verify modal focus and close behavior.
|
||||
- [ ] Verify buttons and interactive controls have accessible labels or readable text.
|
||||
- [ ] Test narrow mobile browser width, tablet width, and desktop width.
|
||||
- [ ] Verify mobile screens do not clip primary controls.
|
||||
|
||||
## Sign-Off
|
||||
|
||||
- [ ] All required tests passed successfully
|
||||
- [ ] No critical bugs found
|
||||
- [ ] Application ready for production deployment
|
||||
- [ ] Web smoke test passed.
|
||||
- [ ] Mobile smoke test passed.
|
||||
- [ ] Calendar import tested.
|
||||
- [ ] Live transit integration tested.
|
||||
- [ ] Notifications tested.
|
||||
- [ ] No critical bugs remain.
|
||||
|
||||
**Tested by:** ________________________
|
||||
**Date:** ________________________
|
||||
**Browser/Device:** ________________________
|
||||
**Build Version:** ________________________
|
||||
Tested by:
|
||||
|
||||
---
|
||||
Date:
|
||||
|
||||
## Additional Notes
|
||||
|
||||
_Add any observations, workarounds, or special test conditions here._
|
||||
Build/version:
|
||||
|
||||
Reference in New Issue
Block a user