mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-01 08:36:37 -05:00
61 lines
1.9 KiB
TypeScript
61 lines
1.9 KiB
TypeScript
import { addHours } from "date-fns";
|
|
import { NZAP_TEST_ID } from "~/db/seed/constants";
|
|
import { ADMIN_ID } from "~/features/admin/admin-constants";
|
|
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
|
import { expect, impersonate, test } from "./helpers/playwright";
|
|
import { EventsPage } from "./pages/calendar/events-page";
|
|
|
|
const JOINED_TOURNAMENT_NAME = "Joined Tournament";
|
|
const ORGANIZED_TOURNAMENT_NAME = "Organized Tournament";
|
|
|
|
test.describe("Events", () => {
|
|
test("filters between tabs and navigates to an event", async ({
|
|
page,
|
|
factories,
|
|
}) => {
|
|
const startsAt = dateToDatabaseTimestamp(addHours(new Date(), 2));
|
|
|
|
const joinedTournament = await factories.TournamentFactory.create({
|
|
authorId: ADMIN_ID,
|
|
name: JOINED_TOURNAMENT_NAME,
|
|
startTimes: [startsAt],
|
|
});
|
|
await factories.TournamentTeamFactory.create({
|
|
tournamentId: joinedTournament.id,
|
|
memberUserIds: [NZAP_TEST_ID],
|
|
});
|
|
await factories.TournamentFactory.create({
|
|
authorId: NZAP_TEST_ID,
|
|
name: ORGANIZED_TOURNAMENT_NAME,
|
|
startTimes: [startsAt],
|
|
});
|
|
await factories.ScrimPostFactory.create({
|
|
startsAt,
|
|
users: [{ userId: NZAP_TEST_ID, isOwner: 1 }],
|
|
});
|
|
|
|
await impersonate(page, NZAP_TEST_ID);
|
|
|
|
const events = new EventsPage(page);
|
|
await events.goto();
|
|
|
|
await expect(events.locators.title).toBeVisible();
|
|
|
|
// the first non-empty category is shown by default
|
|
await expect(events.eventLink(JOINED_TOURNAMENT_NAME)).toBeVisible();
|
|
|
|
await events.openView("scrims");
|
|
await expect(events.eventLink("Looking for scrim")).toBeVisible();
|
|
|
|
await events.openView("saved");
|
|
await expect(events.locators.emptyCategoryText).toBeVisible();
|
|
|
|
await events.openView("hosting");
|
|
const hostedEvent = events.eventLink(ORGANIZED_TOURNAMENT_NAME);
|
|
await expect(hostedEvent).toBeVisible();
|
|
|
|
await hostedEvent.click();
|
|
await expect(page).not.toHaveURL(/\/events/);
|
|
});
|
|
});
|