import { fireEvent, render } from "@testing-library/react"; import { examples } from "../../lib/examples"; import useNavStore from "../../store/navStore"; import CelexSelector from "./CelexSelector"; describe("CelexSelector", () => { it("renders the dropdown with options", () => { const { getByLabelText, getAllByRole, getByRole } = render( ); expect(getByLabelText("Select example:")).toBeInTheDocument(); expect(getByRole("combobox")).toBeInTheDocument(); const options = getAllByRole("option"); expect(options).toHaveLength(examples.length); for (const i in examples) { expect(options[i]).toHaveValue(examples[i].id); expect(options[i]).toHaveTextContent(examples[i].name); } }); it("calls setCelexId and setArticleId on selection change", async () => { const celexId = examples[2].id; const { getByRole } = render(); fireEvent.change(getByRole("combobox"), { target: { value: celexId }, }); expect(useNavStore.getState().celexId).toEqual(celexId); expect(useNavStore.getState().articleId).toEqual(1); }); });