From 54bd778d9ca20cfe1177e9c87dd4d65f70f07042 Mon Sep 17 00:00:00 2001
From: Denys Malofeiev <77440017+Dekshut@users.noreply.github.com>
Date: Fri, 4 Feb 2022 22:34:34 +0200
Subject: [PATCH] Fixed issue/1465 partially got rid of enzyme in tests (#1489)
* got rid of enzyme in Dropdown tests
* got rid of enzyme in DynamicTextButton tests
* got rid of enzyme in Search tests
* Revert "got rid of enzyme in Search tests"
This reverts commit cd2c5b10ab152c86da81ac58418c72ede13713a6.
* got rid of enzyme in Search tests
* got rid of enzyme in SQLEditor tests
* got rid of enzyme in Connect tests
* got rid of enzyme in Connect/Details tests
* got rid of enzyme in Topics\Topic tests
* got rid of ThemeProvider in render function
* fixed redundant
* used userEvent instead of fireEvent
* fixed snapshot tests
* used screen
* rise testing-library approach
* got rid of snapshot in Search component test
* changed titles of Search component test
* fixed topics details test
---
.../Details/__tests__/Details.spec.tsx | 15 +-
.../Connect/__tests__/Connect.spec.tsx | 61 +-
.../__snapshots__/Connect.spec.tsx.snap | 34 -
.../__test__/ResetOffsets.spec.tsx | 9 +-
.../Topic/Details/__test__/Details.spec.tsx | 56 +-
.../__snapshots__/Details.spec.tsx.snap | 619 ++----------------
.../Dropdown/__tests__/Dropdown.spec.tsx | 50 +-
.../Dropdown/__tests__/DropdownItem.spec.tsx | 17 +-
.../__snapshots__/Dropdown.spec.tsx.snap | 128 ++--
.../__snapshots__/DropdownItem.spec.tsx.snap | 17 +-
.../__tests__/DynamicTextButton.spec.tsx | 19 +-
.../SQLEditor/__tests__/SQLEditor.spec.tsx | 16 +-
.../__snapshots__/SQLEditor.spec.tsx.snap | 401 ++++++++----
.../common/Search/__tests__/Search.spec.tsx | 50 +-
.../__snapshots__/Search.spec.tsx.snap | 23 -
15 files changed, 548 insertions(+), 967 deletions(-)
delete mode 100644 kafka-ui-react-app/src/components/Connect/__tests__/__snapshots__/Connect.spec.tsx.snap
delete mode 100644 kafka-ui-react-app/src/components/common/Search/__tests__/__snapshots__/Search.spec.tsx.snap
diff --git a/kafka-ui-react-app/src/components/Connect/Details/__tests__/Details.spec.tsx b/kafka-ui-react-app/src/components/Connect/Details/__tests__/Details.spec.tsx
index 2a8e8192d3..3e9fa1745b 100644
--- a/kafka-ui-react-app/src/components/Connect/Details/__tests__/Details.spec.tsx
+++ b/kafka-ui-react-app/src/components/Connect/Details/__tests__/Details.spec.tsx
@@ -1,7 +1,10 @@
import React from 'react';
import { create } from 'react-test-renderer';
-import { mount } from 'enzyme';
-import { containerRendersView, TestRouterWrapper } from 'lib/testHelpers';
+import {
+ containerRendersView,
+ TestRouterWrapper,
+ render,
+} from 'lib/testHelpers';
import { clusterConnectConnectorPath } from 'lib/paths';
import DetailsContainer from 'components/Connect/Details/DetailsContainer';
import Details, { DetailsProps } from 'components/Connect/Details/Details';
@@ -79,13 +82,13 @@ describe('Details', () => {
});
it('is empty when no connector', () => {
- const wrapper = mount(setupWrapper({ connector: null }));
- expect(wrapper.html()).toEqual('');
+ const wrapper = render(setupWrapper({ connector: null })).baseElement;
+ expect(wrapper.querySelector('div')).toBeEmptyDOMElement();
});
it('fetches connector on mount', () => {
const fetchConnector = jest.fn();
- mount(setupWrapper({ fetchConnector }));
+ render(setupWrapper({ fetchConnector }));
expect(fetchConnector).toHaveBeenCalledTimes(1);
expect(fetchConnector).toHaveBeenCalledWith(
clusterName,
@@ -96,7 +99,7 @@ describe('Details', () => {
it('fetches tasks on mount', () => {
const fetchTasks = jest.fn();
- mount(setupWrapper({ fetchTasks }));
+ render(setupWrapper({ fetchTasks }));
expect(fetchTasks).toHaveBeenCalledTimes(1);
expect(fetchTasks).toHaveBeenCalledWith(
clusterName,
diff --git a/kafka-ui-react-app/src/components/Connect/__tests__/Connect.spec.tsx b/kafka-ui-react-app/src/components/Connect/__tests__/Connect.spec.tsx
index 62413ad53d..8708a2cea3 100644
--- a/kafka-ui-react-app/src/components/Connect/__tests__/Connect.spec.tsx
+++ b/kafka-ui-react-app/src/components/Connect/__tests__/Connect.spec.tsx
@@ -1,10 +1,63 @@
import React from 'react';
-import { shallow } from 'enzyme';
+import { render } from 'lib/testHelpers';
+import { screen } from '@testing-library/react';
import Connect from 'components/Connect/Connect';
+import { store } from 'redux/store';
+import { Route } from 'react-router-dom';
+import {
+ clusterConnectorsPath,
+ clusterConnectorNewPath,
+ clusterConnectConnectorPath,
+ clusterConnectConnectorEditPath,
+} from 'lib/paths';
+
+jest.mock('components/Connect/New/NewContainer', () => () => (
+
NewContainer
+));
+jest.mock('components/Connect/List/ListContainer', () => () => (
+ ListContainer
+));
+jest.mock('components/Connect/Details/DetailsContainer', () => () => (
+ DetailsContainer
+));
+jest.mock('components/Connect/Edit/EditContainer', () => () => (
+ EditContainer
+));
describe('Connect', () => {
- it('matches snapshot', () => {
- const wrapper = shallow();
- expect(wrapper).toMatchSnapshot();
+ const renderComponent = (pathname: string) =>
+ render(
+
+
+ ,
+ { pathname, store }
+ );
+
+ it('renders ListContainer', () => {
+ renderComponent(clusterConnectorsPath('my-cluster'));
+ expect(screen.getByText('ListContainer')).toBeInTheDocument();
+ });
+
+ it('renders NewContainer', () => {
+ renderComponent(clusterConnectorNewPath('my-cluster'));
+ expect(screen.getByText('NewContainer')).toBeInTheDocument();
+ });
+
+ it('renders DetailsContainer', () => {
+ renderComponent(
+ clusterConnectConnectorPath('my-cluster', 'my-connect', 'my-connector')
+ );
+ expect(screen.getByText('DetailsContainer')).toBeInTheDocument();
+ });
+
+ it('renders EditContainer', () => {
+ renderComponent(
+ clusterConnectConnectorEditPath(
+ 'my-cluster',
+ 'my-connect',
+ 'my-connector'
+ )
+ );
+ expect(screen.getByText('EditContainer')).toBeInTheDocument();
});
});
diff --git a/kafka-ui-react-app/src/components/Connect/__tests__/__snapshots__/Connect.spec.tsx.snap b/kafka-ui-react-app/src/components/Connect/__tests__/__snapshots__/Connect.spec.tsx.snap
deleted file mode 100644
index 60797682f9..0000000000
--- a/kafka-ui-react-app/src/components/Connect/__tests__/__snapshots__/Connect.spec.tsx.snap
+++ /dev/null
@@ -1,34 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Connect matches snapshot 1`] = `
-
-
-
-
-
-
-
-
-`;
diff --git a/kafka-ui-react-app/src/components/ConsumerGroups/Details/ResetOffsets/__test__/ResetOffsets.spec.tsx b/kafka-ui-react-app/src/components/ConsumerGroups/Details/ResetOffsets/__test__/ResetOffsets.spec.tsx
index 9cd0562960..9569c5df50 100644
--- a/kafka-ui-react-app/src/components/ConsumerGroups/Details/ResetOffsets/__test__/ResetOffsets.spec.tsx
+++ b/kafka-ui-react-app/src/components/ConsumerGroups/Details/ResetOffsets/__test__/ResetOffsets.spec.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import fetchMock from 'fetch-mock';
import { Route } from 'react-router';
-import { screen, waitFor, fireEvent } from '@testing-library/react';
+import { screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { render } from 'lib/testHelpers';
import { clusterConsumerGroupResetOffsetsPath } from 'lib/paths';
@@ -122,9 +122,10 @@ describe('ResetOffsets', () => {
}
);
await waitFor(() => {
- fireEvent.change(screen.getAllByLabelText('Partition #0')[1], {
- target: { value: '10' },
- });
+ userEvent.click(screen.getAllByLabelText('Partition #0')[1]);
+ });
+ await waitFor(() => {
+ userEvent.keyboard('10');
});
userEvent.click(screen.getByText('Submit'));
await waitFor(() => resetConsumerGroupOffsetsMockCalled());
diff --git a/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/Details.spec.tsx b/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/Details.spec.tsx
index a175b5c0b3..c01e5ecb86 100644
--- a/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/Details.spec.tsx
+++ b/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/Details.spec.tsx
@@ -1,17 +1,11 @@
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();
@@ -45,36 +39,30 @@ describe('Details', () => {
describe('when it has readonly flag', () => {
it('does not render the Action button a Topic', () => {
- const component = mount(
-
-
-
-
-
-
-
-
-
+ const { baseElement } = render(
+
+
+
);
- expect(component.exists('button')).toBeFalsy();
- expect(component).toMatchSnapshot();
+ expect(screen.queryByText('Produce Message')).not.toBeInTheDocument();
+ expect(baseElement).toMatchSnapshot();
});
});
diff --git a/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/__snapshots__/Details.spec.tsx.snap b/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/__snapshots__/Details.spec.tsx.snap
index 386777843e..08ea5b1dae 100644
--- a/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/__snapshots__/Details.spec.tsx.snap
+++ b/kafka-ui-react-app/src/components/Topics/Topic/Details/__test__/__snapshots__/Details.spec.tsx.snap
@@ -87,584 +87,47 @@ exports[`Details when it has readonly flag does not render the Action button a T
gap: 26px;
}
-
-
-
-
+
+