/* eslint-disable @typescript-eslint/no-unused-vars */ import React from "react"; import { act, fireEvent, render, testExamples } from "@test/utils"; import { getOverlayRoot } from "../../_util/get-overlay-root"; import { Dropdown } from "../Dropdown"; // 测试组件代码 Example 快照 testExamples(__dirname); test("dropdown hover", () => { const hoverPopupText = "这是下拉内容"; const hoverTargetText = "鼠标上来"; const { getByText } = render( {hoverPopupText} ); const overlayRoot = getOverlayRoot(); // 鼠标进入前,不应该有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).toBeNull(); act(() => { // 模拟鼠标进入 fireEvent.mouseEnter(getByText(hoverTargetText)); jest.runAllTimers(); }); // 鼠标进入后,有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).not.toBeNull(); expect( overlayRoot .querySelector(".tea-dropdown-box") .textContent.indexOf(hoverPopupText) ).toBe(0); act(() => { // 模拟鼠标离开 fireEvent.mouseOut(getByText(hoverTargetText)); jest.runAllTimers(); }); // 鼠标离开,不应该有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).toBeNull(); }); test("dropdown click", () => { const hoverPopupText = "这是下拉内容"; const hoverTargetText = "鼠标点击"; const { getByText } = render( {hoverPopupText} ); const overlayRoot = getOverlayRoot(); // 鼠标点击前,不应该有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).toBeNull(); act(() => { // 模拟鼠标点击 fireEvent.click(getByText(hoverTargetText)); jest.runAllTimers(); }); // 鼠标点击后,有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).not.toBeNull(); expect( overlayRoot .querySelector(".tea-dropdown-box") .textContent.indexOf(hoverPopupText) ).toBe(0); act(() => { // 再次点击关闭 fireEvent.click(getByText(hoverTargetText)); jest.runAllTimers(); }); // 鼠标离开,不应该有内容 expect(overlayRoot.querySelector(".tea-dropdown-box")).toBeNull(); });