bdd tests
This commit is contained in:
130
tests/e2e/bdd/dashboard/driver-dashboard-view.spec.ts
Normal file
130
tests/e2e/bdd/dashboard/driver-dashboard-view.spec.ts
Normal file
@@ -0,0 +1,130 @@
|
||||
/**
|
||||
* BDD E2E Test: Driver Dashboard View
|
||||
*
|
||||
* Tests the main dashboard view that displays:
|
||||
* - Current driver statistics (rating, rank, starts, wins, podiums, leagues)
|
||||
* - Next race information (track, car, scheduled time, time until)
|
||||
* - Upcoming races (list of 3 races)
|
||||
* - Championship standings (league name, position, points)
|
||||
* - Recent activity feed (race results, other events)
|
||||
*
|
||||
* Focus: Final user outcomes - what the driver sees and can verify
|
||||
*/
|
||||
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test.describe('Driver Dashboard View', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
// TODO: Implement authentication setup for a registered driver
|
||||
// - Navigate to login page
|
||||
// - Enter credentials for "John Doe" or similar test driver
|
||||
// - Verify successful login
|
||||
// - Navigate to dashboard page
|
||||
});
|
||||
|
||||
test('Driver sees their current statistics on the dashboard', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views their personal stats
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I am on the Dashboard page
|
||||
// Then I should see my current rating displayed
|
||||
// And I should see my current rank displayed
|
||||
// And I should see my total race starts displayed
|
||||
// And I should see my total wins displayed
|
||||
// And I should see my total podiums displayed
|
||||
// And I should see my active leagues count displayed
|
||||
});
|
||||
|
||||
test('Driver sees next race information when a race is scheduled', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views next race details
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I have an upcoming race scheduled
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Next Event" section
|
||||
// And I should see the track name (e.g., "Monza")
|
||||
// And I should see the car type (e.g., "GT3")
|
||||
// And I should see the scheduled date and time
|
||||
// And I should see the time until the race (e.g., "2 days 4 hours")
|
||||
});
|
||||
|
||||
test('Driver sees upcoming races list on the dashboard', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views upcoming races
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I have multiple upcoming races scheduled
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Upcoming Schedule" section
|
||||
// And I should see up to 3 upcoming races
|
||||
// And each race should show track name, car type, date, and time until
|
||||
});
|
||||
|
||||
test('Driver sees championship standings on the dashboard', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views their championship standings
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I am participating in active championships
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Championship Standings" section
|
||||
// And I should see each league name I'm participating in
|
||||
// And I should see my current position in each league
|
||||
// And I should see my current points in each league
|
||||
// And I should see the total number of drivers in each league
|
||||
});
|
||||
|
||||
test('Driver sees recent activity feed on the dashboard', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views recent activity
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I have recent race results or other events
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Recent Activity" section
|
||||
// And I should see activity items with type, description, and timestamp
|
||||
// And race results should be marked with success status
|
||||
// And other events should be marked with info status
|
||||
});
|
||||
|
||||
test('Driver sees empty state when no upcoming races exist', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver with no upcoming races
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I have no upcoming races scheduled
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Upcoming Schedule" section
|
||||
// And I should see a message indicating no upcoming races
|
||||
});
|
||||
|
||||
test('Driver sees empty state when no championship standings exist', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver with no active championships
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I am not participating in any active championships
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Championship Standings" section
|
||||
// And I should see a message indicating no active championships
|
||||
});
|
||||
|
||||
test('Driver sees empty state when no recent activity exists', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver with no recent activity
|
||||
// Given I am a registered driver "John Doe"
|
||||
// And I have no recent race results or events
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see the "Recent Activity" section
|
||||
// And I should see a message indicating no recent activity
|
||||
});
|
||||
|
||||
test('Dashboard displays KPI overview with correct values', async ({ page }) => {
|
||||
// TODO: Implement test
|
||||
// Scenario: Driver views KPI overview
|
||||
// Given I am a registered driver "John Doe"
|
||||
// When I am on the Dashboard page
|
||||
// Then I should see a KPI row with 6 items:
|
||||
// - Rating (primary intent)
|
||||
// - Rank (warning intent)
|
||||
// - Starts (default intent)
|
||||
// - Wins (success intent)
|
||||
// - Podiums (warning intent)
|
||||
// - Leagues (default intent)
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user