diff --git a/frontend/src/widgets/FreetextWidget.test.tsx b/frontend/src/widgets/FreetextWidget.test.tsx new file mode 100644 index 00000000..64db4be6 --- /dev/null +++ b/frontend/src/widgets/FreetextWidget.test.tsx @@ -0,0 +1,10 @@ +import { render, screen } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import { FreetextWidget } from "./FreetextWidget"; +test("submits typed text", async () => { + const onRespond = vi.fn(); + render(); + await userEvent.type(screen.getByRole("textbox"), "ciao"); + await userEvent.click(screen.getByRole("button", { name: /invia/i })); + expect(onRespond).toHaveBeenCalledWith({ id: "u1", kind: "freetext", text: "ciao" }); +}); diff --git a/frontend/src/widgets/FreetextWidget.tsx b/frontend/src/widgets/FreetextWidget.tsx new file mode 100644 index 00000000..178c4844 --- /dev/null +++ b/frontend/src/widgets/FreetextWidget.tsx @@ -0,0 +1,12 @@ +import { useState } from "react"; +import type { WidgetProps } from "./types"; +export function FreetextWidget({ descriptor, onRespond }: WidgetProps) { + const [text, setText] = useState(""); + return ( +
+ {descriptor.title &&

{descriptor.title}

} +