-
Mahmoud Aglan authored
el3ab_tournaments.starts_at is NOT NULL in the live schema. tournament-admin.php allowed it to be null, so every create call that did not supply one was rejected by Postgres. The local test schema had the column nullable, so the suite passed and the defect only appeared when the rehearsal ran against production. starts_at now defaults to now() — which also gives auto_start something to act on — and tests/schema.sql marks the column NOT NULL so the next one is caught locally. Adds tests/rehearsal.mjs, the script that found it: four throwaway accounts driven through matchmaking, a 33-move game to checkmate and a full Swiss round against the live deployment, with teardown in a finally block. Run it after any deploy. Co-Authored-By:Claude Opus 5 (1M context) <noreply@anthropic.com>
fcc74b9f