Files
time_to_leave/MANUAL_TESTING_CHECKLIST.md
T
2026-05-18 15:01:53 +02:00

5.5 KiB

TimeToLeave - Manual Testing Checklist

Use this checklist for browser, mobile, and integration testing before release.

Prerequisites

  • 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.

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 .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

  • 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.

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/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.

Bike and Walking Routes

  • 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

  • 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.

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 429 after 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: