123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# Leagues BDD E2E Tests
|
|
|
|
This directory contains BDD (Behavior-Driven Development) E2E tests for the GridPilot leagues functionality.
|
|
|
|
## Test Coverage
|
|
|
|
### 1. Leagues Discovery (`leagues-discovery.spec.ts`)
|
|
Tests the leagues discovery page where drivers can find and filter leagues.
|
|
|
|
**Scenarios:**
|
|
- Driver sees list of available leagues
|
|
- Driver can search for leagues by name or description
|
|
- Driver can filter leagues by category
|
|
- Driver can navigate to league details
|
|
- Driver can initiate league creation
|
|
|
|
### 2. League Detail (`league-detail.spec.ts`)
|
|
Tests the main league overview page.
|
|
|
|
**Scenarios:**
|
|
- Driver sees league information and statistics
|
|
- Driver can join or leave a league
|
|
- Driver can navigate to sub-pages (roster, schedule, etc.)
|
|
- Admin can access management pages (settings, wallet, etc.)
|
|
|
|
### 3. League Roster (`league-roster.spec.ts`)
|
|
Tests the league member list and management.
|
|
|
|
**Scenarios:**
|
|
- Driver sees list of members and their roles
|
|
- Admin can promote/demote members
|
|
- Admin can manage membership requests
|
|
|
|
### 4. League Schedule (`league-schedule.spec.ts`)
|
|
Tests the league race schedule and registration.
|
|
|
|
**Scenarios:**
|
|
- Driver sees upcoming and completed races
|
|
- Driver can register for or unregister from races
|
|
- Admin can manage the race schedule and import results
|
|
|
|
### 5. League Standings (`league-standings.spec.ts`)
|
|
Tests the championship standings and driver statistics.
|
|
|
|
**Scenarios:**
|
|
- Driver sees ranked list of drivers by points
|
|
- Driver can sort and filter standings
|
|
- Driver sees standings history and trends
|
|
|
|
### 6. League Creation (`league-create.spec.ts`)
|
|
Tests the multi-step league creation wizard.
|
|
|
|
**Scenarios:**
|
|
- Driver can configure basic info, structure, schedule, scoring, and stewarding
|
|
- Driver can review and confirm league creation
|
|
- Validation of required fields and settings
|
|
|
|
### 7. League Settings (`league-settings.spec.ts`)
|
|
Tests the league administration and configuration.
|
|
|
|
**Scenarios:**
|
|
- Admin can update league info and visibility
|
|
- Admin can configure scoring, penalties, and stewarding rules
|
|
- Admin can manage the stewarding team
|
|
- Admin can archive or delete the league
|
|
|
|
### 8. League Wallet (`league-wallet.spec.ts`)
|
|
Tests the financial management of a league.
|
|
|
|
**Scenarios:**
|
|
- Admin sees balance, revenue, and fees
|
|
- Admin views transaction history and filters
|
|
- Admin manages payouts and deposits
|
|
|
|
### 9. League Sponsorships (`league-sponsorships.spec.ts`)
|
|
Tests the sponsorship management for leagues.
|
|
|
|
**Scenarios:**
|
|
- Admin manages sponsorship slots and requests
|
|
- Admin tracks sponsorship revenue
|
|
|
|
### 10. League Stewarding (`league-stewarding.spec.ts`)
|
|
Tests the protest and penalty management system.
|
|
|
|
**Scenarios:**
|
|
- Steward reviews protests and issues decisions
|
|
- Steward manages penalties and appeals
|
|
- Steward communicates with drivers regarding incidents
|
|
|
|
## 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 in comments.
|
|
3. **Acceptance Criteria**: Tests serve as the final source of truth for league 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/leagues/
|
|
├── leagues-discovery.spec.ts
|
|
├── league-detail.spec.ts
|
|
├── league-roster.spec.ts
|
|
├── league-schedule.spec.ts
|
|
├── league-standings.spec.ts
|
|
├── league-create.spec.ts
|
|
├── league-settings.spec.ts
|
|
├── league-wallet.spec.ts
|
|
├── league-sponsorships.spec.ts
|
|
├── league-stewarding.spec.ts
|
|
└── README.md
|
|
```
|