import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { render, fireEvent } from "@testing-library/react"; import Badge from "../badge"; const variants = [ "primary", "secondary", "success", "danger", "warning", "info", "light", "dark" ] as const; test("shows badge with default parameters", () => { const { queryByTestId } = render(Test); expect(queryByTestId("honeyui-badge-primary")).not.toBeNull(); expect(queryByTestId("honeyui-badge-primary")).toHaveClass("badge"); expect(queryByTestId("honeyui-badge-primary")).toHaveClass("badge-primary"); expect(queryByTestId("honeyui-badge-primary")).toContainHTML("Test"); }); test("shows badge with variants", () => { variants.forEach((variant: typeof variants[number]) => { const v = render(Test); expect(v.queryByTestId(`honeyui-badge-${variant}`)).not.toBeNull(); expect(v.queryByTestId(`honeyui-badge-${variant}`)).toHaveClass(`badge-${variant}`); v.unmount(); }); }); test("shows badge with pill variant", () => { const { queryByTestId } = render( Test ); expect(queryByTestId("honeyui-badge-primary")).toHaveClass("badge-pill"); }); test("shows badge with custom class name", () => { const { queryByTestId } = render( Test ); expect(queryByTestId("honeyui-badge-primary")).toHaveClass("custon-class"); }); test("shows able to clikc on badge", () => { const onClick = jest.fn(); const { queryByTestId } = render( Test ); expect(queryByTestId("honeyui-badge-primary")).toBeTruthy(); fireEvent.click(queryByTestId("honeyui-badge-primary")); expect(onClick).toHaveBeenCalled(); }); test("shows able to keypress on badge", () => { const onKeyPress = jest.fn(); const { queryByTestId } = render( Test ); expect(queryByTestId("honeyui-badge-primary")).toBeTruthy(); fireEvent.keyPress(queryByTestId("honeyui-badge-primary"), { key: "Enter", code: 13, charCode: 13 }); expect(onKeyPress).toHaveBeenCalled(); }); test("badge should be a link if `href` passed", () => { const { queryByTestId } = render( Test ); expect(queryByTestId("honeyui-badge-primary").nodeName).toBe("A"); expect(queryByTestId("honeyui-badge-primary")).toHaveAttribute("href", "customLink"); });