1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-01 00:08:27 +01:00
unleash.unleash/frontend/src/hooks/useOnClickOutside.test.tsx
Nuno Góis 4167a60588
feat: biome lint frontend (#4903)
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome
to the frontend as well.


![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65)

Added a few `biome-ignore` to speed up the process but we may want to
check and fix them in the future.
2023-10-02 13:25:46 +01:00

45 lines
1.3 KiB
TypeScript

import { fireEvent, render, screen } from '@testing-library/react';
import { useRef } from 'react';
import { useOnClickOutside } from './useOnClickOutside';
function TestComponent(props: { outsideClickHandler: () => void }) {
const divRef = useRef(null);
useOnClickOutside([divRef], props.outsideClickHandler);
return (
<div data-testid='wrapper'>
<div data-testid='inside' ref={divRef}>
Inside
</div>
<div data-testid='outside'>Outside</div>
</div>
);
}
test('should not call the callback when clicking inside', () => {
let mockCallbackCallCount = 0;
const mockCallback = () => mockCallbackCallCount++;
render(<TestComponent outsideClickHandler={mockCallback} />);
const insideDiv = screen.getByTestId('inside');
// Simulate a click inside the div
fireEvent.click(insideDiv);
expect(mockCallbackCallCount).toBe(0);
});
test('should call the callback when clicking outside', () => {
let mockCallbackCallCount = 0;
const mockCallback = () => mockCallbackCallCount++;
render(<TestComponent outsideClickHandler={mockCallback} />);
const outsideDiv = screen.getByTestId('outside');
fireEvent.click(outsideDiv);
expect(mockCallbackCallCount).toBe(1);
});