diff --git a/test/draft-membership.spec.ts b/test/draft-membership.spec.ts index 7abf3de3..343ab182 100644 --- a/test/draft-membership.spec.ts +++ b/test/draft-membership.spec.ts @@ -15,6 +15,9 @@ describe("draft room membership (SQL-driven)", () => { db = await bootMigratedDb("DraftMembershipTest"); postgres = db.postgres; fx = new Fixtures(postgres, 76561199800000000n); + // The draft_games insert trigger refuses to create a lobby when no server + // region is available. + await fx.region(); }, 600_000); afterAll(async () => { diff --git a/test/draft-order.spec.ts b/test/draft-order.spec.ts index 1ec25b09..2e828615 100644 --- a/test/draft-order.spec.ts +++ b/test/draft-order.spec.ts @@ -9,6 +9,15 @@ describe("draft game pick order (SQL-driven)", () => { beforeAll(async () => { db = await bootMigratedDb("DraftOrderTest"); postgres = db.postgres; + // The draft_games insert trigger refuses to create a lobby when no server + // region is available. + await postgres.query( + "INSERT INTO server_regions (value, is_lan) VALUES ('TestA', false) ON CONFLICT (value) DO NOTHING", + ); + await postgres.query( + `INSERT INTO servers (host, label, rcon_password, port, enabled, region, type, is_dedicated) + VALUES ('127.0.0.1', 'TestA-server', '\\x00'::bytea, 27915, true, 'TestA', 'Ranked', true)`, + ); }, 600_000); afterAll(async () => { diff --git a/test/utils/fixtures.ts b/test/utils/fixtures.ts index 3781d160..4bf157a7 100644 --- a/test/utils/fixtures.ts +++ b/test/utils/fixtures.ts @@ -64,6 +64,21 @@ export class Fixtures { return `${prefix}${this.seq}`; } + // A server region with one enabled server, so has_available_server_region() + // is true — the draft_games / matches triggers refuse to create otherwise. + async region(value = "TestA"): Promise { + await this.postgres.query( + "INSERT INTO server_regions (value, is_lan) VALUES ($1, false) ON CONFLICT (value) DO NOTHING", + [value], + ); + await this.postgres.query( + `INSERT INTO servers (host, label, rcon_password, port, enabled, region, type, is_dedicated) + VALUES ('127.0.0.1', $1, '\\x00'::bytea, 27915, true, $2, 'Ranked', true)`, + [`${value}-server`, value], + ); + return value; + } + async player(name?: string): Promise { const steam = this.nextSteam(); await this.postgres.query(