From c0ed844ae209db68046f08eeac0eab82ac92a574 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 2 Apr 2026 22:39:59 +0200 Subject: [PATCH] Refactor viewport interaction in e2e tests --- tests/e2e/face-material-authoring.e2e.ts | 9 +++------ tests/e2e/first-room-workflow.e2e.ts | 15 ++++----------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/tests/e2e/face-material-authoring.e2e.ts b/tests/e2e/face-material-authoring.e2e.ts index 044a76f7..e34647bf 100644 --- a/tests/e2e/face-material-authoring.e2e.ts +++ b/tests/e2e/face-material-authoring.e2e.ts @@ -1,5 +1,7 @@ import { expect, test } from "@playwright/test"; +import { clickViewport } from "./viewport-test-helpers"; + test("user can assign a face material through the UI and keep it through a draft reload", async ({ page }) => { const pageErrors: string[] = []; const consoleErrors: string[] = []; @@ -21,12 +23,7 @@ test("user can assign a face material through the UI and keep it through a draft await page.reload(); await page.getByRole("button", { name: "Box Create" }).click(); - const viewportCanvas = page.locator('[data-testid="viewport-shell"] canvas'); - if ((await viewportCanvas.count()) > 0) { - await viewportCanvas.click(); - } else { - await page.getByTestId("viewport-fallback-create-box").click(); - } + await clickViewport(page); await page.getByTestId("face-button-posZ").click(); await page.getByTestId("material-button-starter-amber-grid").click(); diff --git a/tests/e2e/first-room-workflow.e2e.ts b/tests/e2e/first-room-workflow.e2e.ts index 2b5dc270..93525267 100644 --- a/tests/e2e/first-room-workflow.e2e.ts +++ b/tests/e2e/first-room-workflow.e2e.ts @@ -1,5 +1,7 @@ import { expect, test } from "@playwright/test"; +import { clickViewport } from "./viewport-test-helpers"; + test("first-room workflow covers create, texture, save/load, and run", async ({ page }) => { const pageErrors: string[] = []; const consoleErrors: string[] = []; @@ -21,12 +23,7 @@ test("first-room workflow covers create, texture, save/load, and run", async ({ await page.reload(); await page.getByRole("button", { name: "Box Create" }).click(); - const viewportCanvas = page.locator('[data-testid="viewport-shell"] canvas'); - if ((await viewportCanvas.count()) > 0) { - await viewportCanvas.click(); - } else { - await page.getByTestId("viewport-fallback-create-box").click(); - } + await clickViewport(page); await page.getByTestId("face-button-posZ").click(); await page.getByTestId("material-button-starter-amber-grid").click(); @@ -46,11 +43,7 @@ test("first-room workflow covers create, texture, save/load, and run", async ({ await page.getByRole("button", { name: "Save Draft" }).click(); await page.getByRole("button", { name: "Box Create" }).click(); - if ((await viewportCanvas.count()) > 0) { - await viewportCanvas.click(); - } else { - await page.getByTestId("viewport-fallback-create-box").click(); - } + await clickViewport(page); await expect(page.getByRole("button", { name: /Box Brush 2/ })).toBeVisible(); await page.getByRole("button", { name: "Load Draft" }).click();