From 9e87419085f77ea7f23c978ca375ea2271d54c02 Mon Sep 17 00:00:00 2001 From: hz <1766264+zeeshaun@users.noreply.github.com> Date: Tue, 2 Jun 2026 19:13:44 -0500 Subject: [PATCH] Add failing stand-in invite regression test --- src/invites/match-invites.permissions.spec.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/invites/match-invites.permissions.spec.ts diff --git a/src/invites/match-invites.permissions.spec.ts b/src/invites/match-invites.permissions.spec.ts new file mode 100644 index 00000000..94313c2d --- /dev/null +++ b/src/invites/match-invites.permissions.spec.ts @@ -0,0 +1,28 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +describe("match invite permissions", () => { + const inviteMetadata = readFileSync( + join( + __dirname, + "../../hasura/metadata/databases/default/tables/public_match_invites.yaml", + ), + "utf8", + ); + const matchesTrigger = readFileSync( + join(__dirname, "../../hasura/triggers/matches.sql"), + "utf8", + ); + + it("allows stand-in invites after veto while lineups are still editable", () => { + expect(inviteMetadata).toContain("- WaitingForCheckIn"); + expect(inviteMetadata).toContain("- WaitingForServer"); + expect(inviteMetadata).toContain("- Veto"); + }); + + it("keeps stand-in invites when matches move through post-veto mutable statuses", () => { + expect(matchesTrigger).toContain( + "NEW.status NOT IN ('PickingPlayers', 'WaitingForCheckIn', 'WaitingForServer', 'Veto')", + ); + }); +});