diff --git a/packages/platform/examples/base/src/lib/generateRandomText.ts b/packages/platform/examples/base/src/lib/generateRandomText.ts
new file mode 100644
index 0000000000..9925097ebd
--- /dev/null
+++ b/packages/platform/examples/base/src/lib/generateRandomText.ts
@@ -0,0 +1,21 @@
+import { words as randomWords } from "./words";
+
+export function generateRandomText(): string {
+ const words = randomWords;
+
+ const randomLength = Math.floor(Math.random() * 20) + 5;
+ let result = "";
+
+ for (let i = 0; i < randomLength; i++) {
+ const randomWord = words[Math.floor(Math.random() * words.length)];
+ if (i === 0) {
+ result += randomWord.charAt(0).toUpperCase() + randomWord.slice(1);
+ } else {
+ result += ` ${randomWord}`;
+ }
+ }
+
+ result += ".";
+
+ return result;
+}
diff --git a/packages/platform/examples/base/src/lib/words.ts b/packages/platform/examples/base/src/lib/words.ts
new file mode 100644
index 0000000000..0098267db2
--- /dev/null
+++ b/packages/platform/examples/base/src/lib/words.ts
@@ -0,0 +1,68 @@
+export const words = [
+ "lorem",
+ "ipsum",
+ "dolor",
+ "sit",
+ "amet",
+ "consectetur",
+ "adipiscing",
+ "elit",
+ "sed",
+ "do",
+ "eiusmod",
+ "tempor",
+ "incididunt",
+ "ut",
+ "labore",
+ "et",
+ "dolore",
+ "magna",
+ "aliqua",
+ "ut",
+ "enim",
+ "ad",
+ "minim",
+ "veniam",
+ "quis",
+ "nostrud",
+ "exercitation",
+ "ullamco",
+ "laboris",
+ "nisi",
+ "aliquip",
+ "ex",
+ "ea",
+ "commodo",
+ "consequat",
+ "duis",
+ "aute",
+ "irure",
+ "dolor",
+ "in",
+ "reprehenderit",
+ "voluptate",
+ "velit",
+ "esse",
+ "cillum",
+ "dolore",
+ "eu",
+ "fugiat",
+ "nulla",
+ "pariatur",
+ "excepteur",
+ "sint",
+ "occaecat",
+ "cupidatat",
+ "non",
+ "proident",
+ "sunt",
+ "culpa",
+ "qui",
+ "officia",
+ "deserunt",
+ "mollit",
+ "anim",
+ "id",
+ "est",
+ "laborum",
+];
diff --git a/packages/platform/examples/base/src/pages/event-types.tsx b/packages/platform/examples/base/src/pages/event-types.tsx
index 19954aceda..531db55500 100644
--- a/packages/platform/examples/base/src/pages/event-types.tsx
+++ b/packages/platform/examples/base/src/pages/event-types.tsx
@@ -33,13 +33,13 @@ export default function Bookings(props: { calUsername: string; calEmail: string
const handleSubmit = () => {
eventTypeRef.current?.handleFormSubmit({
onSuccess: () => {
- console.log('Event type updated successfully');
+ console.log("Event type updated successfully");
// Additional success handling logic here
},
onError: (error) => {
- console.error('Error updating event type:', error);
+ console.error("Error updating event type:", error);
// Additional error handling logic here
- }
+ },
});
};
const { isLoading: isLoadingEvents, data: eventTypes, refetch } = useEventTypes(props.calUsername);
@@ -73,13 +73,14 @@ export default function Bookings(props: { calUsername: string; calEmail: string
return (
{
setEventTypeId(event.id);
setIsTeamEvent(false);
}}
className="mx-10 w-[80vw] cursor-pointer rounded-md border-[0.8px] border-black px-10 py-4"
key={event.id}>
-
{formatEventSlug}
+
{event.title}
{`/${event.slug}`}
{event?.lengthInMinutes}
@@ -101,13 +102,14 @@ export default function Bookings(props: { calUsername: string; calEmail: string
return (
{
setEventTypeId(event.id);
setIsTeamEvent(true);
}}
className="mx-10 w-[80vw] cursor-pointer rounded-md border-[0.8px] border-black px-10 py-4"
key={event.id}>
-
{formatEventSlug}
+
{event.title}
{`/${event.slug}`}
{event?.lengthInMinutes}
@@ -117,7 +119,7 @@ export default function Bookings(props: { calUsername: string; calEmail: string
)}
{eventTypeId && (
-
+
-
+
Create Event Type
-
+
Create Team Event Type
{teams?.[0]?.id && (
{
await page.goto("/");
@@ -9,13 +11,55 @@ test("create event type using CreateEventTypeAtom", async ({ page }) => {
await expect(page.locator("body")).toBeVisible();
- await page.fill('[data-testid="event-type-quick-chat"]', "e2e event");
+ await page.fill('[data-testid="event-type-quick-chat"]', "Individual e2e event");
await page.fill('textarea[placeholder="A quick video meeting."]', "This is an e2e test event description");
await page.waitForSelector('button[type="submit"]:has-text("Continue")', { state: "visible" });
await page.click('button[type="submit"]:has-text("Continue")');
- await expect(page.locator('h1:has-text("E2e Event")')).toBeVisible();
- await expect(page.locator('p:has-text("/e2e-event")')).toBeVisible();
+ await expect(page.locator('h1:has-text("Individual e2e event")')).toBeVisible();
+ await expect(page.locator('p:has-text("/individual-e2e-event")')).toBeVisible();
+
+ await page.locator('[data-testid="event-type-card"] h1:has-text("Individual e2e event")').click();
+
+ await expect(page.locator('[data-testid="event-type-settings-atom"]')).toBeVisible();
+
+ await expect(page.locator('[data-testid="vertical-tab-availability"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-availability"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-event_limit_tab_title"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-event_limit_tab_title"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-event_advanced_tab_title"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-event_advanced_tab_title"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-recurring"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-recurring"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-payments"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-payments"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-basics"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-basics"]').click();
+
+ await expect(page.locator('textarea[name="description"]')).toBeVisible();
+ await page.fill('textarea[name="description"]', generateRandomText());
+
+ await page.locator('[data-testid="update-eventtype"]').click();
+
+ await expect(page.locator('h1:has-text("Individual e2e event")')).toBeVisible();
+ await expect(page.locator('p:has-text("/individual-e2e-event")')).toBeVisible();
+
+ await page.locator('[data-testid="event-type-card"] h1:has-text("E2e Event")').click();
+
+ await expect(page.locator('[data-testid="event-type-settings-atom"]')).toBeVisible();
+
+ await page.locator('button[type="button"][tooltip="Delete"]').waitFor({ state: "visible" });
+ await page.locator('button[type="button"][tooltip="Delete"]').click();
+
+ await page.locator('[data-testid="dialog-creation"]').waitFor({ state: "visible" });
+ await page.locator('[data-testid="dialog-confirmation"]').click();
+
+ await expect(page.locator("body")).toBeVisible();
});
diff --git a/packages/platform/examples/base/tests/create-team-event-type-atom/create-team-event-type.e2e.ts b/packages/platform/examples/base/tests/create-team-event-type-atom/create-team-event-type.e2e.ts
new file mode 100644
index 0000000000..85b4bc9cbe
--- /dev/null
+++ b/packages/platform/examples/base/tests/create-team-event-type-atom/create-team-event-type.e2e.ts
@@ -0,0 +1,76 @@
+import { test, expect } from "@playwright/test";
+
+import { generateRandomText } from "../../src/lib/generateRandomText";
+
+test("create team event using CreateTeamEventTypeAtom", async ({ page }) => {
+ await page.goto("/");
+
+ await page.goto("/event-types");
+
+ await expect(page).toHaveURL("/event-types");
+
+ await expect(page.locator("body")).toBeVisible();
+
+ await page.fill(
+ '[data-testid="create-team-event-type-atom"] [data-testid="event-type-quick-chat"]',
+ "Platform team e2e event"
+ );
+
+ await page.waitForSelector(
+ '[data-testid="create-team-event-type-atom"] button[type="submit"]:has-text("Continue")',
+ { state: "visible" }
+ );
+ await page.locator('[data-testid="create-team-event-type-atom"] button[value="COLLECTIVE"]').check();
+
+ await page
+ .locator('[data-testid="create-team-event-type-atom"] button[type="submit"]:has-text("Continue")')
+ .click();
+
+ await expect(page.locator('h1:has-text("Platform team e2e event")')).toBeVisible();
+ await expect(page.locator('p:has-text("/platform-team-e2e-event")')).toBeVisible();
+
+ await page.locator('[data-testid="team-event-type-card"] h1:has-text("Platform team e2e event")').click();
+
+ await expect(page.locator('[data-testid="event-type-settings-atom"]')).toBeVisible();
+
+ await expect(page.locator('[data-testid="vertical-tab-availability"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-availability"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-assignment"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-assignment"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-event_limit_tab_title"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-event_limit_tab_title"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-event_advanced_tab_title"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-event_advanced_tab_title"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-recurring"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-recurring"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-payments"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-payments"]').click();
+
+ await expect(page.locator('[data-testid="vertical-tab-basics"]')).toBeVisible();
+ await page.locator('[data-testid="vertical-tab-basics"]').click();
+
+ await expect(page.locator('textarea[name="description"]')).toBeVisible();
+ await page.fill('textarea[name="description"]', generateRandomText());
+
+ await page.locator('[data-testid="update-eventtype"]').click();
+
+ await expect(page.locator('h1:has-text("Platform team e2e event")')).toBeVisible();
+ await expect(page.locator('p:has-text("/platform-team-e2e-event")')).toBeVisible();
+
+ await page.locator('[data-testid="team-event-type-card"] h1:has-text("Platform team e2e event")').click();
+
+ await expect(page.locator('[data-testid="event-type-settings-atom"]')).toBeVisible();
+
+ await page.locator('button[type="button"][tooltip="Delete"]').waitFor({ state: "visible" });
+ await page.locator('button[type="button"][tooltip="Delete"]').click();
+
+ await page.locator('[data-testid="dialog-creation"]').waitFor({ state: "visible" });
+ await page.locator('[data-testid="dialog-confirmation"]').click();
+
+ await expect(page.locator("body")).toBeVisible();
+});