Compare commits
33 Commits
main
...
testE2E-ti
Author | SHA1 | Date | |
---|---|---|---|
|
377ccaa7e5 | ||
|
054115e37e | ||
|
612ef2678c | ||
|
858678b9ae | ||
|
f03743eee4 | ||
|
0ad9e3fabb | ||
|
50e60ea670 | ||
|
dc663b0eac | ||
|
6430ee40e5 | ||
|
de2d40b129 | ||
|
0752d9d264 | ||
|
457dfa645d | ||
|
7288366b7d | ||
|
3c64bc3500 | ||
|
cb5a56a840 | ||
|
5d48e4a2ca | ||
|
6d05adc324 | ||
|
ff84d4ae9a | ||
|
4c9461937b | ||
|
d7a90ba64b | ||
|
73728d2fe7 | ||
|
55a8d345e8 | ||
|
c332f0bbcb | ||
|
51165289fa | ||
|
50773e7602 | ||
|
42ffaaedb1 | ||
|
41b4c48921 | ||
|
bd57353dd6 | ||
|
e8214b6e92 | ||
|
bca1fffd23 | ||
|
9a711cb7e9 | ||
|
cb55ce6cc6 | ||
|
1965f24241 |
|
@ -0,0 +1,41 @@
|
|||
import { login } from "../fixtures/users";
|
||||
import { test } from "../lib/fixtures";
|
||||
import { localize } from "../lib/testUtils";
|
||||
|
||||
test.describe("Test the timezone behavior in specific cases", () => {
|
||||
test("Change timezone in booking page", async ({ page, bookingPage }) => {
|
||||
const backToBookingsText = (await localize("en"))("back_to_bookings");
|
||||
|
||||
await login({ username: "pro", email: "pro@example.com", password: "pro" }, page);
|
||||
await page.goto("/event-types");
|
||||
await bookingPage.checkUpdateTimezone();
|
||||
await page.goto("/event-types");
|
||||
|
||||
// Create a new event type
|
||||
await bookingPage.createRegularEventType("15 min test timezone");
|
||||
|
||||
// Schedule a booking changing the timezone to America/New_York
|
||||
const bookingSchedulingPage = await bookingPage.previewEventType();
|
||||
await bookingPage.selectTimezone("America/New York", bookingSchedulingPage);
|
||||
await bookingPage.assertRightTimezone("America/New York", bookingSchedulingPage);
|
||||
await bookingPage.selectTimeSlot(bookingSchedulingPage);
|
||||
|
||||
// Check if the correct timezone is displayed and if the meeting was scheduled successfully
|
||||
await bookingPage.assertRightTimezone("America/New York", bookingSchedulingPage, {
|
||||
inConfirmationPage: true,
|
||||
shouldConfirmBooking: true,
|
||||
});
|
||||
await bookingPage.goToPage(backToBookingsText, bookingSchedulingPage);
|
||||
|
||||
// Check if the icon globe is displayed in the bookings page and if the correct timezone is displayed when we click on it
|
||||
await bookingPage.assertCorrectTimezoneInGlobeButton("America/New York", bookingSchedulingPage);
|
||||
|
||||
// Cancel the meeting in upcoming bookings page
|
||||
await bookingPage.cancelUpcomingBooking("15 min test timezone", bookingSchedulingPage);
|
||||
await bookingPage.assertBookingCanceled(bookingSchedulingPage);
|
||||
|
||||
// Delete the event-type
|
||||
await bookingPage.goToEventTypePage(bookingSchedulingPage);
|
||||
await bookingPage.deleteEventType("15 min test timezone", bookingSchedulingPage);
|
||||
});
|
||||
});
|
|
@ -192,8 +192,14 @@ const goToNextMonthIfNoAvailabilities = async (eventTypePage: Page) => {
|
|||
|
||||
export function createBookingPageFixture(page: Page) {
|
||||
return {
|
||||
goToEventTypePage: async (page: Page) => {
|
||||
page.goto("/event-types");
|
||||
},
|
||||
goToEventType: async (eventType: string) => {
|
||||
await page.getByRole("link", { name: eventType }).click();
|
||||
await page.getByRole("link", { name: eventType }).first().click();
|
||||
},
|
||||
goToPage: async (pageName: string, page: Page) => {
|
||||
await page.getByRole("link", { name: pageName }).click();
|
||||
},
|
||||
goToTab: async (tabName: string) => {
|
||||
await page.getByTestId(`vertical-tab-${tabName}`).click();
|
||||
|
@ -253,7 +259,6 @@ export function createBookingPageFixture(page: Page) {
|
|||
clickReschedule: async () => {
|
||||
await page.getByText("Reschedule").click();
|
||||
},
|
||||
|
||||
selectFirstAvailableTime: async () => {
|
||||
await page.getByTestId("time").first().click();
|
||||
},
|
||||
|
@ -387,5 +392,80 @@ export function createBookingPageFixture(page: Page) {
|
|||
await scheduleSuccessfullyPage.waitFor({ state: "visible" });
|
||||
await expect(scheduleSuccessfullyPage).toBeVisible();
|
||||
},
|
||||
selectTimezoneInSettings: async (name: string, settingsPage: Page) => {
|
||||
await settingsPage.locator("#timezone svg").click();
|
||||
name.includes(" ") && (name = name.replace(" ", "_"));
|
||||
await settingsPage.getByTestId(`select-option-${name}`).click();
|
||||
await settingsPage.getByRole("button", { name: "Update" }).click();
|
||||
await settingsPage.getByRole("button", { name: "Don't update" }).click();
|
||||
},
|
||||
assertRightTimezone: async (
|
||||
timezone: string,
|
||||
bookingSchedulingPage: Page,
|
||||
options?: { inConfirmationPage: boolean; shouldConfirmBooking?: boolean }
|
||||
) => {
|
||||
if (options?.inConfirmationPage) {
|
||||
await expect(bookingSchedulingPage.getByText("America/New_York")).toBeVisible();
|
||||
if (options.shouldConfirmBooking) {
|
||||
await bookingSchedulingPage.getByTestId("confirm-book-button").click();
|
||||
await expect(bookingSchedulingPage.getByTestId("cancel")).toBeVisible();
|
||||
}
|
||||
} else {
|
||||
await expect(
|
||||
bookingSchedulingPage
|
||||
.locator("div")
|
||||
.filter({ hasText: `${timezone}` })
|
||||
.nth(1)
|
||||
).toBeVisible();
|
||||
}
|
||||
},
|
||||
checkUpdateTimezone: async () => {
|
||||
if (await page.getByRole("button", { name: "Update timezone" }).isVisible()) {
|
||||
page.getByRole("button", { name: "Update timezone" }).click();
|
||||
}
|
||||
},
|
||||
createRegularEventType: async (name: string) => {
|
||||
await page.getByTestId("new-event-type").click();
|
||||
await page.getByPlaceholder("Quick Chat").click();
|
||||
await page.getByPlaceholder("Quick Chat").fill(`${name}`);
|
||||
await page.getByRole("button", { name: "Continue" }).dblclick();
|
||||
await page.getByTestId("update-eventtype").click();
|
||||
},
|
||||
selectTimezone: async (timezone: string, bookingSchedulingPage: Page) => {
|
||||
await bookingSchedulingPage.locator("span").filter({ hasText: "/" }).locator("svg").first().click();
|
||||
timezone.includes(" ") && (timezone = timezone.replace(" ", "_"));
|
||||
await bookingSchedulingPage.getByTestId(`select-option-${timezone}`).click();
|
||||
},
|
||||
assertCorrectTimezoneInGlobeButton: async (timezone: string, page?: Page) => {
|
||||
await page?.getByRole("link", { name: "m - " }).first().hover();
|
||||
await page?.getByRole("link", { name: "m - " }).first().getByRole("button").click();
|
||||
timezone.includes(" ") && (timezone = timezone.replace(" ", "_"));
|
||||
page !== undefined && (await expect(page?.getByText("timezone").first()).toBeVisible());
|
||||
},
|
||||
deleteEventType: async (bookingName: string, page?: Page) => {
|
||||
await page
|
||||
?.getByRole("link", { name: `${bookingName}` })
|
||||
.first()
|
||||
.click();
|
||||
await page
|
||||
?.locator("header")
|
||||
.filter({ hasText: `${bookingName}Save` })
|
||||
.getByRole("button")
|
||||
.nth(2)
|
||||
.click();
|
||||
await page?.getByRole("button", { name: "Yes, delete" }).click();
|
||||
page !== undefined && (await expect(page?.getByTestId("toast-success")).toBeVisible());
|
||||
},
|
||||
cancelUpcomingBooking: async (bookingName: string, page?: Page) => {
|
||||
await page?.getByRole("link", { name: "Bookings" }).click();
|
||||
await page
|
||||
?.getByRole("row", {
|
||||
name: ` ${bookingName} between Pro Example and Pro Example You and Pro Example Cancel Edit`,
|
||||
})
|
||||
.getByTestId("cancel")
|
||||
.first()
|
||||
.click();
|
||||
await page?.getByTestId("confirm_cancel").click();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user