Update viewport-quad-layout.e2e.ts to use new preview function and match object

This commit is contained in:
2026-04-03 00:25:08 +02:00
parent 46984c8998
commit 696d0a3fbe

View File

@@ -1,6 +1,6 @@
import { expect, test } from "@playwright/test"; import { expect, test } from "@playwright/test";
import { clickViewport, getViewportPanel, setSharedBoxCreatePreview } from "./viewport-test-helpers"; import { clickViewport, getEditorStoreSnapshot, getViewportPanel, setSharedBoxCreationPreview } from "./viewport-test-helpers";
test("quad viewport layout shows four linked panels with shared selection and active panel state", async ({ page }) => { test("quad viewport layout shows four linked panels with shared selection and active panel state", async ({ page }) => {
const pageErrors: string[] = []; const pageErrors: string[] = [];
@@ -49,42 +49,45 @@ test("quad viewport layout shows four linked panels with shared selection and ac
await expect(getViewportPanel(page, panelId).locator(".viewport-canvas__overlay-text")).toHaveCount(0); await expect(getViewportPanel(page, panelId).locator(".viewport-canvas__overlay-text")).toHaveCount(0);
} }
await setSharedBoxCreatePreview(page, "topLeft", { x: 4, y: 0, z: 8 }); await setSharedBoxCreationPreview(page, "topLeft", { x: 4, y: 0, z: 8 });
await expect await expect(await getEditorStoreSnapshot(page)).toMatchObject({
.poll(async () => viewportTransientState: {
page.evaluate(() => { toolPreview: {
const store = (window as Window & { kind: "create",
__webeditor3dEditorStore?: { sourcePanelId: "topLeft",
getState(): { target: {
viewportTransientState: { kind: "box-brush"
toolPreview: unknown; },
}; center: {
}; x: 4,
}; y: 0,
}).__webeditor3dEditorStore; z: 8
if (store === undefined) {
throw new Error("Editor store debug hook is unavailable.");
} }
return store.getState().viewportTransientState.toolPreview;
})
)
.toMatchObject({
kind: "box-create",
sourcePanelId: "topLeft",
center: {
x: 4,
y: 0,
z: 8
} }
}); }
});
await getViewportPanel(page, "topRight").click({ position: { x: 16, y: 16 }, force: true }); await getViewportPanel(page, "topRight").click({ position: { x: 16, y: 16 }, force: true });
await page.getByTestId("viewport-panel-topRight-view-side").dispatchEvent("click"); await page.getByTestId("viewport-panel-topRight-view-side").dispatchEvent("click");
await expect(getViewportPanel(page, "topRight")).toHaveAttribute("data-active", "true"); await expect(getViewportPanel(page, "topRight")).toHaveAttribute("data-active", "true");
await expect(page.getByTestId("viewport-panel-topRight-view-side")).toHaveAttribute("aria-pressed", "true"); await expect(page.getByTestId("viewport-panel-topRight-view-side")).toHaveAttribute("aria-pressed", "true");
await expect(page.getByRole("button", { name: /Box Brush 1/ })).toBeVisible(); await expect(page.getByRole("button", { name: /Box Brush 1/ })).toBeVisible();
await expect(await getEditorStoreSnapshot(page)).toMatchObject({
viewportTransientState: {
toolPreview: {
kind: "create",
sourcePanelId: "topLeft",
target: {
kind: "box-brush"
},
center: {
x: 4,
y: 0,
z: 8
}
}
}
});
await getViewportPanel(page, "topLeft").click({ position: { x: 16, y: 16 }, force: true }); await getViewportPanel(page, "topLeft").click({ position: { x: 16, y: 16 }, force: true });
await page.getByTestId("viewport-panel-topLeft-display-authoring").dispatchEvent("click"); await page.getByTestId("viewport-panel-topLeft-display-authoring").dispatchEvent("click");
@@ -92,6 +95,22 @@ test("quad viewport layout shows four linked panels with shared selection and ac
await expect(page.getByTestId("viewport-panel-topLeft-display-authoring")).toHaveAttribute("aria-pressed", "true"); await expect(page.getByTestId("viewport-panel-topLeft-display-authoring")).toHaveAttribute("aria-pressed", "true");
await expect(page.getByTestId("viewport-canvas-topLeft")).toHaveCSS("background-color", "rgb(0, 0, 0)"); await expect(page.getByTestId("viewport-canvas-topLeft")).toHaveCSS("background-color", "rgb(0, 0, 0)");
await expect(page.getByText("1 brush selected (Box Brush 1)")).toBeVisible(); await expect(page.getByText("1 brush selected (Box Brush 1)")).toBeVisible();
await expect(await getEditorStoreSnapshot(page)).toMatchObject({
viewportTransientState: {
toolPreview: {
kind: "create",
sourcePanelId: "topLeft",
target: {
kind: "box-brush"
},
center: {
x: 4,
y: 0,
z: 8
}
}
}
});
expect(pageErrors).toEqual([]); expect(pageErrors).toEqual([]);
expect(consoleErrors).toEqual([]); expect(consoleErrors).toEqual([]);