import { useDrag, useDrop } from '../../index'; import { renderHook } from '@testing-library/react-hooks'; const mockDomEvent: any = (content: any) => ({ dataTransfer: { getData: () => JSON.stringify(content), setData: () => {}, }, preventDefault: () => {}, persist: () => {}, }); describe('useDrag & useDrop', () => { test('useDrag&useDrop should be define', () => { expect(useDrag).toBeDefined(); }); test('callback should be called', () => { const startFn = jest.fn(); const endFn = jest.fn(); const { result } = renderHook(() => useDrag({ onDragStart: startFn, onDragEnd: endFn }), ); expect(typeof result.current).toBe('function'); const getProps = result.current(''); getProps.onDragStart(mockDomEvent()); expect(startFn).toBeCalledTimes(1); expect(endFn).toBeCalledTimes(0); getProps.onDragEnd(mockDomEvent()); expect(startFn).toBeCalledTimes(1); expect(endFn).toBeCalledTimes(1); }); });