End-to-End Tests - Interactive Visualization

This interactive visualization demonstrates end-to-end tests that cover critical user journeys. These tests are not exhaustive—they focus on the paths that would hurt most if broken, ensuring core functionality works from the user's perspective.

How It Works

The visualization shows end-to-end testing of critical user journeys:

  1. User Journeys: Each journey represents a complete user workflow from start to finish
  2. Step-by-Step Execution: Watch each step execute and see which services are involved
  3. Service Interaction: Visualize how the frontend interacts with backend services
  4. Critical Paths: Focus on journeys that would hurt most if broken

Interactive Visualization

Click on user journeys or use the control buttons to run end-to-end tests and see the complete flow from user action to system response.

If the visualization doesn't display properly, you can open it in a new tab.

Critical User Journeys

Login Journey

Critical authentication flow that must work for users to access the system:

  • Navigate to login
  • Enter credentials
  • Authenticate
  • Load dashboard

Create Patient

Core functionality for creating patient records. Tests the full flow from UI to database:

  • Open patient form
  • Fill patient data
  • Submit to Health Data Service
  • Verify record created

Sync Data

Tests the complete offline-to-online synchronization flow, critical for field workers:

  • Go offline
  • Create local mutations
  • Come back online
  • Trigger sync
  • Verify sync completion

Resolve Conflict

Tests conflict resolution UI and logic, ensuring data integrity when multiple users edit the same record:

  • Detect conflict
  • Show conflict UI
  • User selects resolution
  • Apply resolution
  • Verify data consistency

Testing Tools

Cypress: End-to-end testing framework for web applications. Provides fast, reliable testing with real browser automation. Used for testing web-based user journeys.

Detox: Gray-box end-to-end testing framework for React Native mobile applications. Used for testing mobile user journeys on iOS and Android.

Testing Philosophy

End-to-end tests are not exhaustive. Instead, they focus on critical user journeys—the paths that would hurt most if broken. This approach balances test coverage with maintainability and execution time.

By focusing on critical paths like login, patient creation, data synchronization, and conflict resolution, we ensure that core functionality works correctly while avoiding the maintenance burden of exhaustive end-to-end test coverage.

This visualization complements the Public Health Engagement & Data Portal - System Design document and the Integration Tests visualization.