import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { render, fireEvent, queryAllByTestId } from "@testing-library/react"; import Dropdown from "../dropdown"; import DropdownItem from "../dropdown-item"; test("should show dropdown items when dropdown open", () => { const { queryByTestId } = render( Item 1 Item 2 Item 3 ); fireEvent.click(queryByTestId("honeyui-dropdown")); expect(queryByTestId("honeyui-dropdown-dropdown-body")).toHaveClass("show"); expect( queryAllByTestId(queryByTestId("honeyui-dropdown-dropdown-body"), "dropdown-item") ).toHaveLength(3); expect( queryAllByTestId(queryByTestId("honeyui-dropdown-dropdown-body"), "dropdown-item")[0].nodeName ).toBe("A"); }); test("should show active, disabled and regular items", () => { const { queryByTestId } = render( Item 1 Item 2 Item 3 ); fireEvent.click(queryByTestId("honeyui-dropdown")); expect(queryByTestId("honeyui-dropdown-dropdown-body")).toHaveClass("show"); expect(queryByTestId("dropdown-item-1")).toHaveClass("active"); expect(queryByTestId("dropdown-item-2")).toHaveClass("disabled"); expect(queryByTestId("dropdown-item-3")).not.toHaveClass("active"); expect(queryByTestId("dropdown-item-3")).not.toHaveClass("disabled"); }); test("should show dropdown item as button", () => { const { queryByTestId } = render( Item 1 ); fireEvent.click(queryByTestId("honeyui-dropdown")); expect(queryByTestId("honeyui-dropdown-dropdown-body")).toHaveClass("show"); expect(queryByTestId("dropdown-item").nodeName).toBe("BUTTON"); });