import { describe, expect, it } from "vitest"; import { defineToolcraft } from "../schema/define-toolcraft"; import { createToolcraftState } from "../state/create-template-state"; import { createMemoryToolcraftBinaryAssetRepository } from "./repository/memory-binary-asset-repository"; import { createToolcraftSourceAssetCoordinator } from "./source-asset-coordinator"; describe("source asset presentation feedback", () => { it("publishes and clears feedback through the coordinator boundary", async () => { const state = createToolcraftState(defineToolcraft({ canvas: { enabled: true }, panels: {}, })); const coordinator = createToolcraftSourceAssetCoordinator({ dispatch: () => undefined, getState: () => state, repository: createMemoryToolcraftBinaryAssetRepository(), }); const feedback = { category: "resource-unavailable" as const, code: "model-presentation-unavailable", message: "The model presentation is unavailable.", }; coordinator.reportPresentationFeedback("source.model", feedback); expect(coordinator.getOperation("source.model").presentationFeedback) .toEqual(feedback); coordinator.clearPresentationFeedback("source.model"); expect(coordinator.getOperation("source.model").presentationFeedback) .toBeUndefined(); await coordinator.dispose(); }); });