Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>pull/5176/head^2
parent
eae60043bb
commit
4210f35e9c
|
@ -3,6 +3,7 @@ import { expect } from "@playwright/test";
|
||||||
import { test } from "./lib/fixtures";
|
import { test } from "./lib/fixtures";
|
||||||
import {
|
import {
|
||||||
bookFirstEvent,
|
bookFirstEvent,
|
||||||
|
bookOptinEvent,
|
||||||
bookTimeSlot,
|
bookTimeSlot,
|
||||||
selectFirstAvailableTimeSlotNextMonth,
|
selectFirstAvailableTimeSlotNextMonth,
|
||||||
selectSecondAvailableTimeSlotNextMonth,
|
selectSecondAvailableTimeSlotNextMonth,
|
||||||
|
@ -119,4 +120,21 @@ test.describe("pro user", () => {
|
||||||
await page.goto(`/${pro.username}`);
|
await page.goto(`/${pro.username}`);
|
||||||
await bookFirstEvent(page);
|
await bookFirstEvent(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("can book an event that requires confirmation and then that booking can be accepted by organizer", async ({
|
||||||
|
page,
|
||||||
|
users,
|
||||||
|
}) => {
|
||||||
|
await bookOptinEvent(page);
|
||||||
|
const [pro] = users.get();
|
||||||
|
await pro.login();
|
||||||
|
|
||||||
|
await page.goto("/bookings/unconfirmed");
|
||||||
|
await Promise.all([
|
||||||
|
page.click('[data-testid="confirm"]'),
|
||||||
|
page.waitForResponse((response) => response.url().includes("/api/trpc/viewer.bookings.confirm")),
|
||||||
|
]);
|
||||||
|
// This is the only booking in there that needed confirmation and now it should be empty screen
|
||||||
|
await expect(page.locator('[data-testid="empty-screen"]')).toBeVisible();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -105,11 +105,7 @@ export async function selectSecondAvailableTimeSlotNextMonth(page: Page) {
|
||||||
await page.locator('[data-testid="time"]').nth(1).click();
|
await page.locator('[data-testid="time"]').nth(1).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function bookFirstEvent(page: Page) {
|
async function bookEventOnThisPage(page: Page) {
|
||||||
// Click first event type
|
|
||||||
|
|
||||||
await page.click('[data-testid="event-type-link"]');
|
|
||||||
|
|
||||||
await selectFirstAvailableTimeSlotNextMonth(page);
|
await selectFirstAvailableTimeSlotNextMonth(page);
|
||||||
await bookTimeSlot(page);
|
await bookTimeSlot(page);
|
||||||
|
|
||||||
|
@ -122,6 +118,17 @@ export async function bookFirstEvent(page: Page) {
|
||||||
await expect(page.locator("[data-testid=success-page]")).toBeVisible();
|
await expect(page.locator("[data-testid=success-page]")).toBeVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function bookOptinEvent(page: Page) {
|
||||||
|
await page.locator('[data-testid="event-type-link"]:has-text("Opt in")').click();
|
||||||
|
await bookEventOnThisPage(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function bookFirstEvent(page: Page) {
|
||||||
|
// Click first event type
|
||||||
|
await page.click('[data-testid="event-type-link"]');
|
||||||
|
await bookEventOnThisPage(page);
|
||||||
|
}
|
||||||
|
|
||||||
export const bookTimeSlot = async (page: Page) => {
|
export const bookTimeSlot = async (page: Page) => {
|
||||||
// --- fill form
|
// --- fill form
|
||||||
await page.fill('[name="name"]', "Test Testson");
|
await page.fill('[name="name"]', "Test Testson");
|
||||||
|
|
Loading…
Reference in New Issue