5.5 KiB
5.5 KiB
TimeToLeave - Manual Testing Checklist
Use this checklist for browser, mobile, and integration testing before release.
Prerequisites
npm installhas been run.- Required environment variables are configured.
- Web app is running locally or deployed.
- Mobile app has a reachable
EXPO_PUBLIC_API_BASE_URLwhen tested on a device. - Network access is available for HAFAS, Nominatim, OSRM, Wiener Linien, and calendar providers.
Web Dashboard
- 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.
Web Calendar Import
- Open
/calendar. - Import a valid allowed ICS URL.
- Upload a local
.icsfile. - 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
- Confirm
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GOOGLE_REDIRECT_URI, andDEPLOYMENT_URLare 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.
Settings and Reminders
- 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
- Use an event with a real destination and origin station.
- Verify destination geocoding completes.
- Verify destination station lookup completes.
- Verify
/api/hafasis called withTripSearch. - 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.
Bike and Walking Routes
- Switch to bike mode.
- Verify
/api/bike-routeis called with four coordinate parameters. - Verify bike duration, distance, and steps are displayed.
- Switch back to train mode with walking enabled.
- Verify
/api/walk-routeis 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
- Use a destination near Vienna public transport.
- Verify
/api/wienerlinien/stopsreturns nearby stops. - Verify
/api/wienerlinien/monitorreturns live departures for selected stops. - Verify loading, empty, and error states are readable.
API Guards
- 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
429after the configured threshold.
Mobile Event Flow
- 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.
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.
Mobile Settings and Notifications
- 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
- 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.
Accessibility and Layout
- 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
- Web smoke test passed.
- Mobile smoke test passed.
- Calendar import tested.
- Live transit integration tested.
- Notifications tested.
- No critical bugs remain.
Tested by:
Date:
Build/version: