From 04e7c062ed5473707faae35201703fab0a9f5121 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 4 Apr 2026 20:18:30 +0200 Subject: [PATCH] Add test for whole-box transforms in Object mode and component modes --- .../transform-foundation.integration.test.tsx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/unit/transform-foundation.integration.test.tsx b/tests/unit/transform-foundation.integration.test.tsx index 66ece9b7..f5fdaafd 100644 --- a/tests/unit/transform-foundation.integration.test.tsx +++ b/tests/unit/transform-foundation.integration.test.tsx @@ -395,6 +395,44 @@ describe("transform foundation integration", () => { }); }); + it("keeps whole-box transforms in Object mode and disables them in component modes", async () => { + const { store, brush } = await renderTransformFixtureApp(); + + await act(async () => { + fireEvent.click(screen.getByRole("button", { name: /^Brush Transform Fixture$/ })); + }); + + expect(screen.getByTestId("transform-translate-button")).not.toBeDisabled(); + + await act(async () => { + fireEvent.click(screen.getByTestId("whitebox-selection-mode-face")); + }); + + expect(store.getState().whiteboxSelectionMode).toBe("face"); + expect(screen.getByTestId("transform-translate-button")).toBeDisabled(); + + act(() => { + store.setSelection({ + kind: "brushFace", + brushId: brush.id, + faceId: "posY" + }); + }); + + expect(screen.getByTestId("transform-translate-button")).toBeDisabled(); + + await act(async () => { + fireEvent.click(screen.getByTestId("whitebox-selection-mode-object")); + }); + + expect(store.getState().whiteboxSelectionMode).toBe("object"); + expect(store.getState().selection).toEqual({ + kind: "brushes", + ids: [brush.id] + }); + expect(screen.getByTestId("transform-translate-button")).not.toBeDisabled(); + }); + it("moves an entity through the shared transform controller", async () => { const { store, playerStart, viewportHost } = await renderTransformFixtureApp();