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

352 lines
9.9 KiB
Markdown

# 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
- [x] User can sign in with valid credentials
- [x] User is redirected to map page after successful sign in
- [x] User cannot sign in with invalid credentials
- [x] User can sign out successfully
- [x] 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
- [x] Leaflet map initializes correctly
- [x] Map displays with proper container and panes
- [x] Map tiles load successfully
- [x] Zoom in/out functionality works
- [x] Map controls are present and functional
### Map Layers
- [x] Base layer switching (OpenStreetMap ↔ OpenTopo)
- [x] Layer control expands and collapses
- [x] Overlay layers can be toggled (Points, Routes, Fog of War, Heatmap, etc.)
- [x] Layer states persist after settings updates
- [ ] Fallback map layer when preferred layer fails
- [ ] Custom tile layer configuration
- [ ] Layer loading error handling
### Map Data Display
- [x] Route data loads and displays
- [x] Point markers appear on map
- [x] Map statistics display (distance, points count)
- [x] Map scale control shows correctly
- [x] Map attributions are present
## 3. Route Management
### Route Display
- [x] Routes render as polylines
- [x] Route opacity can be adjusted
- [x] Speed-colored routes toggle works
- [x] Route splitting settings can be configured
### Route Interaction
- [x] Route popup displays on hover/click (basic structure)
- [x] Popup shows start/end times, duration, distance, speed
- [x] Distance units convert properly (km ↔ miles)
- [x] 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
- [x] Points display as markers
- [x] Point popups show detailed information
- [x] Point rendering mode can be toggled (raw/simplified)
### Point Operations
- [x] 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
- [x] Settings panel opens and closes
- [x] Route opacity updates
- [x] Fog of war settings (radius, threshold)
- [x] Route splitting configuration (meters, minutes)
- [x] Points rendering mode toggle
- [x] Live map functionality toggle
- [x] Speed-colored routes toggle
- [x] Speed color scale updates
- [x] 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
- [x] Calendar button is functional
- [x] Calendar panel opens and displays correctly
- [ ] Year selection works
- [ ] Month navigation functions
- [ ] Visited cities information displays
### Calendar Interaction
- [ ] Date selection filters map data
- [x] 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
- [x] 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
- [x] Large dataset handling without crashes
- [x] Memory cleanup on page navigation
- [ ] Tile monitoring functionality
- [ ] Map rendering performance with many points
- [ ] Data loading optimization
### Error Handling
- [x] Empty markers array handling
- [x] 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
- [x] Distance unit preferences (km/miles)
- [ ] Preferred map layer persistence
- [x] 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
- [x] GitHub API integration (version checking)
- [ ] Reverse geocoding functionality
### API Error Handling
- [x] 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
- [x] 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