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}