import { renderHook, fireEvent, waitFor } from '@testing-library/react';
import { Suspense } from 'react';
import { ClientOptionsContext } from './contexts/client-options';
import { useNavermaps } from './use-navermaps';
const testId = 'test-naver-cilent-id';
const naverMock = { maps: { jsContentLoaded: true } };
describe('useNavermaps()', () => {
test('Suspense client fetching', async () => {
const wrapper = ({ children }: { children: any }) => (
{children}
);
const { result } = renderHook(() => useNavermaps(), { wrapper });
expect(document.head.innerHTML).toMatch(new RegExp(`^. Instead of mock & fetch navermaps cdn client,
// we just fire onload event to await loadNavermapsScript
// @ts-expect-error mocking navermaps client loader
window.naver = naverMock;
fireEvent(
document.getElementsByTagName('script')[0],
new Event('load'),
);
await waitFor(() => expect(result.current).not.toBeNull());
expect(result.current).toBe(naverMock.maps);
});
});