import React from 'react'; import { render } from 'lib/testHelpers'; import { screen } from '@testing-library/react'; import SuspenseQueryComponent from 'components/common/SuspenseQueryComponent/SuspenseQueryComponent'; const fallback = 'fallback'; jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), Navigate: () =>
{fallback}
, })); describe('SuspenseQueryComponent', () => { const text = 'text'; it('should render the inner component if no error occurs', () => { render({text}); expect(screen.getByText(text)).toBeInTheDocument(); }); it('should not render the inner component and call navigate', () => { // throwing intentional For error boundaries to work jest.spyOn(console, 'error').mockImplementation(() => undefined); const Component = () => { throw new Error('new Error'); }; render( ); expect(screen.queryByText(text)).not.toBeInTheDocument(); expect(screen.getByText(fallback)).toBeInTheDocument(); jest.clearAllMocks(); }); });