david
bb6be245b7
feat: Implement tournament schedule tab and fix E2E tests ( #27 )
...
Release / release (push) Failing after 9s
Build CI Images / build-ci-base (push) Failing after 18s
## 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 >
2026-04-27 01:59:16 +00:00
david
59009f0bf7
feat: add view match link to admin matches page
2026-03-31 18:52:06 -07:00
david
f9d6321721
fix: use ELO change instead of win rate for best partner calculation
2026-03-31 18:39:27 -07:00
david
48a96ce65f
fix: improve availablePlayers query to handle undefined playerId
2026-03-31 16:44:48 -07:00
david
1f9f708f19
fix: handle empty playerId string in user edit API
2026-03-31 16:44:26 -07:00
david
a22c801f0c
feat: add match management admin panel with delete functionality
2026-03-31 16:16:13 -07:00
david
222fb0bdc3
feat: add delete player functionality to admin panel
2026-03-31 16:16:10 -07:00
david
81f023317e
fix: update session handling to refresh admin navigation after login
2026-03-31 16:16:06 -07:00
david
7c2c198167
feat: add matches list page at /matches route
2026-03-31 13:19:03 -07:00
david
0ae4a171fd
feat: add git commit hash to footer for version tracking
2026-03-31 11:44:13 -07:00
david
f66242d569
fix: correct match diagram player positions to show teammates opposite each other
2026-03-31 11:36:24 -07:00
david
2062188cb3
fix: update API routes to handle Next.js 15+ params as Promise
2026-03-31 10:44:39 -07:00
david
a960bb8a41
feat: add user management link to admin dashboard
2026-03-31 10:26:37 -07:00
david
f26cbf2f65
feat: add delete user functionality for site admins
2026-03-31 10:26:11 -07:00
david
2ed86dafe9
feat: add user management panel for superusers
2026-03-31 10:24:35 -07:00
david
0431a7fcf3
fix: add dynamic config to prevent static generation
2026-03-31 10:14:26 -07:00
david
1e5f900821
fix: add dynamic config to pages and update Dockerfile for PostgreSQL
2026-03-31 04:17:16 -07:00
david
f49d0f02d9
fix: move Lynn, Emily, and Amelia 10px further outward
2026-03-31 03:52:48 -07:00
david
6c29eeceaf
fix: fine-tune player positions in match diagram
2026-03-31 03:51:29 -07:00
david
2fa606d0e0
fix: increase player name padding in match diagram
2026-03-31 03:49:15 -07:00
david
63956e8087
fix: increase match diagram size and improve player visibility
2026-03-31 03:47:22 -07:00
david
ce1b01b44d
fix: correct match diagram player positions
2026-03-31 03:44:23 -07:00
david
fa851a4143
feat: display all rating systems on player profile page
2026-03-31 03:38:55 -07:00
david
e19c292cfb
feat: add tabbed rankings page for Elo, OpenSkill, and Glicko2
2026-03-31 03:38:47 -07:00
david
ef5d8404c2
feat: update recalculate-elo API to support multiple rating systems
2026-03-31 03:38:39 -07:00
david
e3f9935d68
feat: auto-create tournament when uploading matches without selection
2026-03-31 03:38:34 -07:00
david
af20a5d9ec
feat: update match API to calculate all rating systems
2026-03-31 03:38:19 -07:00
david
141ca7c93e
feat: add manual match entry form and match detail pages with diagram
2026-03-31 02:01:35 -07:00
david
e0d159ad8d
fix: remove logging from prisma client and fix users API routes
2026-03-31 01:15:57 -07:00
david
b8d90897a4
fix: await params in Next.js 16 routes and pages for TypeScript compatibility
2026-03-31 00:50:56 -07:00
david
a1fb0e25a7
fix: validate ID parsing in API routes and player pages for Prisma v7
2026-03-31 00:21:02 -07:00
david
0f66815ed4
fix: validate tournament ID parsing for Prisma v7 strict type checking
2026-03-31 00:16:22 -07:00
david
b0aaffbecf
chore: fix linting errors in tests and api routes
2026-03-30 22:58:33 -07:00
david
6f83080fca
feat: update POST /api/matches to handle eventId and tournament match stats
2026-03-30 22:58:25 -07:00
david
9c8f1bc57d
feat: update MatchEditor to use tournament-specific scoring rules
2026-03-30 22:58:17 -07:00
david
d6a53f8912
feat: add targetScore and allowTies fields to tournament API routes
2026-03-30 22:58:01 -07:00
david
5d1755f082
chore: add variant scoring fields, fix tie handling, and fix test files for normalizedName
2026-03-30 22:48:31 -07:00
david
fb04a6c3f1
fix: delete elo snapshots before deleting duplicate players during merge
2026-03-30 22:20:18 -07:00
david
a7d94e9fee
fix: add tournament update API endpoint and consolidate delete into main tournaments API
2026-03-30 22:17:44 -07:00
david
fa7a422ce3
feat: add player merge functionality with automatic Elo recalculation
2026-03-30 22:04:31 -07:00
david
db782ff504
feat: add player name editing functionality in admin UI and fix site_admin access to admin dashboard
2026-03-30 21:58:30 -07:00
david
9201b2c437
feat: add admin player management page
2026-03-30 21:51:26 -07:00
david
07804b5f8f
feat: add site_admin role, casual match support, and tournament deletion
2026-03-30 21:49:43 -07:00
david
0cf346f16a
feat: add user profile API endpoint
2026-03-30 21:32:00 -07:00
david
e061e1e9f7
feat: add tournaments participated and recent matches to player profile
2026-03-30 21:31:06 -07:00
david
78b4c84eb8
feat: implement player deduplication in match upload
2026-03-30 21:30:58 -07:00
david
6feada4fd8
refactor: use permission system instead of direct session checks in admin pages
2026-03-30 21:30:50 -07:00
david
5748e416be
fix: remove duplicate tournament variable definitions in admin pages
2026-03-30 21:30:41 -07:00
david
3a78f354ad
feat: add recalculateAllElo function for idempotent ELO recalculation
2026-03-30 21:28:09 -07:00
david
4cd744f10c
fix: resolve Prisma Event type conflict with global DOM Event
...
- Renamed Event import to EventModel to avoid conflict with global DOM Event interface
- Updated type assertion to use EventModel[]
2026-03-29 21:26:16 -07:00