Files
blackcanyontickets/reactrebuild0825/test-create-event-next-button.cjs
dzinesco 8ed7ae95d1 feat: comprehensive project completion and documentation
- Enhanced event creation wizard with multi-step validation
- Added advanced QR scanning system with offline support
- Implemented comprehensive territory management features
- Expanded analytics with export functionality and KPIs
- Created complete design token system with theme switching
- Added 25+ Playwright test files for comprehensive coverage
- Implemented enterprise-grade permission system
- Enhanced component library with 80+ React components
- Added Firebase integration for deployment
- Completed Phase 3 development goals substantially

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-26 15:04:37 -06:00

66 lines
2.4 KiB
JavaScript

const { test, expect } = require('@playwright/test');
test('Event Creation Wizard Next Button Works', async ({ page }) => {
// Navigate to the application
await page.goto('http://localhost:5173');
// Wait for login page to load
await page.waitForLoadState('networkidle');
// Login as admin to access event creation
await page.click('[data-testid="demo-user-sarah-admin"]');
await page.click('button[type="submit"]');
await page.waitForURL(/\/(dashboard|$)/, { timeout: 10000 });
// Wait for dashboard to load
await page.waitForLoadState('networkidle');
await page.waitForTimeout(1000);
// Click Create New Event button
await page.click('button:has-text("Create New Event")');
// Wait for the modal to appear
await expect(page.locator('h2:has-text("Create New Event")')).toBeVisible();
await expect(page.locator('text=Step 1 of 3: Event Details')).toBeVisible();
// Check that Next button is initially disabled
const nextButton = page.locator('button:has-text("Next")');
await expect(nextButton).toBeDisabled();
// Check required fields validation message appears
await expect(page.locator('text=Required fields:')).toBeVisible();
// Fill in the required fields one by one and test validation
// 1. Fill in title - Next should still be disabled
await page.fill('input[placeholder="Enter event title"]', 'Test Event');
await expect(nextButton).toBeDisabled();
// 2. Fill in description - Next should still be disabled
await page.fill('textarea[placeholder*="Describe your event"]', 'This is a test event description');
await expect(nextButton).toBeDisabled();
// 3. Fill in date - Next should still be disabled
await page.fill('input[type="datetime-local"]', '2024-12-25T18:00');
await expect(nextButton).toBeDisabled();
// 4. Fill in venue - Now Next should be enabled!
await page.fill('input[placeholder="Event location"]', 'Test Venue');
// Wait a moment for validation to update
await page.waitForTimeout(100);
// Next button should now be enabled
await expect(nextButton).toBeEnabled();
// The validation message should disappear
await expect(page.locator('text=Required fields:')).not.toBeVisible();
// Click Next to go to step 2
await nextButton.click();
// Check we're now on step 2
await expect(page.locator('text=Step 2 of 3: Ticket Configuration')).toBeVisible();
console.log('✅ Event Creation Wizard Next Button works correctly!');
});