diff --git a/frontend/src/utils/__tests__/navigation.test.ts b/frontend/src/utils/__tests__/navigation.test.ts index 0f8c08c95f..a3467d4704 100644 --- a/frontend/src/utils/__tests__/navigation.test.ts +++ b/frontend/src/utils/__tests__/navigation.test.ts @@ -20,6 +20,7 @@ describe('navigation utilities', () => { ({ metaKey: false, ctrlKey: false, + button: 0, ...overrides, } as MouseEvent); @@ -50,6 +51,11 @@ describe('navigation utilities', () => { } as Partial); expect(isModifierKeyPressed(event)).toBe(false); }); + + it('returns true when middle mouse button is used', () => { + const event = createMouseEvent({ button: 1 }); + expect(isModifierKeyPressed(event)).toBe(true); + }); }); describe('openInNewTab', () => { @@ -98,6 +104,14 @@ describe('navigation utilities', () => { expect(mockNavigate).not.toHaveBeenCalled(); }); + it('opens new tab when middle mouse button is used', () => { + const event = { metaKey: false, ctrlKey: false, button: 1 } as MouseEvent; + navigateToPage('/services', mockNavigate, event); + + expect(window.open).toHaveBeenCalledWith('/services', '_blank'); + expect(mockNavigate).not.toHaveBeenCalled(); + }); + it('calls navigate callback when no modifier key is pressed', () => { const event = { metaKey: false, ctrlKey: false } as MouseEvent; navigateToPage('/services', mockNavigate, event);