From 14608e9d779d389de6a68c96fa0dc1e80c543cf2 Mon Sep 17 00:00:00 2001 From: BenHamiltonGit Date: Tue, 26 May 2026 16:22:15 -0500 Subject: [PATCH] fix: Use Canvas YAML copy handler Signed-off-by: BenHamiltonGit --- .../pages/workflowv2/CanvasYamlModal.spec.tsx | 32 +++++++++++++++++++ .../src/pages/workflowv2/CanvasYamlModal.tsx | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 web_src/src/pages/workflowv2/CanvasYamlModal.spec.tsx diff --git a/web_src/src/pages/workflowv2/CanvasYamlModal.spec.tsx b/web_src/src/pages/workflowv2/CanvasYamlModal.spec.tsx new file mode 100644 index 0000000000..c39bdc3297 --- /dev/null +++ b/web_src/src/pages/workflowv2/CanvasYamlModal.spec.tsx @@ -0,0 +1,32 @@ +import { fireEvent, render, screen } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; +import { CanvasYamlModal } from "./CanvasYamlModal"; + +vi.mock("@monaco-editor/react", () => ({ + Editor: ({ value }: { value?: string }) =>
{value}
, +})); + +describe("CanvasYamlModal", () => { + const defaultProps = { + open: true, + onOpenChange: vi.fn(), + yamlText: "name: test-canvas", + filename: "test-canvas.yaml", + }; + + it("uses the provided copy handler for copy feedback and error handling", () => { + const onCopy = vi.fn(); + + render(); + + fireEvent.click(screen.getByRole("button", { name: "Copy" })); + + expect(onCopy).toHaveBeenCalledTimes(1); + }); + + it("hides the copy button when no copy handler is provided", () => { + render(); + + expect(screen.queryByRole("button", { name: "Copy" })).not.toBeInTheDocument(); + }); +}); diff --git a/web_src/src/pages/workflowv2/CanvasYamlModal.tsx b/web_src/src/pages/workflowv2/CanvasYamlModal.tsx index 9c671ef8c7..1eac895ddd 100644 --- a/web_src/src/pages/workflowv2/CanvasYamlModal.tsx +++ b/web_src/src/pages/workflowv2/CanvasYamlModal.tsx @@ -106,7 +106,7 @@ function CopyButton(props: CanvasYamlModalProps) { if (!props.onCopy) return null; return ( -