import { describe, expect, test } from "bun:test"; import { selectPlugin } from "../plugins/selectionPlugin"; import { filterElements } from "../utils/elementUtils"; import { createPointerEvent, createTestCanvas } from "./canvasTestUtils"; describe("select plugin", () => { test("updates selection on pointer down", () => { const element = { id: "a", rect: { x: 0, y: 0, width: 100, height: 100 } }; const harness = createTestCanvas( (canvas) => canvas.addPlugins(selectPlugin()), { contextProperties: { getElementId: (item: typeof element) => item.id, isSelectable: () => true, filterElements: ({ at, predicate }) => { return filterElements([element], { at, predicate }); }, }, } ); harness.handlers.onPointerDown?.(createPointerEvent({ x: 10, y: 10 })); expect(harness.getData().selectedElementIds).toEqual(["a"]); }); });