import React from 'react'; import { render, waitFor } from '@testing-library/react'; import { LoaderFallback } from './loader-fallback'; describe('loader-fallback', () => { it('should render target, when defined', () => { const { getByText } = render( ); // throws if not found, same as expect getByText('test target'); }); it('should render default, when target is undefined', () => { const { getByText } = render( ); // throws if not found, same as expect getByText('Target is undefined'); }); it('should render loader, when target becomes undefined', () => { const { rerender, getByText } = render( ); rerender(); // throws if not found, same as expect getByText('loading...'); }); it('should render DefaultComponent, after timeout, when target becomes undefined', async () => { const { rerender, getByText } = render( ); rerender(); await waitFor(() => getByText('Target is undefined')); }); }); function Component() { return
test target
; } function Default() { return
Target is undefined
; } function Loader() { return
loading...
; }