From 7c95b7e71e95595796d5325659e319887208183a Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 3 Apr 2026 00:27:44 +0200 Subject: [PATCH] Add test for escape key canceling entity creation preview --- tests/e2e/entities-foundation.e2e.ts | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tests/e2e/entities-foundation.e2e.ts b/tests/e2e/entities-foundation.e2e.ts index 7504940a..c14d59bf 100644 --- a/tests/e2e/entities-foundation.e2e.ts +++ b/tests/e2e/entities-foundation.e2e.ts @@ -127,3 +127,58 @@ test("shift+a opens the add menu at the cursor", async ({ page }) => { expect(pageErrors).toEqual([]); expect(consoleErrors).toEqual([]); }); + +test("escape cancels a typed entity creation preview", async ({ page }) => { + const pageErrors: string[] = []; + const consoleErrors: string[] = []; + + page.on("pageerror", (error) => { + pageErrors.push(error.message); + }); + + page.on("console", (message) => { + if (message.type() === "error") { + consoleErrors.push(message.text()); + } + }); + + await page.goto("/"); + await page.evaluate((storageKey) => { + window.localStorage.removeItem(storageKey); + }, "webeditor3d.scene-document-draft"); + await page.reload(); + + await page.getByTestId("outliner-add-button").click(); + await page.getByTestId("add-menu-entities").click(); + await page.getByTestId("add-menu-player-start").click(); + + await expect(await getEditorStoreSnapshot(page)).toMatchObject({ + toolMode: "create", + viewportTransientState: { + toolPreview: { + kind: "create", + sourcePanelId: "topLeft", + target: { + kind: "entity", + entityKind: "playerStart", + audioAssetId: null + }, + center: null + } + } + }); + + await page.keyboard.press("Escape"); + + await expect(await getEditorStoreSnapshot(page)).toMatchObject({ + toolMode: "select", + viewportTransientState: { + toolPreview: { + kind: "none" + } + } + }); + + expect(pageErrors).toEqual([]); + expect(consoleErrors).toEqual([]); +});