diff --git a/react-app/src/components/Chip/Chip.test.tsx b/react-app/src/components/Chip/Chip.test.tsx new file mode 100644 index 000000000..0e1a15532 --- /dev/null +++ b/react-app/src/components/Chip/Chip.test.tsx @@ -0,0 +1,42 @@ +import { render } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import { describe, expect, test, vi } from "vitest"; +import { Chip } from "."; + +describe("Chip", () => { + test("onChipClick is called", async () => { + const mockedOnChipClick = vi.fn(); + + const { container } = render(); + + const chipButton = container.getElementsByClassName( + "h-8 py-2 cursor-pointer", + )[0]; + + await userEvent.click(chipButton); + + expect(mockedOnChipClick).toHaveBeenCalled(); + }); + + test("onIconClick is called", async () => { + const mockedOnIconClick = vi.fn(); + + const { getByRole } = render(); + + const chipButton = getByRole("button"); + + await userEvent.click(chipButton); + + expect(mockedOnIconClick).toHaveBeenCalled(); + }); + + test("noIcon or destructive variants do not render an icon", () => { + const { queryByRole, rerender } = render(); + + expect(queryByRole("button")).not.toBeInTheDocument(); + + rerender(); + + expect(queryByRole("button")).not.toBeInTheDocument(); + }); +});