* check all advanced options in a managed event-type * Delete apps/web/playwright/booking/managedBookingAllQuestion.e2e.ts * Delete apps/web/playwright/managedBooking/allQuestions.e2e.ts * Refactor * Refactor * check all advanced options in a managed event-type * check all advanced options in a managed event-type * Update regularBookings.ts * Update regularBookings.ts --------- Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Keith Williams <keithwillcode@gmail.com>
111 lines
3.3 KiB
TypeScript
111 lines
3.3 KiB
TypeScript
/* eslint-disable playwright/no-conditional-in-test */
|
|
import { loginUser } from "../fixtures/regularBookings";
|
|
import { test } from "../lib/fixtures";
|
|
|
|
test.describe("Booking With All Questions", () => {
|
|
test.beforeEach(async ({ page, users, bookingPage }) => {
|
|
await loginUser(users);
|
|
await page.goto("/event-types");
|
|
await bookingPage.goToEventType("30 min");
|
|
await bookingPage.goToTab("event_advanced_tab_title");
|
|
});
|
|
|
|
const bookingOptions = { isAllRequired: true };
|
|
|
|
test("Selecting and filling all questions as required", async ({ bookingPage }) => {
|
|
const allQuestions = [
|
|
"phone",
|
|
"address",
|
|
"checkbox",
|
|
"boolean",
|
|
"textarea",
|
|
"multiemail",
|
|
"multiselect",
|
|
"number",
|
|
"radio",
|
|
"select",
|
|
"text",
|
|
];
|
|
for (const question of allQuestions) {
|
|
if (
|
|
question !== "number" &&
|
|
question !== "select" &&
|
|
question !== "checkbox" &&
|
|
question !== "boolean" &&
|
|
question !== "multiselect" &&
|
|
question !== "radio"
|
|
) {
|
|
await bookingPage.addQuestion(
|
|
question,
|
|
`${question}-test`,
|
|
`${question} test`,
|
|
true,
|
|
`${question} test`
|
|
);
|
|
} else {
|
|
await bookingPage.addQuestion(question, `${question}-test`, `${question} test`, true);
|
|
}
|
|
await bookingPage.checkField(question);
|
|
}
|
|
|
|
await bookingPage.updateEventType();
|
|
const eventTypePage = await bookingPage.previewEventType();
|
|
await bookingPage.selectTimeSlot(eventTypePage);
|
|
await bookingPage.fillAllQuestions(eventTypePage, allQuestions, bookingOptions);
|
|
await bookingPage.rescheduleBooking(eventTypePage);
|
|
await bookingPage.assertBookingRescheduled(eventTypePage);
|
|
await bookingPage.cancelBooking(eventTypePage);
|
|
await bookingPage.assertBookingCanceled(eventTypePage);
|
|
});
|
|
|
|
test("Selecting and filling all questions as optional", async ({ bookingPage }) => {
|
|
const allQuestions = [
|
|
"phone",
|
|
"address",
|
|
"checkbox",
|
|
"boolean",
|
|
"textarea",
|
|
"multiemail",
|
|
"multiselect",
|
|
"number",
|
|
"radio",
|
|
"select",
|
|
"text",
|
|
];
|
|
for (const question of allQuestions) {
|
|
if (
|
|
question !== "number" &&
|
|
question !== "select" &&
|
|
question !== "checkbox" &&
|
|
question !== "boolean" &&
|
|
question !== "multiselect" &&
|
|
question !== "radio"
|
|
) {
|
|
await bookingPage.addQuestion(
|
|
question,
|
|
`${question}-test`,
|
|
`${question} test`,
|
|
false,
|
|
`${question} test`
|
|
);
|
|
} else {
|
|
await bookingPage.addQuestion(question, `${question}-test`, `${question} test`, false);
|
|
}
|
|
await bookingPage.checkField(question, { isOptional: true });
|
|
}
|
|
|
|
await bookingPage.updateEventType();
|
|
const eventTypePage = await bookingPage.previewEventType();
|
|
await bookingPage.selectTimeSlot(eventTypePage);
|
|
await bookingPage.fillAllQuestions(eventTypePage, allQuestions, {
|
|
...bookingOptions,
|
|
isAllRequired: false,
|
|
});
|
|
|
|
await bookingPage.rescheduleBooking(eventTypePage);
|
|
await bookingPage.assertBookingRescheduled(eventTypePage);
|
|
await bookingPage.cancelBooking(eventTypePage);
|
|
await bookingPage.assertBookingCanceled(eventTypePage);
|
|
});
|
|
});
|