mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-06-01 00:13:20 -05:00
69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import {
|
|
expect,
|
|
impersonate,
|
|
navigate,
|
|
seed,
|
|
submit,
|
|
test,
|
|
} from "~/utils/playwright";
|
|
import { tournamentBracketsPage } from "~/utils/urls";
|
|
|
|
const AB_RR_TOURNAMENT_ID = 8;
|
|
const TEAMS_PER_DIVISION = 6;
|
|
|
|
test.describe("Tournament A/B divisions", () => {
|
|
test("assigns 6A/6B, starts bracket, renders 36 matches across 6 rounds and two standings tables", async ({
|
|
page,
|
|
}) => {
|
|
test.slow();
|
|
|
|
await seed(page, "AB_RR");
|
|
await impersonate(page);
|
|
|
|
await navigate({
|
|
page,
|
|
url: `/to/${AB_RR_TOURNAMENT_ID}/seeds`,
|
|
});
|
|
|
|
await page.getByTestId("set-ab-divisions").click();
|
|
|
|
const divisionRadioGroups = page.getByTestId("ab-division-radio-group");
|
|
await expect(divisionRadioGroups).toHaveCount(TEAMS_PER_DIVISION * 2);
|
|
|
|
for (let i = 0; i < TEAMS_PER_DIVISION; i++) {
|
|
await divisionRadioGroups.nth(i).getByText("A", { exact: true }).click();
|
|
}
|
|
for (let i = TEAMS_PER_DIVISION; i < TEAMS_PER_DIVISION * 2; i++) {
|
|
await divisionRadioGroups.nth(i).getByText("B", { exact: true }).click();
|
|
}
|
|
|
|
await submit(page, "set-ab-divisions-submit-button");
|
|
|
|
await navigate({
|
|
page,
|
|
url: tournamentBracketsPage({ tournamentId: AB_RR_TOURNAMENT_ID }),
|
|
});
|
|
|
|
await page.getByTestId("finalize-bracket-button").click();
|
|
await submit(page, "confirm-finalize-bracket-button");
|
|
|
|
await expect(page.getByTestId("brackets-viewer")).toBeVisible();
|
|
|
|
await expect(page.locator("[data-match-id]")).toHaveCount(
|
|
TEAMS_PER_DIVISION * TEAMS_PER_DIVISION,
|
|
);
|
|
|
|
for (
|
|
let roundNumber = 1;
|
|
roundNumber <= TEAMS_PER_DIVISION;
|
|
roundNumber++
|
|
) {
|
|
await expect(
|
|
page.getByText(`Round ${roundNumber}`, { exact: true }).first(),
|
|
).toBeVisible();
|
|
}
|
|
|
|
await expect(page.getByTestId("rr-standings-table")).toHaveCount(2);
|
|
});
|
|
});
|