dawarich/tests/system/test_scenarios.md
2025-05-29 12:30:40 +02:00

9.9 KiB

Dawarich System Test Scenarios

This document tracks all system test scenarios for the Dawarich application. Completed scenarios are marked with [x] and pending scenarios with [ ].

1. Authentication & User Management

Sign In/Out

  • User can sign in with valid credentials
  • User is redirected to map page after successful sign in
  • User cannot sign in with invalid credentials
  • User can sign out successfully
  • User is redirected to sign in page when accessing protected routes while signed out

User Registration

  • New user can register with valid information
  • Registration fails with invalid email format
  • Registration fails with weak password
  • Registration fails with mismatched password confirmation
  • Email confirmation process works correctly

Password Management

  • User can request password reset
  • Password reset email is sent
  • User can reset password with valid token
  • Password reset fails with expired token
  • User can change password when signed in

2. Map Functionality

Basic Map Operations

  • Leaflet map initializes correctly
  • Map displays with proper container and panes
  • Map tiles load successfully
  • Zoom in/out functionality works
  • Map controls are present and functional

Map Layers

  • Base layer switching (OpenStreetMap ↔ OpenTopo)
  • Layer control expands and collapses
  • Overlay layers can be toggled (Points, Routes, Fog of War, Heatmap, etc.)
  • Layer states persist after settings updates
  • Fallback map layer when preferred layer fails
  • Custom tile layer configuration
  • Layer loading error handling

Map Data Display

  • Route data loads and displays
  • Point markers appear on map
  • Map statistics display (distance, points count)
  • Map scale control shows correctly
  • Map attributions are present

3. Route Management

Route Display

  • Routes render as polylines
  • Route opacity can be adjusted
  • Speed-colored routes toggle works
  • Route splitting settings can be configured

Route Interaction

  • Route popup displays on hover/click (basic structure)
  • Popup shows start/end times, duration, distance, speed
  • Distance units convert properly (km ↔ miles)
  • Speed units convert properly (km/h ↔ mph)
  • Route deletion with confirmation (not implemented yet)
  • Route merging/splitting operations (not implemented yet)
  • Route export functionality (not implemented yet)

4. Point Management

Point Display

  • Points display as markers
  • Point popups show detailed information
  • Point rendering mode can be toggled (raw/simplified)

Point Operations

  • Point deletion link is present and functional
  • Point deletion confirmation dialog
  • Point editing (coordinates via drag and drop)
  • Point filtering by date/time

5. Settings Panel

Map Settings

  • Settings panel opens and closes
  • Route opacity updates
  • Fog of war settings (radius, threshold)
  • Route splitting configuration (meters, minutes)
  • Points rendering mode toggle
  • Live map functionality toggle
  • Speed-colored routes toggle
  • Speed color scale updates
  • Gradient editor modal interaction

Settings Validation

  • Invalid settings values are rejected
  • Settings form validation messages
  • Settings reset to defaults
  • Settings import/export functionality

6. Calendar Panel

Calendar Display

  • Calendar button is functional
  • Calendar panel opens and displays correctly
  • Year selection works
  • Month navigation functions
  • Visited cities information displays

Calendar Interaction

  • Date selection filters map data
  • Calendar state persists in localStorage
  • Calendar navigation with keyboard shortcuts (not implemented yet)

7. Data Import/Export

Import Functionality

  • GPX file import
  • JSON data import
  • .rec file import
  • Import validation and error handling
  • Import progress indication
  • Duplicate data handling during import

Export Functionality

  • GPX file export
  • JSON data export
  • Date range export filtering
  • Export progress indication

8. Statistics & Analytics

Statistics Display

  • Map statistics show distance and points
  • Detailed statistics page
  • Distance traveled by time period
  • Speed analytics
  • Location frequency analysis
  • Activity patterns visualization

Charts & Visualizations

  • Distance over time charts
  • Speed distribution charts
  • Heatmap visualization
  • Activity timeline
  • Geographic distribution charts

9. Photos & Media

Photo Management

  • Photo display on map
  • Photo popup with details

10. Areas & Geofencing

Area Management

  • Create new areas
  • Edit existing areas
  • Delete areas
  • Area visualization on map

Area Functionality

  • Time spent in areas calculation
  • Area visit history
  • Area-based filtering

11. Performance & Error Handling

