import { describe, expect, it } from "vitest"; import { defineToolcraft } from "./define-toolcraft"; import { getToolcraftArtifactExportActions, isToolcraftArtifactExportActionRole, } from "./artifact-export-actions"; describe("artifact export actions", () => { it("recognizes the closed runtime-owned role set", () => { expect(isToolcraftArtifactExportActionRole("export-image")).toBe(true); expect(isToolcraftArtifactExportActionRole("export-svg")).toBe(true); expect(isToolcraftArtifactExportActionRole("export-video")).toBe(true); expect(isToolcraftArtifactExportActionRole("download-output")).toBe(false); }); it("collects typed export actions only from sticky panelActions", () => { const schema = defineToolcraft({ canvas: { enabled: true }, panels: { controls: { sections: [ { controls: { local: { actions: [{ role: "export-svg", value: "local.svg" }], target: "local.actions", type: "actions", }, output: { actions: [{ role: "export-svg", value: "export.svg" }], target: "output.actions", type: "panelActions", }, }, id: "actions", }, ], title: "Controls", }, }, }); expect(getToolcraftArtifactExportActions(schema).map(({ value }) => value)) .toEqual(["export.svg"]); }); });