From f966d1b26830979218ea044032c8a08031b2319e Mon Sep 17 00:00:00 2001 From: cristhianzl Date: Thu, 6 Jun 2024 11:29:28 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20(tests):=20add=20end-to-end=20tests?= =?UTF-8?q?=20for=20general=20bugs=20and=20user=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/end-to-end/generalBugs.spec.ts | 97 +++++++++++++++++++ .../tests/end-to-end/userSettings.spec.ts | 7 +- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/frontend/tests/end-to-end/generalBugs.spec.ts diff --git a/src/frontend/tests/end-to-end/generalBugs.spec.ts b/src/frontend/tests/end-to-end/generalBugs.spec.ts new file mode 100644 index 000000000..97b0ace4a --- /dev/null +++ b/src/frontend/tests/end-to-end/generalBugs.spec.ts @@ -0,0 +1,97 @@ +import { expect, test } from "@playwright/test"; + +test("should interact with api request", async ({ page }) => { + await page.goto("/"); + await page.waitForTimeout(2000); + + let modalCount = 0; + try { + const modalTitleElement = await page?.getByTestId("modal-title"); + if (modalTitleElement) { + modalCount = await modalTitleElement.count(); + } + } catch (error) { + modalCount = 0; + } + + while (modalCount === 0) { + await page.getByText("New Project", { exact: true }).click(); + await page.waitForTimeout(5000); + modalCount = await page.getByTestId("modal-title")?.count(); + } + await page.getByTestId("blank-flow").click(); + await page.waitForTimeout(1000); + await page.getByTestId("extended-disclosure").click(); + await page.getByPlaceholder("Search").click(); + await page.getByPlaceholder("Search").fill("api request"); + + await page.waitForTimeout(1000); + + await page + .getByTestId("dataAPI Request") + .dragTo(page.locator('//*[@id="react-flow-id"]')); + await page.mouse.up(); + await page.mouse.down(); + await page.getByTitle("fit view").click(); + await page.getByTitle("zoom out").click(); + await page.getByTitle("zoom out").click(); + await page.getByTitle("zoom out").click(); +}); + +test("erase button should clear the chat messages", async ({ page }) => { + if (!process.env.CI) { + dotenv.config(); + dotenv.config({ path: path.resolve(__dirname, "../../.env") }); + } + + await page.goto("/"); + + await page.waitForTimeout(1000); + + let modalCount = 0; + try { + const modalTitleElement = await page?.getByTestId("modal-title"); + if (modalTitleElement) { + modalCount = await modalTitleElement.count(); + } + } catch (error) { + modalCount = 0; + } + + while (modalCount === 0) { + await page.getByText("New Project", { exact: true }).click(); + await page.waitForTimeout(5000); + modalCount = await page.getByTestId("modal-title")?.count(); + } + + await page.getByRole("heading", { name: "Basic Prompting" }).click(); + await page.waitForTimeout(1000); + + await page.getByTitle("fit view").click(); + await page.getByTitle("zoom out").click(); + await page.getByTitle("zoom out").click(); + await page.getByTitle("zoom out").click(); + + if (!process.env.OPENAI_API_KEY) { + //You must set the OPENAI_API_KEY on .env file to run this test + expect(false).toBe(true); + } + + await page + .getByTestId("popover-anchor-input-openai_api_key") + .fill(process.env.OPENAI_API_KEY ?? ""); + await page.getByText("Playground", { exact: true }).click(); + await page.getByPlaceholder("Send a message...").fill("Hello, how are you?"); + await page.getByTestId("icon-LucideSend").click(); + let valueUser = await page.getByTestId("sender_name_user").textContent(); + let valueAI = await page.getByTestId("sender_name_ai").textContent(); + + expect(valueUser).toBe("User"); + expect(valueAI).toBe("AI"); + + await page.getByTestId("icon-Eraser").last().click(); + + await page.getByText("Hello, how are you?").isHidden(); + await page.getByText("AI", { exact: true }).last().isHidden(); + await page.getByText("User", { exact: true }).last().isHidden(); +}); diff --git a/src/frontend/tests/end-to-end/userSettings.spec.ts b/src/frontend/tests/end-to-end/userSettings.spec.ts index e0b0c9d32..5b036abaa 100644 --- a/src/frontend/tests/end-to-end/userSettings.spec.ts +++ b/src/frontend/tests/end-to-end/userSettings.spec.ts @@ -87,7 +87,12 @@ test("should see shortcuts", async ({ page }) => { await page.getByText("Delete Component", { exact: true }).isVisible(); await page.getByText("Open Playground", { exact: true }).isVisible(); await page.getByText("Undo", { exact: true }).isVisible(); - await page.getByText("Redo", { exact: true }).isVisible(); + + await page.mouse.wheel(0, 10000); + + await page.getByText("Redo", { exact: true }).last().isVisible(); + + await page.getByText("Reset Columns").last().isVisible(); }); test("should interact with API Keys", async ({ page }) => {