From f933b544ff8e5eb7b8cb18736e7bb804b8d355ce Mon Sep 17 00:00:00 2001 From: mptyl Date: Sun, 28 Jun 2026 12:40:09 +0200 Subject: [PATCH] test(frontend): cover ArtifactWidget view-only + multiselect allow_empty gate --- frontend/src/widgets/ArtifactWidget.test.tsx | 21 ++++++++++++++++ .../src/widgets/MultiselectWidget.test.tsx | 24 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 frontend/src/widgets/ArtifactWidget.test.tsx diff --git a/frontend/src/widgets/ArtifactWidget.test.tsx b/frontend/src/widgets/ArtifactWidget.test.tsx new file mode 100644 index 00000000..6a24973c --- /dev/null +++ b/frontend/src/widgets/ArtifactWidget.test.tsx @@ -0,0 +1,21 @@ +import { render, screen } from "@testing-library/react"; +import { ArtifactWidget } from "./ArtifactWidget"; + +test("renders artifact content view-only with no response path", () => { + const onRespond = vi.fn(); + render( + + ); + // (a) content is rendered + expect(screen.getByText("SELECT 1")).toBeInTheDocument(); + // (b) no response path: no responding button, onRespond never called + expect(screen.queryByRole("button")).not.toBeInTheDocument(); + expect(onRespond).not.toHaveBeenCalled(); +}); diff --git a/frontend/src/widgets/MultiselectWidget.test.tsx b/frontend/src/widgets/MultiselectWidget.test.tsx index 4d5881fa..19b47658 100644 --- a/frontend/src/widgets/MultiselectWidget.test.tsx +++ b/frontend/src/widgets/MultiselectWidget.test.tsx @@ -81,6 +81,30 @@ test("confirm is disabled when nothing checked and allow_empty is false", async expect(onRespond).not.toHaveBeenCalled(); }); +test("deselect-all with allow_empty false disables Conferma (empty confirm impossible)", async () => { + const onRespond = vi.fn(); + render( + + ); + const btn = screen.getByRole("button", { name: /conferma/i }); + expect(btn).not.toBeDisabled(); + await userEvent.click(screen.getByRole("button", { name: /deseleziona tutti/i })); + expect(btn).toBeDisabled(); + await userEvent.click(btn); + expect(onRespond).not.toHaveBeenCalled(); +}); + test("confirm is enabled when allow_empty is false but something is checked", async () => { const onRespond = vi.fn(); render(