import * as React from 'react'; import { IntlProvider } from 'react-intl'; import { render, fireEvent } from '@testing-library/react'; import contentInsightsMessages from '../../../features/content-insights/messages'; // @ts-ignore Module is written in Flow import localize from '../../../../test/support/i18n'; // @ts-ignore Module is written in Flow import messages from '../../common/messages'; import SidebarContentInsights from '../SidebarContentInsights'; jest.unmock('react-intl'); describe('elements/content-sidebar/SidebarContentInsights', () => { const getWrapper = (props = {}) => render( , { wrapper: ({ children }: { children?: React.ReactNode }) => ( {children} ), }, ); describe('render()', () => { test('should render correctly', () => { const wrapper = getWrapper(); expect(wrapper.getByText(localize(messages.sidebarContentInsights.id))).toBeVisible(); expect(wrapper.queryByTestId('ContentAnalyticsErrorState-image')).toBe(null); }); test('should call click handler when ContentInsightsSummary button is clicked', () => { const onContentInsightsClick = jest.fn(); const wrapper = getWrapper({ contentInsights: { graphData: [], isLoading: false, previousPeriodCount: 0, totalCount: 0 }, onContentInsightsClick, }); fireEvent.click(wrapper.getByText(localize(contentInsightsMessages.openContentInsightsButton.id))); expect(onContentInsightsClick).toBeCalledTimes(1); }); test('should render error state', () => { const contentInsights = { error: new Error() }; const wrapper = getWrapper({ contentInsights }); expect(wrapper.getByTestId('ContentAnalyticsErrorState-image')).toBeVisible(); }); }); });