import { describe, expect, it } from "vitest"; import { TOOLCRAFT_BUILT_IN_CONTROL_TYPES } from "../../contracts/component-contracts"; import type { ToolcraftControlSchema } from "../../schema/types"; import { isControlsPanelRenderableControl } from "../controls-panel/layout/controls-panel-layout"; import { getToolcraftControlRendererKind } from "../controls-panel/renderers/controls-panel-renderer-registry"; import { TOOLCRAFT_CANVAS_HANDLE_LAYER_REGISTRY } from "./canvas-handle-layer-registry"; describe("Toolcraft canvas-handle layer registry", () => { it("owns one layer for every built-in canvas-handle control", () => { const canvasHandleTypes = TOOLCRAFT_BUILT_IN_CONTROL_TYPES.filter( (controlType) => getToolcraftControlRendererKind(controlType) === "canvas-handle", ); expect(Object.keys(TOOLCRAFT_CANVAS_HANDLE_LAYER_REGISTRY).sort()).toEqual( [...canvasHandleTypes].sort(), ); }); it("keeps every canvas-handle renderer out of panel layout", () => { for (const controlType of TOOLCRAFT_BUILT_IN_CONTROL_TYPES) { const control = { target: `test.${controlType}`, type: controlType, } satisfies ToolcraftControlSchema; expect(isControlsPanelRenderableControl(control)).toBe( getToolcraftControlRendererKind(controlType) !== "canvas-handle", ); } }); });