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();
});
});