Performance Testing

  • Large dataset handling without crashes
  • Memory cleanup on page navigation
  • Tile monitoring functionality
  • Map rendering performance with many points
  • Data loading optimization

Error Handling

  • Empty markers array handling
  • Missing user settings gracefully handled
  • Network connectivity issues
  • Failed API calls handling
  • Invalid coordinates handling
  • Database connection errors
  • File upload errors

12. User Preferences & Persistence

Preference Management

  • Distance unit preferences (km/miles)
  • Preferred map layer persistence
  • Panel state persistence (basic)
  • Theme preferences (light/dark mode)
  • Timezone settings (not implemented yet)

Data Persistence

  • Map view state persistence (zoom, center)
  • Filter preferences persistence

13. API Integration

External APIs

  • GitHub API integration (version checking)
  • Reverse geocoding functionality

API Error Handling

  • GitHub API stub for testing
  • API rate limiting handling
  • API timeout handling
  • Fallback when APIs are unavailable

14. Mobile Responsiveness

Mobile Layout

  • Map displays correctly on mobile devices
  • Touch gestures work (pinch to zoom, pan)
  • Mobile-optimized controls
  • Responsive navigation menu

15. Security & Privacy

Data Security

  • User data isolation (users only see their own data)
  • Secure file upload validation
  • XSS protection in user inputs
  • CSRF protection on forms

Privacy Features

  • Data anonymization options
  • Location data privacy settings
  • Data deletion functionality
  • Privacy policy compliance

16. Accessibility

WCAG Compliance

  • Keyboard navigation support
  • Screen reader compatibility
  • High contrast mode support
  • Focus indicators on interactive elements

Usability

  • Tooltips and help text
  • Error message clarity
  • Loading states and progress indicators
  • Consistent UI patterns

17. Integration Testing

Database Operations

  • Data migration testing
  • Backup and restore functionality
  • Database performance with large datasets
  • Concurrent user operations

18. Navigation & UI

Main Navigation

  • Navigation menu functionality
  • Page transitions work smoothly
  • Back/forward browser navigation

19. Trips & Journey Management

Trip Creation

  • Automatic trip detection (not implemented yet)
  • Manual trip creation
  • Trip editing (name, description, dates)
  • Trip deletion with confirmation

Trip Display

  • Trip list view
  • Trip detail view
  • Trip statistics
  • Trip sharing functionality (not implemented yet)

21. Notifications & Alerts

System Notifications

  • Success message display
  • Error message display
  • Warning notifications
  • Info notifications

User Notifications

  • Email notifications for important events

20. Search & Filtering

Search Functionality

  • Global search across all data
  • Location-based search
  • Date range search
  • Advanced search filters

Data Filtering

  • Filter by date range
  • Filter by location/area
  • Filter by activity type
  • Filter by speed/distance

21. Backup & Data Management

Data Backup

  • Manual data backup
  • Backup verification
  • Backup restoration

Data Cleanup

  • Duplicate data detection
  • Data archiving
  • Data purging (old data)
  • Storage optimization

Test Execution Summary

Total Scenarios: 180+ Completed: 51 Pending: 129+ Coverage: ~28%

Priority for Next Implementation:

  1. Authentication flows (sign out, invalid credentials, registration)
  2. Error handling (network issues, invalid data, API failures)
  3. Calendar panel JavaScript interactions
  4. Data import/export functionality
  5. Mobile responsiveness testing
  6. Security & privacy features
  7. Performance optimization tests
  8. Navigation & UI consistency

High-Impact Areas to Focus On:

  • User Authentication & Security - Critical for production use
  • Data Import/Export - Core functionality for user data management
  • Error Handling - Essential for robust application behavior
  • Mobile Experience - Important for modern web applications
  • Performance - Critical for user experience with large datasets

Testing Strategy Notes:

  • System Tests: Focus on user workflows and integration
  • Unit Tests: Cover individual components and business logic
  • API Tests: Ensure robust API behavior and error handling
  • Performance Tests: Validate application behavior under load
  • Security Tests: Verify data protection and access controls

Tools & Frameworks:

  • RSpec + Capybara: System/integration testing
  • Selenium WebDriver: Browser automation
  • WebMock: External API mocking
  • FactoryBot: Test data generation
  • SimpleCov: Code coverage analysis