import React from 'react'; import { mount } from 'enzyme'; import { StaticRouter } from 'react-router-dom'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import ClusterContext from 'components/contexts/ClusterContext'; import Details from 'components/Topics/Topic/Details/Details'; import { internalTopicPayload } from 'redux/reducers/topics/__test__/fixtures'; import { Provider } from 'react-redux'; import { store } from 'redux/store'; import { ThemeProvider } from 'styled-components'; import { render } from 'lib/testHelpers'; import { clusterTopicPath } from 'lib/paths'; import theme from 'theme/theme'; describe('Details', () => { const mockDelete = jest.fn(); const mockClusterName = 'local'; const mockClearTopicMessages = jest.fn(); const mockInternalTopicPayload = internalTopicPayload.internal; const setupComponent = (pathname: string) => render(
, { pathname } ); describe('when it has readonly flag', () => { it('does not render the Action button a Topic', () => { const component = mount(
); expect(component.exists('button')).toBeFalsy(); expect(component).toMatchSnapshot(); }); }); it('shows a confirmation popup on deleting topic messages', () => { setupComponent( clusterTopicPath(mockClusterName, internalTopicPayload.name) ); const { getByText } = screen; const clearMessagesButton = getByText(/Clear messages/i); userEvent.click(clearMessagesButton); expect( getByText(/Are you sure want to clear topic messages?/i) ).toBeInTheDocument(); }); });