E2E fixtures (#2747)

This commit is contained in:
Omar López
2022-05-13 21:02:10 -06:00
committed by GitHub
parent 68e275ab07
commit 2bb6f33112
21 changed files with 491 additions and 428 deletions

View File

@@ -1,23 +1,18 @@
import { expect, test } from "@playwright/test";
import { expect } from "@playwright/test";
import { deleteAllBookingsByEmail } from "./lib/teardown";
import { test } from "./lib/fixtures";
import { bookTimeSlot, selectFirstAvailableTimeSlotNextMonth } from "./lib/testUtils";
test.describe.configure({ mode: "parallel" });
test.describe("hash my url", () => {
test.use({ storageState: "playwright/artifacts/proStorageState.json" });
let $url = "";
test.beforeEach(async ({ page }) => {
await deleteAllBookingsByEmail("pro@example.com");
await page.goto("/event-types");
// We wait until loading is finished
await page.waitForSelector('[data-testid="event-types"]');
test.beforeEach(async ({ users }) => {
const user = await users.create();
await user.login();
});
test.afterAll(async () => {
// delete test bookings
await deleteAllBookingsByEmail("pro@example.com");
test.afterEach(async ({ users }) => {
await users.deleteAll();
});
test("generate url hash", async ({ page }) => {
// await page.pause();
await page.goto("/event-types");
@@ -34,22 +29,22 @@ test.describe("hash my url", () => {
!isChecked && (await page.click('//*[@id="hashedLinkCheck"]'));
// we wait for the hashedLink setting to load
await page.waitForSelector('//*[@data-testid="generated-hash-url"]');
$url = await page.locator('//*[@data-testid="generated-hash-url"]').inputValue();
const $url = await page.locator('//*[@data-testid="generated-hash-url"]').inputValue();
// click update
await page.focus('//button[@type="submit"]');
await page.keyboard.press("Enter");
});
test("book using generated url hash", async ({ page }) => {
// To prevent an early 404
await page.waitForTimeout(1000);
// book using generated url hash
await page.goto($url);
await selectFirstAvailableTimeSlotNextMonth(page);
await bookTimeSlot(page);
// Make sure we're navigated to the success page
await expect(page.locator("[data-testid=success-page]")).toBeVisible();
});
test("hash regenerates after successful booking", async ({ page }) => {
// hash regenerates after successful booking
await page.goto("/event-types");
// We wait until loading is finished
await page.waitForSelector('[data-testid="event-types"]');