/** * @file Tests for NodeCanvasContext - validates canvas viewport and transformation utilities */ import { render } from "@testing-library/react"; import { useEffect, type FC } from "react"; import { useNodeCanvas } from "./composed/canvas/viewport/context"; import { NodeCanvasProvider } from "./composed/canvas/viewport/provider"; const Harness: FC = () => { const { state, actions } = useNodeCanvas(); useEffect(() => { actions.panViewport({ x: 5, y: 7 }); actions.zoomViewport(2); actions.setSpacePanning(true); }, [actions]); return (
{`${state.viewport.offset.x},${state.viewport.offset.y}`}
{String(state.viewport.scale)}
{String(state.isSpacePanning)}
); }; describe("NodeCanvasContext", () => { it("pans and zooms viewport; toggles space panning", () => { const { getByTestId } = render( , ); expect(getByTestId("offset").textContent).toBe("5,7"); expect(getByTestId("scale").textContent).toBe("2"); expect(getByTestId("space").textContent).toBe("true"); }); });