0 ? '{…}' : '{}';
+ // eslint-disable-next-line @typescript-eslint/ban-types
+ return Object.keys(val as {}).length > 0 ? '{…}' : '{}';
} else if (typeof val === 'function') {
return 'fn';
} else if (typeof val === 'string') {
@@ -42,7 +43,8 @@ function getText(
isDiff: boolean | undefined
) {
if (type === 'Object') {
- const keys = Object.keys(data);
+ // eslint-disable-next-line @typescript-eslint/ban-types
+ const keys = Object.keys(data as {});
if (!isWideLayout) return keys.length ? '{…}' : '{}';
const str = keys
diff --git a/packages/redux-devtools-instrument/package.json b/packages/redux-devtools-instrument/package.json
index f959c096..9b491a33 100644
--- a/packages/redux-devtools-instrument/package.json
+++ b/packages/redux-devtools-instrument/package.json
@@ -47,9 +47,9 @@
"@babel/preset-typescript": "^7.15.0",
"@types/jest": "^27.0.2",
"@types/lodash": "^4.14.176",
- "@types/node": "^14.17.27",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@types/node": "^14.17.29",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-jest": "^25.2.2",
diff --git a/packages/redux-devtools-log-monitor/package.json b/packages/redux-devtools-log-monitor/package.json
index 1a549f25..8f0b7b01 100644
--- a/packages/redux-devtools-log-monitor/package.json
+++ b/packages/redux-devtools-log-monitor/package.json
@@ -53,13 +53,13 @@
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"@redux-devtools/core": "^3.9.0",
- "@types/react": "^16.14.18",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@types/react": "^17.0.32",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-react": "^7.26.1",
- "react": "^16.14.0",
+ "react": "^17.0.2",
"redux": "^4.1.1",
"rimraf": "^3.0.2",
"typescript": "~4.4.4"
diff --git a/packages/redux-devtools-log-monitor/src/LogMonitorEntry.tsx b/packages/redux-devtools-log-monitor/src/LogMonitorEntry.tsx
index 1d1f4b6e..7fad67ca 100644
--- a/packages/redux-devtools-log-monitor/src/LogMonitorEntry.tsx
+++ b/packages/redux-devtools-log-monitor/src/LogMonitorEntry.tsx
@@ -85,7 +85,11 @@ export default class LogMonitorEntry<
) => ({
style: {
...style,
- backgroundColor: dataIsEqual(data, previousData, keyPath)
+ backgroundColor: dataIsEqual(
+ data,
+ previousData,
+ keyPath as (string | number)[]
+ )
? 'transparent'
: this.props.theme.base01,
},
@@ -93,7 +97,7 @@ export default class LogMonitorEntry<
const getNestedNodeStyle: StylingValue = ({ style }, keyPath) => ({
style: {
...style,
- ...(keyPath.length > 1 ? {} : styles.root),
+ ...((keyPath as unknown[]).length > 1 ? {} : styles.root),
},
});
theme = {
diff --git a/packages/redux-devtools-rtk-query-monitor/demo/package.json b/packages/redux-devtools-rtk-query-monitor/demo/package.json
index 2ca30310..17de9460 100644
--- a/packages/redux-devtools-rtk-query-monitor/demo/package.json
+++ b/packages/redux-devtools-rtk-query-monitor/demo/package.json
@@ -14,15 +14,15 @@
"@chakra-ui/react": "^1.6.10",
"@emotion/react": "^11.5.0",
"@emotion/styled": "^11.3.0",
- "@mswjs/data": "^0.6.0",
+ "@mswjs/data": "^0.7.0",
"@redux-devtools/core": "^3.9.0",
"@redux-devtools/dock-monitor": "^1.4.0",
"@redux-devtools/rtk-query-monitor": "^1.0.0",
"@reduxjs/toolkit": "^1.6.2",
"framer-motion": "^4.1.17",
"msw": "^0.35.0",
- "react": "^16.14.0",
- "react-dom": "^16.14.0",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
"react-icons": "^4.3.1",
"react-redux": "^7.2.5",
"react-router-dom": "^5.3.0"
@@ -34,15 +34,15 @@
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"@types/copy-webpack-plugin": "^8.0.1",
- "@types/node": "^14.17.27",
- "@types/react": "^16.14.18",
- "@types/react-dom": "^16.9.14",
+ "@types/node": "^14.17.29",
+ "@types/react": "^17.0.32",
+ "@types/react-dom": "^17.0.10",
"@types/react-redux": "^7.1.20",
"@types/react-router-dom": "^5.3.1",
"@types/webpack": "^5.28.0",
"@types/webpack-dev-server": "^4.3.1",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"babel-loader": "^8.2.3",
"copy-webpack-plugin": "^9.0.1",
"css-loader": "^6.4.0",
@@ -51,8 +51,8 @@
"eslint-plugin-react": "^7.26.1",
"fork-ts-checker-webpack-plugin": "^6.4.0",
"html-webpack-plugin": "^5.4.0",
- "style-loader": "^3.3.0",
- "ts-node": "^10.3.0",
+ "style-loader": "^3.3.1",
+ "ts-node": "^10.4.0",
"typescript": "~4.4.4",
"webpack": "^5.59.1",
"webpack-cli": "^4.9.1",
diff --git a/packages/redux-devtools-rtk-query-monitor/demo/src/features/posts/PostDetail.tsx b/packages/redux-devtools-rtk-query-monitor/demo/src/features/posts/PostDetail.tsx
index f3b0fd58..35ed2ced 100644
--- a/packages/redux-devtools-rtk-query-monitor/demo/src/features/posts/PostDetail.tsx
+++ b/packages/redux-devtools-rtk-query-monitor/demo/src/features/posts/PostDetail.tsx
@@ -72,7 +72,7 @@ const PostJsonDetail = ({ id }: { id: string }) => {
};
export const PostDetail = () => {
- const { id } = useParams<{ id: any }>();
+ const { id } = useParams<{ id: string }>();
const history = useHistory();
const toast = useToast();
diff --git a/packages/redux-devtools-rtk-query-monitor/demo/src/services/posts.ts b/packages/redux-devtools-rtk-query-monitor/demo/src/services/posts.ts
index 2e099065..4f83e232 100644
--- a/packages/redux-devtools-rtk-query-monitor/demo/src/services/posts.ts
+++ b/packages/redux-devtools-rtk-query-monitor/demo/src/services/posts.ts
@@ -42,7 +42,7 @@ export const postsApi = createApi({
}),
invalidatesTags: (result, error, { id }) => [{ type: 'Post', id }],
}),
- deletePost: build.mutation<{ success: boolean; id: number }, number>({
+ deletePost: build.mutation<{ success: boolean; id: number }, string>({
query(id) {
return {
url: `posts/${id}`,
diff --git a/packages/redux-devtools-rtk-query-monitor/package.json b/packages/redux-devtools-rtk-query-monitor/package.json
index 7ef3acca..7c6d8aca 100644
--- a/packages/redux-devtools-rtk-query-monitor/package.json
+++ b/packages/redux-devtools-rtk-query-monitor/package.json
@@ -63,13 +63,13 @@
"@reduxjs/toolkit": "^1.6.2",
"@types/hex-rgba": "^1.0.1",
"@types/lodash.debounce": "^4.0.6",
- "@types/react": "^16.14.18",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@types/react": "^17.0.32",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-react": "^7.26.1",
- "react": "^16.14.0",
+ "react": "^17.0.2",
"redux": "^4.1.1",
"rimraf": "^3.0.2",
"typescript": "~4.4.4"
diff --git a/packages/redux-devtools-rtk-query-monitor/src/styles/tree.tsx b/packages/redux-devtools-rtk-query-monitor/src/styles/tree.tsx
index 1dfe3469..fbf37ecc 100644
--- a/packages/redux-devtools-rtk-query-monitor/src/styles/tree.tsx
+++ b/packages/redux-devtools-rtk-query-monitor/src/styles/tree.tsx
@@ -44,7 +44,8 @@ function getText(
isDiff: boolean | undefined
) {
if (type === 'Object') {
- const keys = Object.keys(data);
+ // eslint-disable-next-line @typescript-eslint/ban-types
+ const keys = Object.keys(data as {});
if (!previewContent) return keys.length ? '{…}' : '{}';
const str = keys
diff --git a/packages/redux-devtools-serialize/package.json b/packages/redux-devtools-serialize/package.json
index 14a4b9f7..b5abb59a 100644
--- a/packages/redux-devtools-serialize/package.json
+++ b/packages/redux-devtools-serialize/package.json
@@ -39,8 +39,8 @@
"@babel/preset-typescript": "^7.15.0",
"@types/jest": "^27.0.2",
"@types/jsan": "^3.1.2",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-jest": "^25.2.2",
diff --git a/packages/redux-devtools-serialize/src/helpers/index.ts b/packages/redux-devtools-serialize/src/helpers/index.ts
index 99076e3b..f1412596 100644
--- a/packages/redux-devtools-serialize/src/helpers/index.ts
+++ b/packages/redux-devtools-serialize/src/helpers/index.ts
@@ -35,13 +35,26 @@ export function extract(data: unknown, type: string): SerializedData {
};
}
+export function refer(data: unknown, type: string): SerializedData;
export function refer
(
data: { [key in K]: () => unknown },
type: string,
- transformMethod: K | false,
+ transformMethod?: K | false,
+ refs?: (new (data: any) => unknown)[] | null
+): SerializedData;
+export function refer(
+ data: any,
+ type: string,
+ transformMethod?: 'toString' | false,
+ refs?: (new (data: any) => unknown)[] | null
+): SerializedData;
+export function refer(
+ data: { [key in K]: () => unknown } | unknown,
+ type: string,
+ transformMethod?: K | false,
refs?: (new (data: any) => unknown)[] | null
): SerializedData {
- const r = mark(data, type, transformMethod);
+ const r = mark(data as { [key in K]: () => unknown }, type, transformMethod);
if (!refs) return r;
for (let i = 0; i < refs.length; i++) {
const ref = refs[i];
diff --git a/packages/redux-devtools-serialize/test/helpers.spec.ts b/packages/redux-devtools-serialize/test/helpers.spec.ts
index 62af59a3..b830242d 100644
--- a/packages/redux-devtools-serialize/test/helpers.spec.ts
+++ b/packages/redux-devtools-serialize/test/helpers.spec.ts
@@ -16,7 +16,9 @@ describe('Helpers', function () {
const TestClass = function (data: unknown) {
return data;
};
- const testInstance = new (TestClass as any)({ testData: 'test' });
+ const testInstance = new (TestClass as any)({
+ testData: 'test',
+ }) as unknown;
expect(
refer(testInstance, 'testType', false, [TestClass as any])
).toMatchSnapshot();
diff --git a/packages/redux-devtools-slider-monitor/examples/todomvc/package.json b/packages/redux-devtools-slider-monitor/examples/todomvc/package.json
index 3f3b2f34..8c344efa 100644
--- a/packages/redux-devtools-slider-monitor/examples/todomvc/package.json
+++ b/packages/redux-devtools-slider-monitor/examples/todomvc/package.json
@@ -21,8 +21,8 @@
"@redux-devtools/slider-monitor": "^2.0.0-8",
"classnames": "^2.3.1",
"prop-types": "^15.7.2",
- "react": "^16.14.0",
- "react-dom": "^16.14.0",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
"react-redux": "^7.2.5",
"redux": "^4.1.1",
"todomvc-app-css": "^2.4.1"
@@ -33,15 +33,15 @@
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"@types/classnames": "^2.3.1",
- "@types/node": "^14.17.27",
+ "@types/node": "^14.17.29",
"@types/prop-types": "^15.7.4",
- "@types/react": "^16.14.18",
- "@types/react-dom": "^16.9.14",
+ "@types/react": "^17.0.32",
+ "@types/react-dom": "^17.0.10",
"@types/react-redux": "^7.1.20",
"@types/webpack": "^5.28.0",
"@types/webpack-dev-server": "^4.3.1",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"babel-loader": "^8.2.3",
"css-loader": "^6.4.0",
"eslint": "^7.32.0",
@@ -49,8 +49,8 @@
"eslint-plugin-react": "^7.26.1",
"fork-ts-checker-webpack-plugin": "^6.4.0",
"html-webpack-plugin": "^5.4.0",
- "style-loader": "^3.3.0",
- "ts-node": "^10.3.0",
+ "style-loader": "^3.3.1",
+ "ts-node": "^10.4.0",
"typescript": "~4.4.4",
"webpack": "^5.59.1",
"webpack-cli": "^4.9.1",
diff --git a/packages/redux-devtools-slider-monitor/package.json b/packages/redux-devtools-slider-monitor/package.json
index 5baa5bab..a10fde6f 100644
--- a/packages/redux-devtools-slider-monitor/package.json
+++ b/packages/redux-devtools-slider-monitor/package.json
@@ -42,13 +42,13 @@
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"@redux-devtools/core": "^3.9.0",
- "@types/react": "^16.14.18",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@types/react": "^17.0.32",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-react": "^7.26.1",
- "react": "^16.14.0",
+ "react": "^17.0.2",
"redux": "^4.1.1",
"rimraf": "^3.0.2",
"typescript": "~4.4.4"
diff --git a/packages/redux-devtools-ui/jest.config.js b/packages/redux-devtools-ui/jest.config.js
index 1db14ea5..e4f61740 100644
--- a/packages/redux-devtools-ui/jest.config.js
+++ b/packages/redux-devtools-ui/jest.config.js
@@ -1,6 +1,5 @@
module.exports = {
preset: 'ts-jest',
- setupFilesAfterEnv: ['/tests/setup.ts'],
testEnvironment: 'jsdom',
moduleNameMapper: {
'\\.css$': '/tests/__mocks__/styleMock.ts',
diff --git a/packages/redux-devtools-ui/package.json b/packages/redux-devtools-ui/package.json
index 84c3d7d4..6dd3c0b4 100644
--- a/packages/redux-devtools-ui/package.json
+++ b/packages/redux-devtools-ui/package.json
@@ -58,35 +58,35 @@
"@babel/preset-typescript": "^7.15.0",
"@storybook/addon-essentials": "^6.3.12",
"@storybook/react": "^6.3.12",
+ "@testing-library/dom": "^8.10.1",
+ "@testing-library/react": "^12.1.2",
+ "@testing-library/user-event": "^13.5.0",
"@types/color": "^3.0.2",
- "@types/enzyme": "^3.10.10",
- "@types/enzyme-adapter-react-16": "^1.0.6",
"@types/jest": "^27.0.2",
- "@types/react": "^16.14.18",
+ "@types/react": "^17.0.32",
"@types/styled-components": "^5.1.15",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
+ "@typescript-eslint/parser": "^5.1.0",
+ "babel-loader": "^8.2.3",
"csstype": "^3.0.9",
- "enzyme": "^3.11.0",
- "enzyme-adapter-react-16": "^1.15.6",
- "enzyme-to-json": "^3.6.2",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-jest": "^25.2.2",
"eslint-plugin-react": "^7.26.1",
"jest": "^27.3.1",
- "react": "^16.14.0",
- "react-dom": "^16.14.0",
- "react-is": "^16.13.1",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "react-is": "^17.0.2",
"rimraf": "^3.0.2",
"styled-components": "^5.3.3",
- "stylelint": "^13.13.1",
+ "stylelint": "^14.0.0",
"stylelint-config-prettier": "^9.0.3",
- "stylelint-config-standard": "^22.0.0",
+ "stylelint-config-standard": "^23.0.0",
"stylelint-config-styled-components": "^0.1.1",
"stylelint-processor-styled-components": "^1.10.0",
"ts-jest": "^27.0.7",
- "typescript": "~4.4.4"
+ "typescript": "~4.4.4",
+ "webpack": "^5.59.1"
},
"peerDependencies": {
"@types/react": "^16.3.0 || ^17.0.0",
diff --git a/packages/redux-devtools-ui/src/Container/styles/index.ts b/packages/redux-devtools-ui/src/Container/styles/index.ts
index d8be6617..65c548d0 100644
--- a/packages/redux-devtools-ui/src/Container/styles/index.ts
+++ b/packages/redux-devtools-ui/src/Container/styles/index.ts
@@ -1,5 +1,6 @@
-import styled from 'styled-components';
+import styled, { ThemedStyledProps } from 'styled-components';
import color from '../../utils/color';
+import { Theme } from '../../themes/default';
export const MainContainerWrapper = styled.div`
display: flex;
@@ -7,7 +8,9 @@ export const MainContainerWrapper = styled.div`
width: 100%;
flex-flow: column nowrap;
overflow: auto;
- background-color: ${(props) => color(props.theme.base00, 'lighten', 0.03)};
+ ${/* eslint-disable-next-line @typescript-eslint/ban-types */ ''}
+ background-color: ${(props: ThemedStyledProps<{}, Theme>) =>
+ color(props.theme.base00, 'lighten', 0.03)};
color: ${(props) => props.theme.base07};
font-size: 12px;
diff --git a/packages/redux-devtools-ui/src/ContextMenu/ContextMenu.tsx b/packages/redux-devtools-ui/src/ContextMenu/ContextMenu.tsx
index ba9d357c..c32f9f30 100644
--- a/packages/redux-devtools-ui/src/ContextMenu/ContextMenu.tsx
+++ b/packages/redux-devtools-ui/src/ContextMenu/ContextMenu.tsx
@@ -24,22 +24,7 @@ export interface ContextMenuProps {
}
export default class ContextMenu extends Component {
- constructor(props: ContextMenuProps) {
- super(props);
- this.updateItems(props.items);
- }
-
menu?: HTMLDivElement | null;
- items?: React.ReactNode[];
-
- UNSAFE_componentWillReceiveProps(nextProps: ContextMenuProps) {
- if (
- nextProps.items !== this.props.items ||
- nextProps.visible !== this.props.visible
- ) {
- this.updateItems(nextProps.items);
- }
- }
componentDidMount() {
this.amendPosition();
@@ -84,8 +69,8 @@ export default class ContextMenu extends Component {
this.menu!.style.left = `${left}px`;
}
- updateItems(items: Item[]) {
- this.items = items.map((item) => {
+ renderItems() {
+ return this.props.items.map((item) => {
if (isReactButtonElement(item)) return item;
const value = item.value || item.name;
return (
@@ -113,7 +98,7 @@ export default class ContextMenu extends Component {
top={this.props.y}
visible={this.props.visible}
>
- {this.items}
+ {this.renderItems()}
);
}
diff --git a/packages/redux-devtools-ui/src/utils/createStyledComponent.ts b/packages/redux-devtools-ui/src/utils/createStyledComponent.ts
index fc77eac9..d92d6574 100644
--- a/packages/redux-devtools-ui/src/utils/createStyledComponent.ts
+++ b/packages/redux-devtools-ui/src/utils/createStyledComponent.ts
@@ -65,15 +65,15 @@ export default function createStyledComponent<
): StyledComponent {
return (styled as ThemedStyledInterface)((component || 'div') as C)`
${(props: ThemedStyledProps & O, Theme>) =>
- isThemeFromProvider(props.theme)
- ? getStyle(styles, props.theme.type)
+ isThemeFromProvider(props.theme as Theme | Base16Theme)
+ ? getStyle(styles, props.theme.type as string)
: // used outside of container (theme provider)
getStyle(
styles,
'default'
)({
...props,
- theme: getDefaultTheme(props.theme),
+ theme: getDefaultTheme(props.theme as Base16Theme),
})}
` as StyledComponent;
}
diff --git a/packages/redux-devtools-ui/tests/Button.test.tsx b/packages/redux-devtools-ui/tests/Button.test.tsx
index 6ae53b8c..1d0769d0 100644
--- a/packages/redux-devtools-ui/tests/Button.test.tsx
+++ b/packages/redux-devtools-ui/tests/Button.test.tsx
@@ -1,19 +1,19 @@
import React from 'react';
-import { render, mount } from 'enzyme';
-import { renderToJson } from 'enzyme-to-json';
+import { render, screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
import { Button } from '../src';
describe('Button', function () {
it('renders correctly', () => {
- const wrapper = render();
- expect(renderToJson(wrapper)).toMatchSnapshot();
+ const { container } = render();
+ expect(container.firstChild).toMatchSnapshot();
});
it('should handle the click event', () => {
const onClick = jest.fn();
- const wrapper = mount();
+ render();
- wrapper.find('button').simulate('click');
- expect(onClick).toBeCalled();
+ userEvent.click(screen.getByRole('button'));
+ expect(onClick).toHaveBeenCalled();
});
});
diff --git a/packages/redux-devtools-ui/tests/Container.test.tsx b/packages/redux-devtools-ui/tests/Container.test.tsx
index ca077f1d..fb8bb28f 100644
--- a/packages/redux-devtools-ui/tests/Container.test.tsx
+++ b/packages/redux-devtools-ui/tests/Container.test.tsx
@@ -1,17 +1,16 @@
import React from 'react';
-import { render } from 'enzyme';
-import { renderToJson } from 'enzyme-to-json';
+import { render } from '@testing-library/react';
import { Container } from '../src';
describe('Container', function () {
it('renders correctly', () => {
- const wrapper = render(
+ const { container } = render(
Text
);
- expect(renderToJson(wrapper)).toMatchSnapshot();
+ expect(container.firstChild).toMatchSnapshot();
});
});
diff --git a/packages/redux-devtools-ui/tests/ContextMenu.test.tsx b/packages/redux-devtools-ui/tests/ContextMenu.test.tsx
index 0875e97d..d50a81e2 100644
--- a/packages/redux-devtools-ui/tests/ContextMenu.test.tsx
+++ b/packages/redux-devtools-ui/tests/ContextMenu.test.tsx
@@ -1,12 +1,12 @@
import React from 'react';
-import { render, mount } from 'enzyme';
-import { renderToJson } from 'enzyme-to-json';
+import { render, screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
import { ContextMenu } from '../src';
import { items } from '../src/ContextMenu/data';
describe('ContextMenu', function () {
it('renders correctly', () => {
- const wrapper = render(
+ const { container } = render(
{
@@ -16,15 +16,15 @@ describe('ContextMenu', function () {
y={100}
/>
);
- expect(renderToJson(wrapper)).toMatchSnapshot();
+ expect(container.firstChild).toMatchSnapshot();
});
it('should handle the click event', () => {
const onClick = jest.fn();
- const wrapper = mount(
-
+ render(
+
);
- wrapper.find('button').first().simulate('click');
- expect(onClick).toBeCalled();
+ userEvent.click(screen.getByRole('button', { name: 'Menu Item 1' }));
+ expect(onClick).toHaveBeenCalled();
});
});
diff --git a/packages/redux-devtools-ui/tests/Dialog.test.tsx b/packages/redux-devtools-ui/tests/Dialog.test.tsx
index eb9efe33..6397d478 100644
--- a/packages/redux-devtools-ui/tests/Dialog.test.tsx
+++ b/packages/redux-devtools-ui/tests/Dialog.test.tsx
@@ -1,11 +1,11 @@
import React from 'react';
-import { render, mount } from 'enzyme';
-import { renderToJson } from 'enzyme-to-json';
+import { render, screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
import { Dialog } from '../src';
describe('Dialog', function () {
it('renders correctly', () => {
- const wrapper = render(
+ const { container } = render(
+