diff --git a/superset-frontend/src/dashboard/components/menu/HoverMenu.test.tsx b/superset-frontend/src/dashboard/components/menu/HoverMenu.test.tsx index adf34938f55cd..5b7a64e64f8da 100644 --- a/superset-frontend/src/dashboard/components/menu/HoverMenu.test.tsx +++ b/superset-frontend/src/dashboard/components/menu/HoverMenu.test.tsx @@ -17,7 +17,8 @@ * under the License. */ import React from 'react'; -import { render } from 'spec/helpers/testing-library'; +import { render, screen } from 'spec/helpers/testing-library'; +import userEvent from '@testing-library/user-event'; import HoverMenu from 'src/dashboard/components/menu/HoverMenu'; @@ -25,3 +26,16 @@ test('should render a div.hover-menu', () => { const { container } = render(); expect(container.querySelector('.hover-menu')).toBeInTheDocument(); }); + +test('should call onHover when mouse enters and leaves', () => { + const onHover = jest.fn(); + render(); + + const hoverMenu = screen.getByTestId('hover-menu'); + + userEvent.hover(hoverMenu); + expect(onHover).toBeCalledWith({ isHovered: true }); + + userEvent.unhover(hoverMenu); + expect(onHover).toBeCalledWith({ isHovered: false }); +}); diff --git a/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx b/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx index 59c77bee282b6..43d7683ce370e 100644 --- a/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx +++ b/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx @@ -99,6 +99,7 @@ export default class HoverMenu extends React.PureComponent { )} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} + data-test="hover-menu" > {children}