code quality
Some checks failed
CI / lint-typecheck (pull_request) Failing after 13s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped

This commit is contained in:
2026-01-27 16:30:03 +01:00
parent 9b31eaf728
commit 9894c4a841
34 changed files with 926 additions and 536 deletions

View File

@@ -10,108 +10,12 @@
* Focus: Final user outcomes - what the driver experiences in error scenarios
*/
import { test, expect } from '@playwright/test';
import { expect, test } from '@playwright/test';
test.describe('Dashboard Error States', () => {
test('Driver cannot access dashboard without authentication', async ({ page }) => {
// TODO: Implement test
// Scenario: Unauthenticated access to dashboard
// Given I am not authenticated
// When I try to access the dashboard page directly
// Then I should be redirected to the login page
// And I should see an authentication required message
});
test('Driver sees error message when dashboard API fails', async ({ page }) => {
// TODO: Implement test
// Scenario: Dashboard API error
// Given I am a registered driver "John Doe"
// And the dashboard API is unavailable
// When I navigate to the dashboard page
// Then I should see an error message
// And I should see options to retry or contact support
});
test('Driver sees error message when dashboard data is invalid', async ({ page }) => {
// TODO: Implement test
// Scenario: Dashboard data validation error
// Given I am a registered driver "John Doe"
// And the dashboard API returns invalid data
// When I navigate to the dashboard page
// Then I should see an error message
// And I should see options to retry or contact support
});
test('Driver sees empty dashboard when no data is available', async ({ page }) => {
// TODO: Implement test
// Scenario: New driver with no data
// Given I am a newly registered driver
// And I have no race history or upcoming races
// When I navigate to the dashboard page
// Then I should see the dashboard layout
// And I should see my basic driver stats (rating, rank, etc.)
// And I should see empty states for upcoming races
// And I should see empty states for championship standings
// And I should see empty states for recent activity
});
test('Driver dashboard handles network timeout gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Network timeout
// Given I am a registered driver "John Doe"
// And the dashboard API times out
// When I navigate to the dashboard page
// Then I should see a timeout error message
// And I should see a retry button
});
test('Driver dashboard handles server error (500) gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Server error
// Given I am a registered driver "John Doe"
// And the dashboard API returns a 500 error
// When I navigate to the dashboard page
// Then I should see a server error message
// And I should see options to retry or contact support
});
test('Driver dashboard handles not found error (404) gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Not found error
// Given I am a registered driver "John Doe"
// And the dashboard API returns a 404 error
// When I navigate to the dashboard page
// Then I should see a not found error message
// And I should see options to retry or contact support
});
test('Driver dashboard handles unauthorized error (401) gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Unauthorized error
// Given I am a registered driver "John Doe"
// And my session has expired
// When I navigate to the dashboard page
// Then I should be redirected to the login page
// And I should see an authentication required message
});
test('Driver dashboard handles forbidden error (403) gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Forbidden error
// Given I am a registered driver "John Doe"
// And I do not have permission to access the dashboard
// When I navigate to the dashboard page
// Then I should see a forbidden error message
// And I should see options to contact support
});
test('Driver dashboard handles validation error gracefully', async ({ page }) => {
// TODO: Implement test
// Scenario: Validation error
// Given I am a registered driver "John Doe"
// And the dashboard API returns validation errors
// When I navigate to the dashboard page
// Then I should see a validation error message
// And I should see options to retry or contact support
test('Unauthenticated user is redirected to login when accessing dashboard', async ({ page }) => {
await page.goto('/dashboard');
await page.waitForURL('**/auth/login**');
await expect(page.getByTestId('login-form')).toBeVisible();
});
});