fix(multiplayer): validate initial-connect backfill

This commit is contained in:
Josh Creek
2026-09-03 21:15:32 +01:00
parent b5b6bdea95
commit 6632cdace7
4 changed files with 11 additions and 1 deletions
@@ -0,0 +1,5 @@
-- Migration 0010 backfilled every state that requires an initial-connect
-- timestamp. Validate that invariant now so an anomalous legacy row blocks
-- rollout instead of silently bypassing no-show reconciliation.
ALTER TABLE matches
VALIDATE CONSTRAINT matches_initial_connect_ready_at;
@@ -0,0 +1 @@
-- Constraint validation changes no schema and is intentionally irreversible.
+4
View File
@@ -11,6 +11,7 @@ ARENAS_SQL = (Path(__file__).parent / "0008_match_arena_paths.sql").read_text()
ALLOCATION_ARENAS_SQL = (Path(__file__).parent / "0009_allocation_arena_paths.sql").read_text()
INITIAL_CONNECT_READY_SQL = (Path(__file__).parent / "0010_initial_connect_ready_at.sql").read_text()
CONNECTION_LEASE_VALIDATION_SQL = (Path(__file__).parent / "0012_validate_connection_leases.sql").read_text()
INITIAL_CONNECT_VALIDATION_SQL = (Path(__file__).parent / "0013_validate_initial_connect_ready.sql").read_text()
class MigrationTest(unittest.TestCase):
@@ -82,6 +83,9 @@ class MigrationTest(unittest.TestCase):
def test_connection_lease_backfill_is_validated_for_legacy_rows(self):
self.assertIn("VALIDATE CONSTRAINT match_participants_connection_lease", CONNECTION_LEASE_VALIDATION_SQL)
def test_initial_connect_backfill_is_validated_for_legacy_rows(self):
self.assertIn("VALIDATE CONSTRAINT matches_initial_connect_ready_at", INITIAL_CONNECT_VALIDATION_SQL)
if __name__ == "__main__":
unittest.main()