import { cleanup, render, screen } from "@testing-library/react"; import { afterEach, describe, expect, it } from "vitest"; import { defineToolcraft } from "../../schema/define-toolcraft"; import { ToolcraftApp } from "./toolcraft-app"; afterEach(cleanup); const ProductModelCanvas = () => ; function createModelCanvasSchema() { return defineToolcraft({ canvas: { enabled: true, size: { height: 180, unit: "px", width: 320 } }, panels: { controls: { sections: [{ controls: { model: { assetKind: "model", target: "source.model", type: "fileDrop", }, }, title: "Source", }], title: "Controls", }, }, }); } describe("Toolcraft model presentation composition", () => { it.each([ ["default", undefined], ["explicit runtime", { mode: "runtime" as const }], ])( "keeps the %s renderer mounted when generic media is disabled", (_label, modelPresentation) => { const { container } = render( } modelPresentation={modelPresentation} renderDefaultCanvasMedia={false} schema={createModelCanvasSchema()} />, ); expect(container.querySelector( '[data-canvas-model-prewarm-target="source.model"]', )).not.toBeNull(); expect(screen.getByTestId("product-model-canvas")).toBeTruthy(); }, ); it("suppresses standard layers only for declared custom targets", () => { const schema = defineToolcraft({ canvas: { enabled: true, size: { height: 180, unit: "px", width: 320 } }, panels: { controls: { sections: [{ controls: { environment: { assetKind: "model", target: "source.environment", type: "fileDrop", }, model: { assetKind: "model", target: "source.model", type: "fileDrop", }, }, title: "Source", }], title: "Controls", }, }, }); const { container } = render( } modelPresentation={{ consumers: [{ id: "product-model", sourceTarget: "source.model" }], mode: "custom", }} renderDefaultCanvasMedia={false} schema={schema} />, ); expect(container.querySelector( '[data-canvas-model-prewarm-target="source.model"]', )).toBeNull(); expect(container.querySelector( '[data-canvas-model-prewarm-target="source.environment"]', )).not.toBeNull(); expect(screen.getByTestId("product-model-canvas")).toBeTruthy(); }); });