From 9e001c53e8a79f25ea3676107b1fcfdebca8ce91 Mon Sep 17 00:00:00 2001 From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Date: Mon, 14 Nov 2022 09:50:09 +0100 Subject: [PATCH] add tests (#5487) Co-authored-by: CarinaWolli Co-authored-by: alannnc Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/web/public/static/locales/en/common.json | 3 +- .../components/FormInputFields.tsx | 2 +- .../routing-forms/components/SingleForm.tsx | 22 ++++++--- .../playwright/tests/basic.e2e.ts | 45 +++++++++++++++++-- 4 files changed, 62 insertions(+), 10 deletions(-) diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 4dab52cae9..021c6813ca 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1367,5 +1367,6 @@ "test_routing_form": "Test Routing Form", "test_preview": "Test Preview", "route_to": "Route to", - "test_preview_description": "Test your routing form without submitting any data" + "test_preview_description": "Test your routing form without submitting any data", + "test_routing": "Test Routing" } diff --git a/packages/app-store/ee/routing-forms/components/FormInputFields.tsx b/packages/app-store/ee/routing-forms/components/FormInputFields.tsx index 6b3a02e2f0..2089e6f60a 100644 --- a/packages/app-store/ee/routing-forms/components/FormInputFields.tsx +++ b/packages/app-store/ee/routing-forms/components/FormInputFields.tsx @@ -50,7 +50,7 @@ export default function FormInputFields(props: Props) { /* @ts-ignore */ required={!!field.required} listValues={options} - data-testid="field" + data-testid="form-field" setValue={(value) => { setResponse((response) => { response = response || {}; diff --git a/packages/app-store/ee/routing-forms/components/SingleForm.tsx b/packages/app-store/ee/routing-forms/components/SingleForm.tsx index f2184a1af3..c0df90ee79 100644 --- a/packages/app-store/ee/routing-forms/components/SingleForm.tsx +++ b/packages/app-store/ee/routing-forms/components/SingleForm.tsx @@ -283,7 +283,10 @@ function SingleForm({ form, appUrl, Page }: SingleFormComponentProps) { />
-
@@ -326,16 +329,19 @@ function SingleForm({ form, appUrl, Page }: SingleFormComponentProps) {
{RoutingPages.map((page) => { if (page.value === decidedAction.type) { - return <>{page.label}; + return
{page.label}
; } })} :{" "} {decidedAction.type === "customPageMessage" ? ( - {decidedAction.value} + + {decidedAction.value} + ) : decidedAction.type === "externalRedirectUrl" ? ( ) : ( - + {decidedAction.value} @@ -369,7 +379,9 @@ function SingleForm({ form, appUrl, Page }: SingleFormComponentProps) { {t("close")} - +
diff --git a/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts b/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts index e3eb27a5aa..70dbdac4cc 100644 --- a/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts +++ b/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts @@ -283,11 +283,50 @@ test.describe("Routing Forms", () => { expect(firstInputMissingValue).toBe(true); expect(await page.locator('button[type="submit"][disabled]').count()).toBe(0); }); + + test("Test preview should return correct route", async ({ page, users }) => { + const user = await createUserAndLoginAndInstallApp({ users, page }); + const routingForm = user.routingForms[0]; + page.goto(`apps/routing-forms/form-edit/${routingForm.id}`); + await page.click('[data-testid="test-preview"]'); + + // //event redirect + await page.fill('[data-testid="form-field"]', "event-routing"); + await page.click('[data-testid="test-routing"]'); + let routingType = await page.locator('[data-testid="test-routing-result-type"]').innerText(); + let route = await page.locator('[data-testid="test-routing-result"]').innerText(); + await expect(routingType).toBe("Event Redirect"); + await expect(route).toBe("pro/30min"); + + //custom page + await page.fill('[data-testid="form-field"]', "custom-page"); + await page.click('[data-testid="test-routing"]'); + routingType = await page.locator('[data-testid="test-routing-result-type"]').innerText(); + route = await page.locator('[data-testid="test-routing-result"]').innerText(); + await expect(routingType).toBe("Custom Page"); + await expect(route).toBe("Custom Page Result"); + + //external redirect + await page.fill('[data-testid="form-field"]', "external-redirect"); + await page.click('[data-testid="test-routing"]'); + routingType = await page.locator('[data-testid="test-routing-result-type"]').innerText(); + route = await page.locator('[data-testid="test-routing-result"]').innerText(); + await expect(routingType).toBe("External Redirect"); + await expect(route).toBe("https://google.com"); + + //fallback route + await page.fill('[data-testid="form-field"]', "fallback"); + await page.click('[data-testid="test-routing"]'); + routingType = await page.locator('[data-testid="test-routing-result-type"]').innerText(); + route = await page.locator('[data-testid="test-routing-result"]').innerText(); + await expect(routingType).toBe("Custom Page"); + await expect(route).toBe("Fallback Message"); + }); }); }); async function fillSeededForm(page: Page, routingFormId: string) { await gotoRoutingLink(page, routingFormId); - await page.fill('[data-testid="field"]', "event-routing"); + await page.fill('[data-testid="form-field"]', "event-routing"); page.click('button[type="submit"]'); await page.waitForNavigation({ url(url) { @@ -296,7 +335,7 @@ async function fillSeededForm(page: Page, routingFormId: string) { }); await gotoRoutingLink(page, routingFormId); - await page.fill('[data-testid="field"]', "external-redirect"); + await page.fill('[data-testid="form-field"]', "external-redirect"); page.click('button[type="submit"]'); await page.waitForNavigation({ url(url) { @@ -305,7 +344,7 @@ async function fillSeededForm(page: Page, routingFormId: string) { }); await gotoRoutingLink(page, routingFormId); - await page.fill('[data-testid="field"]', "custom-page"); + await page.fill('[data-testid="form-field"]', "custom-page"); await page.click('button[type="submit"]'); await page.isVisible("text=Custom Page Result"); }