import React from 'react'; import { renderHook } from '@testing-library/react-native'; import { useOverlayCrossfade } from '../../hooks/drag/useOverlayCrossfade'; import { DragStateProvider } from '../../contexts/DragStateContext'; describe('useOverlayCrossfade', () => { const createWrapper = () => { const Wrapper = ({ children }: { children: React.ReactNode }) => ( {children} ); return Wrapper; }; it('should render without crashing', async () => { const { result } = await renderHook(() => useOverlayCrossfade(), { wrapper: createWrapper(), }); // Hook returns void, so just verify it doesn't throw expect(result.current).toBeUndefined(); }); it('should work with custom drag config', async () => { const Wrapper = ({ children }: { children: React.ReactNode }) => ( {children} ); const { result } = await renderHook(() => useOverlayCrossfade(), { wrapper: Wrapper, }); expect(result.current).toBeUndefined(); }); it('should not throw when called multiple times', async () => { const { result, rerender } = await renderHook(() => useOverlayCrossfade(), { wrapper: createWrapper(), }); // Rerender multiple times to verify stability await rerender({}); await rerender({}); expect(result.current).toBeUndefined(); }); it('should handle context unmount gracefully', async () => { const { unmount } = await renderHook(() => useOverlayCrossfade(), { wrapper: createWrapper(), }); // Should not throw on unmount expect(() => unmount()).not.toThrow(); }); });