- Increase workers from 1 to 10 in CI for parallel execution
- Reduce expect timeout from 5000ms to 2000ms
- Reduce all waitForTimeout calls >1000ms to 200-500ms
- Remove unnecessary waits in global setup
- Reduce URL wait timeouts from 10000ms to 5000ms across tests
- Fix tournament-edit-allowTies: add login before navigating to edit page
- Fix epic4-tournament-creation: fill name field before clicking Next
- Fix cucumber config: remove broken cucumber-pretty formatter
- cucumber: use 'progress' formatter in CI (not progress-bar TTY)
- csv-upload: use timestamp in player names to avoid unique constraint
- elo-ratings: delete event_participants before players (FK constraint)
- epic3-rankings: use .first() on h1/h2 locator (strict mode)
- schedule-tab: look for button instead of anchor for Schedule tab
- team-config: wait for search input before filling (step 2 async)
- tournament-edit-allowTies: check for 'Edit Tournament' not 'Tournament Name'
- epic4-tournament-creation: submit button only on step 2, add waitForSelector
## Summary
This PR implements the tournament schedule tab functionality and fixes all remaining E2E test failures.
### Changes Included
1. **Tournament Schedule Feature**
- Added tournament schedule page at `/admin/tournaments/[id]/schedule`
- Implemented "Generate Schedule" button functionality
- Added schedule generation logic for round-robin tournaments
2. **E2E Test Fixes**
- Fixed database connection issues in production builds
- Improved test reliability with better error handling and debugging
- Updated test infrastructure to use environment variables instead of hardcoded values
3. **CI/CD Updates**
- Added E2E test job to PR workflow
- Configured tests to run against development database
- Moved database password to Gitea secrets
4. **Code Quality**
- Removed hardcoded passwords from codebase
- Improved Prisma client configuration
- Enhanced authentication and navigation components
### Test Results
All 16 E2E test scenarios are now passing:
- Authentication tests: ✅
- Registration tests: ✅
- Tournament schedule tests: ✅
- Player schedule tests: ✅
- Admin navigation tests: ✅
### Database Configuration
- Tests run against `euchre_camp_dev` database
- Production builds use environment variables for database configuration
- Database password stored in Gitea secrets as `DB_PASSWORD`
### CI Pipeline
The PR workflow now includes:
1. Unit tests
2. E2E tests (using production build)
3. Version bump analysis
E2E tests must pass before PR can be merged.
Reviewed-on: #27
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
- Update all test files to use named mock variables instead of inline mocks
- Clear mock history in beforeEach instead of using mock.restore()
- Add default mock implementations stored at module level
- Document that tests should not use --randomize flag due to mock.module() limitations
- All 89 unit tests pass consistently without randomization