From e14f3b241c54162690a2f3bcc51ba4b2e95fadf8 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 2 Apr 2026 23:04:12 +0200 Subject: [PATCH] Add tests for transient box-create preview state and tool mode clearing --- tests/domain/editor-store.test.ts | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/tests/domain/editor-store.test.ts b/tests/domain/editor-store.test.ts index a0e73c70..a69c5276 100644 --- a/tests/domain/editor-store.test.ts +++ b/tests/domain/editor-store.test.ts @@ -133,4 +133,63 @@ describe("EditorStore", () => { expect(store.getState().viewportPanels.bottomRight.viewMode).toBe("front"); expect(store.getState().viewportPanels.bottomRight.displayMode).toBe("normal"); }); + + it("shares transient box-create preview state across viewport panels", () => { + const store = createEditorStore(); + + expect(store.getState().viewportTransientState.toolPreview).toEqual({ + kind: "none" + }); + + store.setViewportToolPreview({ + kind: "box-create", + sourcePanelId: "topLeft", + center: { + x: 4, + y: 0, + z: 8 + } + }); + + expect(store.getState().viewportTransientState.toolPreview).toEqual({ + kind: "box-create", + sourcePanelId: "topLeft", + center: { + x: 4, + y: 0, + z: 8 + } + }); + + store.clearViewportToolPreview("topRight"); + expect(store.getState().viewportTransientState.toolPreview).toEqual({ + kind: "box-create", + sourcePanelId: "topLeft", + center: { + x: 4, + y: 0, + z: 8 + } + }); + + store.clearViewportToolPreview("topLeft"); + expect(store.getState().viewportTransientState.toolPreview).toEqual({ + kind: "none" + }); + }); + + it("clears transient viewport preview when leaving box-create mode", () => { + const store = createEditorStore(); + + store.setViewportToolPreview({ + kind: "box-create", + sourcePanelId: "bottomRight", + center: null + }); + store.setToolMode("select"); + + expect(store.getState().viewportTransientState.toolPreview).toEqual({ + kind: "none" + }); + }); });