694 lines
27 KiB
TypeScript
694 lines
27 KiB
TypeScript
/**
|
|
* BDD E2E Test: League Creation
|
|
*
|
|
* Tests the league creation wizard that guides users through:
|
|
* - Basic league information (name, description, visibility)
|
|
* - League structure (max drivers, approval requirements, late join)
|
|
* - Schedule configuration (race frequency, track selection)
|
|
* - Scoring configuration (points system, penalties)
|
|
* - Stewarding configuration (protest handling, penalty appeals)
|
|
* - Review and confirmation
|
|
*
|
|
* Focus: Final user outcomes - what the driver sees and can verify
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('League Creation', () => {
|
|
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 league creation page
|
|
});
|
|
|
|
test('Driver can access league creation wizard', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver accesses league creation wizard
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the Leagues Discovery page
|
|
// When I click "Create League"
|
|
// Then I should be navigated to the league creation wizard
|
|
// And I should see the first step (Basics)
|
|
});
|
|
|
|
test('Driver can fill in basic league information', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver fills in basic league information
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Basics step)
|
|
// When I enter league name "Test League"
|
|
// And I enter league description "A test league"
|
|
// And I select visibility "Public"
|
|
// And I click "Next"
|
|
// Then I should proceed to the next step
|
|
// And my basic information should be saved
|
|
});
|
|
|
|
test('Driver can configure league visibility', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures league visibility
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Basics step)
|
|
// When I select visibility "Private"
|
|
// And I click "Next"
|
|
// Then the league should be configured as private
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure league structure', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures league structure
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Structure step)
|
|
// When I set max drivers to "20"
|
|
// And I enable "Require Approval"
|
|
// And I enable "Allow Late Join"
|
|
// And I click "Next"
|
|
// Then the league structure should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure max drivers', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures max drivers
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Structure step)
|
|
// When I set max drivers to "30"
|
|
// And I click "Next"
|
|
// Then the max drivers should be set to 30
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure approval requirement', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures approval requirement
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Structure step)
|
|
// When I enable "Require Approval"
|
|
// And I click "Next"
|
|
// Then the league should require approval
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure late join option', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures late join option
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Structure step)
|
|
// When I enable "Allow Late Join"
|
|
// And I click "Next"
|
|
// Then the league should allow late join
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure schedule', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures schedule
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Schedule step)
|
|
// When I select race frequency "Weekly"
|
|
// And I select race day "Saturday"
|
|
// And I select race time "18:00"
|
|
// And I click "Next"
|
|
// Then the schedule should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can select tracks for schedule', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver selects tracks for schedule
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Schedule step)
|
|
// When I select tracks "Monza", "Spa", "Nürburgring"
|
|
// And I click "Next"
|
|
// Then the tracks should be selected
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure scoring system', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures scoring system
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Scoring step)
|
|
// When I select scoring preset "Standard"
|
|
// And I configure points for top 10
|
|
// And I enable bonus points
|
|
// And I click "Next"
|
|
// Then the scoring system should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure points for positions', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures points for positions
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Scoring step)
|
|
// When I set points for 1st place to "25"
|
|
// And I set points for 2nd place to "18"
|
|
// And I set points for 3rd place to "15"
|
|
// And I click "Next"
|
|
// Then the points should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure bonus points', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures bonus points
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Scoring step)
|
|
// When I enable bonus points
|
|
// And I set fastest lap bonus to "1"
|
|
// And I set pole position bonus to "1"
|
|
// And I click "Next"
|
|
// Then the bonus points should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure penalty system', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures penalty system
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Scoring step)
|
|
// When I enable penalties
|
|
// And I set penalty points for incidents
|
|
// And I configure penalty thresholds
|
|
// And I click "Next"
|
|
// Then the penalty system should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure stewarding system', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures stewarding system
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Stewarding step)
|
|
// When I enable protests
|
|
// And I enable penalty appeals
|
|
// And I set protest deadline to "24 hours"
|
|
// And I click "Next"
|
|
// Then the stewarding system should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure protest handling', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures protest handling
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Stewarding step)
|
|
// When I enable protests
|
|
// And I set protest fee to "$5"
|
|
// And I set protest review time to "48 hours"
|
|
// And I click "Next"
|
|
// Then protest handling should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure penalty appeals', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures penalty appeals
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Stewarding step)
|
|
// When I enable penalty appeals
|
|
// And I set appeal fee to "$5"
|
|
// And I set appeal review time to "72 hours"
|
|
// And I click "Next"
|
|
// Then penalty appeals should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can configure stewarding team', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver configures stewarding team
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Stewarding step)
|
|
// When I add stewards by driver name
|
|
// And I set steward permissions
|
|
// And I click "Next"
|
|
// Then the stewarding team should be configured
|
|
// And I should proceed to the next step
|
|
});
|
|
|
|
test('Driver can review league configuration', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver reviews league configuration
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a summary of all configuration
|
|
// And I should see basic information
|
|
// And I should see structure settings
|
|
// And I should see schedule settings
|
|
// And I should see scoring settings
|
|
// And I should see stewarding settings
|
|
});
|
|
|
|
test('Driver can edit configuration from review', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver edits configuration from review
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// When I click "Edit" on basic information
|
|
// Then I should be taken back to the Basics step
|
|
// And I should be able to edit the information
|
|
});
|
|
|
|
test('Driver can confirm league creation', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver confirms league creation
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// When I click "Create League"
|
|
// Then the league should be created
|
|
// And I should be navigated to the league detail page
|
|
// And I should see a confirmation message
|
|
});
|
|
|
|
test('Driver can cancel league creation', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver cancels league creation
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// When I click "Cancel"
|
|
// Then I should be navigated back to the leagues discovery page
|
|
// And my progress should not be saved
|
|
});
|
|
|
|
test('Driver can save draft league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver saves draft league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// When I click "Save Draft"
|
|
// Then my progress should be saved
|
|
// And I should be able to continue later
|
|
});
|
|
|
|
test('Driver can load saved draft', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver loads saved draft
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have a saved draft league
|
|
// When I navigate to league creation
|
|
// Then I should see the option to load draft
|
|
// And I should be able to continue from where I left off
|
|
});
|
|
|
|
test('Driver sees validation errors for required fields', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees validation errors
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Basics step)
|
|
// When I leave league name empty
|
|
// And I click "Next"
|
|
// Then I should see a validation error
|
|
// And I should not be able to proceed
|
|
});
|
|
|
|
test('Driver sees validation errors for invalid values', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees validation errors for invalid values
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Structure step)
|
|
// When I set max drivers to "0"
|
|
// And I click "Next"
|
|
// Then I should see a validation error
|
|
// And I should not be able to proceed
|
|
});
|
|
|
|
test('Driver can navigate between wizard steps', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver navigates between wizard steps
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// When I click "Next" multiple times
|
|
// And I click "Back"
|
|
// Then I should be able to navigate between steps
|
|
// And my data should be preserved
|
|
});
|
|
|
|
test('Driver sees progress indicator', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees progress indicator
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// Then I should see a progress indicator
|
|
// And it should show current step and total steps
|
|
});
|
|
|
|
test('Driver sees step titles', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees step titles
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// Then I should see the title of each step
|
|
// And titles should be clear and descriptive
|
|
});
|
|
|
|
test('Driver sees help text for each field', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees help text
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard
|
|
// Then I should see help text for each field
|
|
// And help text should explain what the field does
|
|
});
|
|
|
|
test('Driver sees preview of league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees preview of league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a preview of how the league will look
|
|
// And preview should include league name, description, etc.
|
|
});
|
|
|
|
test('Driver sees estimated league cost', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees estimated league cost
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the estimated cost of running the league
|
|
// And cost should be displayed as currency amount
|
|
});
|
|
|
|
test('Driver sees league capacity information', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league capacity information
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league capacity
|
|
// And capacity should show max drivers and current count
|
|
});
|
|
|
|
test('Driver sees league schedule preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league schedule preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a preview of the league schedule
|
|
// And schedule should show race dates and tracks
|
|
});
|
|
|
|
test('Driver sees league scoring preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league scoring preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a preview of the scoring system
|
|
// And scoring should show points distribution
|
|
});
|
|
|
|
test('Driver sees league stewarding preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league stewarding preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a preview of the stewarding system
|
|
// And stewarding should show protest and appeal rules
|
|
});
|
|
|
|
test('Driver sees league visibility preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league visibility preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league visibility
|
|
// And visibility should show public/private status
|
|
});
|
|
|
|
test('Driver sees league registration preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league registration preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the registration settings
|
|
// And registration should show approval requirements and late join
|
|
});
|
|
|
|
test('Driver sees league owner information preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league owner information preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league owner information
|
|
// And owner should be the current driver
|
|
});
|
|
|
|
test('Driver sees league creation timestamp preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league creation timestamp preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league creation timestamp
|
|
// And timestamp should be formatted correctly
|
|
});
|
|
|
|
test('Driver sees league status preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league status preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league status
|
|
// And status should show "Active" or "Pending"
|
|
});
|
|
|
|
test('Driver sees league member count preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league member count preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league member count
|
|
// And count should show 1 (the owner)
|
|
});
|
|
|
|
test('Driver sees league race count preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league race count preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league race count
|
|
// And count should match the configured schedule
|
|
});
|
|
|
|
test('Driver sees league sponsor count preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league sponsor count preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league sponsor count
|
|
// And count should show 0 (no sponsors yet)
|
|
});
|
|
|
|
test('Driver sees league prize pool preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league prize pool preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league prize pool
|
|
// And prize pool should show 0 (no sponsors yet)
|
|
});
|
|
|
|
test('Driver sees league rating preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league rating preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league rating
|
|
// And rating should show 0 (no reviews yet)
|
|
});
|
|
|
|
test('Driver sees league review count preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league review count preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league review count
|
|
// And count should show 0 (no reviews yet)
|
|
});
|
|
|
|
test('Driver sees league game type preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league game type preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league game type
|
|
// And game type should be iRacing (default)
|
|
});
|
|
|
|
test('Driver sees league skill level preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league skill level preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league skill level
|
|
// And skill level should be configurable
|
|
});
|
|
|
|
test('Driver sees league category preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league category preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league category
|
|
// And category should be configurable
|
|
});
|
|
|
|
test('Driver sees league tags preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league tags preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league tags
|
|
// And tags should include game type, skill level, etc.
|
|
});
|
|
|
|
test('Driver sees league description preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league description preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league description
|
|
// And description should be displayed
|
|
});
|
|
|
|
test('Driver sees league name preview', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league name preview
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see the league name
|
|
// And name should be displayed prominently
|
|
});
|
|
|
|
test('Driver sees league creation confirmation message', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league creation confirmation
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have completed the league creation wizard
|
|
// When I click "Create League"
|
|
// Then I should see a confirmation message
|
|
// And confirmation should include league name and next steps
|
|
});
|
|
|
|
test('Driver is navigated to league detail after creation', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver is navigated to league detail
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have completed the league creation wizard
|
|
// When I click "Create League"
|
|
// Then I should be navigated to the league detail page
|
|
// And I should see the new league
|
|
});
|
|
|
|
test('Driver sees new league in their leagues list', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees new league in their leagues
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to my leagues
|
|
// Then I should see the new league in the list
|
|
// And I should be listed as the owner
|
|
});
|
|
|
|
test('Driver can manage their created league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver can manage their league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to the league detail page
|
|
// Then I should see admin options
|
|
// And I should be able to manage the league
|
|
});
|
|
|
|
test('Driver sees league in discovery after creation', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league in discovery
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to leagues discovery
|
|
// Then I should see the new league in the list
|
|
// And it should be searchable
|
|
});
|
|
|
|
test('Driver can join their own league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver can join their own league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to the league detail page
|
|
// Then I should see myself in the roster
|
|
// And I should be listed as owner
|
|
});
|
|
|
|
test('Driver can invite others to their league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver can invite others to their league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to the league roster page
|
|
// Then I should see invite options
|
|
// And I should be able to invite other drivers
|
|
});
|
|
|
|
test('Driver can configure league after creation', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver can configure league after creation
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to league settings
|
|
// Then I should be able to edit all configuration
|
|
// And changes should be saved
|
|
});
|
|
|
|
test('Driver can delete their league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver deletes their league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I have created a new league
|
|
// When I navigate to league settings
|
|
// And I click "Delete League"
|
|
// Then the league should be deleted
|
|
// And I should see a confirmation message
|
|
});
|
|
|
|
test('Driver sees league creation cost breakdown', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees league creation cost breakdown
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see a cost breakdown
|
|
// And breakdown should include platform fees, etc.
|
|
});
|
|
|
|
test('Driver sees league creation terms and conditions', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver sees terms and conditions
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// Then I should see terms and conditions
|
|
// And I should be able to review them
|
|
});
|
|
|
|
test('Driver must accept terms to create league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver must accept terms
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// When I click "Create League" without accepting terms
|
|
// Then I should see an error
|
|
// And league should not be created
|
|
});
|
|
|
|
test('Driver can accept terms and create league', async ({ page }) => {
|
|
// TODO: Implement test
|
|
// Scenario: Driver accepts terms and creates league
|
|
// Given I am a registered driver "John Doe"
|
|
// And I am on the league creation wizard (Review step)
|
|
// When I accept terms and conditions
|
|
// And I click "Create League"
|
|
// Then the league should be created
|
|
// And I should see a confirmation
|
|
});
|
|
});
|