rallly/apps/web/tests/create-delete-poll.spec.ts
Luke Vella c22b3abc4d
⬆️ v3.0.0 (#704)
2023-06-19 17:17:00 +01:00

46 lines
1.3 KiB
TypeScript

import { expect, Page, test } from "@playwright/test";
import smtpTester, { SmtpTester } from "smtp-tester";
import { NewPollPage } from "tests/new-poll-page";
test.describe.serial(() => {
let page: Page;
let mailServer: SmtpTester;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
mailServer = smtpTester.init(4025);
});
test.afterAll(async () => {
mailServer.stop();
});
test("create a new poll", async () => {
const newPollPage = new NewPollPage(page);
await newPollPage.goto();
await newPollPage.createPollAndCloseDialog();
await expect(page.getByTestId("poll-title")).toHaveText("Monthly Meetup");
const { email } = await mailServer.captureOne("john.doe@example.com", {
wait: 5000,
});
expect(email.headers.subject).toBe("Let's find a date for Monthly Meetup");
});
// delete the poll we just created
test("delete existing poll", async () => {
const manageButton = page.getByText("Manage");
await manageButton.waitFor();
await manageButton.click();
await page.click("text=Delete poll");
const deletePollDialog = page.getByRole("dialog");
deletePollDialog.getByRole("button", { name: "delete" }).click();
await page.waitForURL("/polls");
});
});