bdd tests
This commit is contained in:
120
tests/e2e/bdd/dashboard/README.md
Normal file
120
tests/e2e/bdd/dashboard/README.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Dashboard BDD E2E Tests
|
||||
|
||||
This directory contains BDD (Behavior-Driven Development) E2E tests for the GridPilot dashboard functionality.
|
||||
|
||||
## Test Coverage
|
||||
|
||||
### 1. Driver Dashboard View (`driver-dashboard-view.spec.ts`)
|
||||
Tests the main dashboard view that displays driver information and upcoming events.
|
||||
|
||||
**Scenarios:**
|
||||
- Driver sees their current statistics (rating, rank, starts, wins, podiums, leagues)
|
||||
- Driver sees next race information when a race is scheduled
|
||||
- Driver sees upcoming races list (up to 3 races)
|
||||
- Driver sees championship standings
|
||||
- Driver sees recent activity feed
|
||||
- Driver sees empty states when no data is available
|
||||
- Dashboard displays KPI overview with correct values
|
||||
|
||||
**Focus:** Final user outcomes - what the driver sees and can verify on the dashboard.
|
||||
|
||||
### 2. Dashboard Navigation (`dashboard-navigation.spec.ts`)
|
||||
Tests navigation functionality from the dashboard to other pages.
|
||||
|
||||
**Scenarios:**
|
||||
- Driver can navigate to full races schedule from dashboard
|
||||
- Driver can navigate to specific race details from upcoming races list
|
||||
- Driver can navigate to league details from standings
|
||||
- Driver can navigate to race results from recent activity
|
||||
- Dashboard navigation maintains user session
|
||||
|
||||
**Focus:** Final user outcomes - what the driver can navigate to from the dashboard.
|
||||
|
||||
### 3. Dashboard Error States (`dashboard-error-states.spec.ts`)
|
||||
Tests error handling and edge cases for the dashboard.
|
||||
|
||||
**Scenarios:**
|
||||
- Driver cannot access dashboard without authentication
|
||||
- Driver sees error message when dashboard API fails
|
||||
- Driver sees error message when dashboard data is invalid
|
||||
- Driver sees empty dashboard when no data is available
|
||||
- Driver dashboard handles network timeout gracefully
|
||||
- Driver dashboard handles server error (500) gracefully
|
||||
- Driver dashboard handles not found error (404) gracefully
|
||||
- Driver dashboard handles unauthorized error (401) gracefully
|
||||
- Driver dashboard handles forbidden error (403) gracefully
|
||||
- Driver dashboard handles validation error gracefully
|
||||
|
||||
**Focus:** Final user outcomes - what the driver experiences in error scenarios.
|
||||
|
||||
## Dashboard Functionality Overview
|
||||
|
||||
The dashboard displays the following information for a registered driver:
|
||||
|
||||
### Current Driver Stats
|
||||
- **Rating**: Driver's current rating
|
||||
- **Rank**: Driver's current rank (e.g., #123)
|
||||
- **Starts**: Total number of races started
|
||||
- **Wins**: Total number of race wins
|
||||
- **Podiums**: Total number of podium finishes
|
||||
- **Leagues**: Number of active leagues
|
||||
|
||||
### Next Race (if scheduled)
|
||||
- Track name
|
||||
- Car type
|
||||
- Scheduled date and time
|
||||
- Time until race (e.g., "2 days 4 hours")
|
||||
|
||||
### Upcoming Races (up to 3)
|
||||
- Track name
|
||||
- Car type
|
||||
- Scheduled date and time
|
||||
- Time until race
|
||||
|
||||
### Championship Standings
|
||||
- League name
|
||||
- Current position in league
|
||||
- Current points
|
||||
- Total number of drivers in league
|
||||
|
||||
### Recent Activity Feed
|
||||
- Activity type (race_result, etc.)
|
||||
- Description/headline
|
||||
- Timestamp
|
||||
- Status (success for race results, info for other events)
|
||||
|
||||
## Test Philosophy
|
||||
|
||||
These tests follow the BDD testing concept defined in `plans/bdd_testing_concept.md`:
|
||||
|
||||
1. **Focus on Outcomes**: Tests validate final user outcomes, not visual implementation
|
||||
2. **Gherkin Syntax**: Tests use Given/When/Then structure
|
||||
3. **Acceptance Criteria**: Tests serve as the final source of truth for dashboard functionality
|
||||
4. **Playwright**: Tests use Playwright for E2E testing
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
- All test files are placeholders with TODO comments
|
||||
- Tests should be implemented using Playwright
|
||||
- Authentication setup should be shared across tests
|
||||
- Tests should validate final user outcomes, not implementation details
|
||||
- Tests should be independent and can run in any order
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
tests/e2e/bdd/dashboard/
|
||||
├── driver-dashboard-view.spec.ts # Main dashboard view tests
|
||||
├── dashboard-navigation.spec.ts # Navigation tests
|
||||
├── dashboard-error-states.spec.ts # Error handling tests
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
## Related Files
|
||||
|
||||
- `apps/website/app/dashboard/page.tsx` - Dashboard page component
|
||||
- `apps/website/app/dashboard/layout.tsx` - Dashboard layout
|
||||
- `apps/website/client-wrapper/DashboardPageClient.tsx` - Client wrapper
|
||||
- `apps/website/templates/DashboardTemplate.tsx` - Dashboard template
|
||||
- `apps/website/lib/view-data/DashboardViewData.ts` - Dashboard view data interface
|
||||
- `plans/bdd_testing_concept.md` - BDD testing concept and philosophy
|
||||
Reference in New Issue
Block a user