diff --git a/packages/react-aria-components/test/Menu.test.tsx b/packages/react-aria-components/test/Menu.test.tsx
index ef2300d095d..9df37506d4f 100644
--- a/packages/react-aria-components/test/Menu.test.tsx
+++ b/packages/react-aria-components/test/Menu.test.tsx
@@ -304,6 +304,26 @@ describe('Menu', () => {
expect(onHoverEnd).not.toHaveBeenCalled();
});
+ it('should move focus to the menu when the pointer leaves it entirely', async () => {
+ let onAction = jest.fn();
+ let {getByRole, getAllByRole} = renderMenu({onAction});
+ let menu = getByRole('menu');
+ let item = getAllByRole('menuitem')[0];
+
+ await user.hover(item);
+ expect(item).toHaveAttribute('data-focused', 'true');
+ expect(document.activeElement).toBe(item);
+
+ await user.unhover(item);
+ expect(item).not.toHaveAttribute('data-focused');
+ expect(document.activeElement).toBe(menu);
+
+ // Enter shouldn't re-trigger the item that was hovered before the pointer left the menu.
+ fireEvent.keyDown(menu, {key: 'Enter'});
+ fireEvent.keyUp(menu, {key: 'Enter'});
+ expect(onAction).not.toHaveBeenCalled();
+ });
+
it('should support slots', () => {
let {getByRole} = render(