From 11ef2c71db2d887cf93a9f8f35c1d3b196dafcdc Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 3 Apr 2026 00:37:31 +0200 Subject: [PATCH] Refactor viewport host mock setup in tests --- tests/unit/viewport-canvas.test.tsx | 57 ++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/tests/unit/viewport-canvas.test.tsx b/tests/unit/viewport-canvas.test.tsx index ce5a8bf5..a1b07331 100644 --- a/tests/unit/viewport-canvas.test.tsx +++ b/tests/unit/viewport-canvas.test.tsx @@ -5,27 +5,48 @@ import { createEmptySceneDocument } from "../../src/document/scene-document"; import { ViewportCanvas } from "../../src/viewport-three/ViewportCanvas"; import type { CreationViewportToolPreview, ViewportToolPreview } from "../../src/viewport-three/viewport-transient-state"; -const viewportHostInstances: MockViewportHost[] = []; +const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { + const viewportHostInstances: Array<{ + mount: ReturnType; + dispose: ReturnType; + updateWorld: ReturnType; + updateAssets: ReturnType; + updateDocument: ReturnType; + setViewMode: ReturnType; + setDisplayMode: ReturnType; + setBrushSelectionChangeHandler: ReturnType; + setCreationPreviewChangeHandler: ReturnType; + setCreationCommitHandler: ReturnType; + setToolMode: ReturnType; + setCreationPreview: ReturnType; + focusSelection: ReturnType; + }> = []; -class MockViewportHost { - mount = vi.fn(); - dispose = vi.fn(); - updateWorld = vi.fn(); - updateAssets = vi.fn(); - updateDocument = vi.fn(); - setViewMode = vi.fn(); - setDisplayMode = vi.fn(); - setBrushSelectionChangeHandler = vi.fn(); - setCreationPreviewChangeHandler = vi.fn(); - setCreationCommitHandler = vi.fn(); - setToolMode = vi.fn(); - setCreationPreview = vi.fn(); - focusSelection = vi.fn(); + class MockViewportHost { + mount = vi.fn(); + dispose = vi.fn(); + updateWorld = vi.fn(); + updateAssets = vi.fn(); + updateDocument = vi.fn(); + setViewMode = vi.fn(); + setDisplayMode = vi.fn(); + setBrushSelectionChangeHandler = vi.fn(); + setCreationPreviewChangeHandler = vi.fn(); + setCreationCommitHandler = vi.fn(); + setToolMode = vi.fn(); + setCreationPreview = vi.fn(); + focusSelection = vi.fn(); - constructor() { - viewportHostInstances.push(this); + constructor() { + viewportHostInstances.push(this); + } } -} + + return { + MockViewportHost, + viewportHostInstances + }; +}); vi.mock("../../src/viewport-three/viewport-host", () => ({ ViewportHost: MockViewportHost