# Sponsor BDD E2E Tests

This directory contains BDD (Behavior-Driven Development) E2E tests for the sponsor functionality.

## Test Coverage

The sponsor functionality includes the following user journeys:

### 1. Sponsor Onboarding
- **sponsor-signup.spec.ts**: Tests sponsor account creation and login
  - Landing page navigation
  - Account registration with company details
  - Login functionality
  - Form validation

### 2. Sponsor Dashboard
- **sponsor-dashboard.spec.ts**: Tests the sponsor dashboard view
  - Dashboard overview and statistics
  - Navigation to different sponsor sections
  - Quick actions and metrics display

### 3. Sponsorship Campaigns
- **sponsor-campaigns.spec.ts**: Tests sponsorship campaign management
  - Viewing active/pending/approved/rejected sponsorships
  - Filtering sponsorships by type
  - Searching sponsorships
  - Campaign statistics display

### 4. Billing & Payments
- **sponsor-billing.spec.ts**: Tests billing and payment management
  - Viewing billing statistics
  - Managing payment methods
  - Downloading invoices
  - Viewing transaction history

### 5. Sponsor Settings
- **sponsor-settings.spec.ts**: Tests sponsor account settings
  - Profile management (company info, contact details)
  - Notification preferences
  - Privacy settings
  - Account deletion

### 6. League Sponsorship Discovery
- **sponsor-leagues.spec.ts**: Tests browsing and discovering leagues
  - Viewing available leagues for sponsorship
  - League statistics and metrics
  - Filtering and searching leagues
  - Viewing sponsorship opportunities

### 7. League Detail & Sponsorship
- **sponsor-league-detail.spec.ts**: Tests detailed league view and sponsorship
  - Viewing league details
  - Understanding sponsorship slots
  - Sponsorship pricing information
  - League statistics

## Testing Philosophy

These tests follow the BDD concept defined in `plans/bdd_testing_concept.md`:

- **Focus on outcomes**: Tests validate final user outcomes, not visual implementation
- **Gherkin syntax**: Use Given/When/Then comments to describe scenarios
- **User-centric**: Tests describe what users can see and do
- **Placeholder structure**: Each test file contains TODO comments indicating what needs to be implemented

## Test Structure

Each test file follows this pattern:

```typescript
import { test, expect } from '@playwright/test';

test.describe('Feature Name', () => {
  test.beforeEach(async ({ page }) => {
    // TODO: Implement authentication and navigation setup
  });

  test('User can perform action X', async ({ page }) => {
    // TODO: Implement test
    // Scenario: User performs action X
    // Given I am a registered sponsor
    // And I am on the "Page Name" page
    // When I perform action X
    // Then I should see outcome Y
  });
});
```

## Running Tests

Run sponsor BDD tests:
```bash
npx playwright test tests/e2e/bdd/sponsor/
```

Run specific test file:
```bash
npx playwright test tests/e2e/bdd/sponsor/sponsor-signup.spec.ts
```
