import { NZAP_TEST_ID } from "~/db/seed/constants"; import { ADMIN_ID } from "~/features/admin/admin-constants"; import { associationsPage, scrimsPage } from "~/utils/urls"; import { expect, impersonate, isNotVisible, navigate, seed, submit, test, } from "./helpers/playwright"; test.describe("Associations", () => { test("creates a new association", async ({ page }) => { await seed(page); await impersonate(page, NZAP_TEST_ID); await navigate({ page, url: "/", }); await page.getByTestId("anything-adder-menu-button").first().click(); await page.getByTestId("menu-item-association").click(); await page.getByLabel("Name").fill("My Association"); await submit(page); await expect( page.getByRole("heading").filter({ hasText: "My Association" }), ).toBeVisible(); }); test("deletes an association", async ({ page }) => { await seed(page); await impersonate(page, ADMIN_ID); await navigate({ page, url: scrimsPage(), }); await page.getByRole("link", { name: "Associations" }).click(); await expect(page.getByTestId("delete-association")).toHaveCount(2); await page.getByTestId("delete-association").first().click(); await submit(page, "confirm-button"); await expect(page.getByTestId("delete-association")).toHaveCount(1); }); test("joins and leaves an association", async ({ page }) => { await seed(page); await impersonate(page, ADMIN_ID); await navigate({ page, url: associationsPage(), }); const inviteLink = await page .getByLabel("Share link to add members") .first() .inputValue(); await impersonate(page, NZAP_TEST_ID); await navigate({ page, url: inviteLink.replace("https://sendou.ink", "http://localhost:6173"), }); await submit(page); await page.getByTestId("leave-team-button").click(); await submit(page, "confirm-button"); await isNotVisible(page.getByTestId("leave-team-button")); }); });