diff --git a/package.json b/package.json index b07109e676a67..02739b2743267 100644 --- a/package.json +++ b/package.json @@ -512,11 +512,11 @@ "@storybook/react": "^6.3.12", "@storybook/testing-react": "^0.0.22", "@storybook/theming": "^6.3.12", - "@testing-library/dom": "^7.30.3", - "@testing-library/jest-dom": "^5.11.10", - "@testing-library/react": "^11.2.6", - "@testing-library/react-hooks": "^5.1.1", - "@testing-library/user-event": "^13.1.1", + "@testing-library/dom": "^8.12.0", + "@testing-library/jest-dom": "^5.16.3", + "@testing-library/react": "^12.1.4", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^13.5.0", "@types/apidoc": "^0.22.3", "@types/archiver": "^5.1.0", "@types/babel__core": "^7.1.19", @@ -714,8 +714,7 @@ "@types/tar": "^4.0.5", "@types/tar-fs": "^1.16.1", "@types/tempy": "^0.2.0", - "@types/testing-library__jest-dom": "^5.9.5", - "@types/testing-library__react-hooks": "^4.0.0", + "@types/testing-library__jest-dom": "^5.14.3", "@types/tinycolor2": "^1.4.1", "@types/tough-cookie": "^4.0.1", "@types/type-detect": "^4.0.1", @@ -874,6 +873,7 @@ "postcss-loader": "^3.0.0", "postcss-prefix-selector": "^1.7.2", "prettier": "^2.6.1", + "pretty-format": "^27.5.1", "q": "^1.5.1", "react-test-renderer": "^16.12.0", "read-pkg": "^5.2.0", diff --git a/packages/kbn-i18n-react/src/provider.tsx b/packages/kbn-i18n-react/src/provider.tsx index 2b4d8339a948d..5e60188d3bdd4 100644 --- a/packages/kbn-i18n-react/src/provider.tsx +++ b/packages/kbn-i18n-react/src/provider.tsx @@ -6,8 +6,7 @@ * Side Public License, v 1. */ -import * as PropTypes from 'prop-types'; -import * as React from 'react'; +import React from 'react'; // eslint-disable-next-line @kbn/eslint/module_migration import { IntlProvider } from 'react-intl'; @@ -20,20 +19,15 @@ import { PseudoLocaleWrapper } from './pseudo_locale_wrapper'; * of components. This component is used to setup the i18n context for a tree. * IntlProvider should wrap react app's root component (inside each react render method). */ -export class I18nProvider extends React.PureComponent { - public static propTypes = { children: PropTypes.element.isRequired }; - public render() { - return ( - - {this.props.children} - - ); - } -} +export const I18nProvider: React.FC = ({ children }) => ( + + {children} + +); diff --git a/packages/kbn-securitysolution-list-hooks/BUILD.bazel b/packages/kbn-securitysolution-list-hooks/BUILD.bazel index d709a0ddfbb80..1832340e607e7 100644 --- a/packages/kbn-securitysolution-list-hooks/BUILD.bazel +++ b/packages/kbn-securitysolution-list-hooks/BUILD.bazel @@ -49,7 +49,6 @@ TYPES_DEPS = [ "@npm//@types/jest", "@npm//@types/node", "@npm//@types/react", - "@npm//@types/testing-library__react-hooks", "@npm//fp-ts", "@npm//tslib", ] diff --git a/renovate.json b/renovate.json index 1474bfeedf71f..6f34f08c723f2 100644 --- a/renovate.json +++ b/renovate.json @@ -141,6 +141,21 @@ "matchBaseBranches": ["main"], "labels": ["Team:Operations", "release_note:skip"], "enabled": true + }, + { + "groupName": "@testing-library", + "packageNames": [ + "@testing-library/dom", + "@testing-library/jest-dom", + "@testing-library/react", + "@testing-library/react-hooks", + "@testing-library/user-event", + "@types/testing-library__jest-dom" + ], + "reviewers": ["team:kibana-operations"], + "matchBaseBranches": ["main"], + "labels": ["Team:Operations", "release_note:skip"], + "enabled": true } ] } diff --git a/x-pack/plugins/cases/public/common/mock/test_providers.tsx b/x-pack/plugins/cases/public/common/mock/test_providers.tsx index 0bd08e348c3bd..db155c2aae0df 100644 --- a/x-pack/plugins/cases/public/common/mock/test_providers.tsx +++ b/x-pack/plugins/cases/public/common/mock/test_providers.tsx @@ -84,7 +84,7 @@ export const createAppMockRenderer = ({ AppWrapper.displayName = 'AppWrapper'; const render: UiRender = (ui, options) => { return reactRender(ui, { - wrapper: AppWrapper as React.ComponentType, + wrapper: AppWrapper, ...options, }); }; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx index 36964e32eb8ed..360f7cd064cb7 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx @@ -12,7 +12,6 @@ import { stringify } from 'query-string'; import { render as reactTestLibRender, RenderOptions, - Nullish, MatcherFunction, } from '@testing-library/react'; import { Route, Router } from 'react-router-dom'; @@ -167,7 +166,7 @@ export function MockKibanaProvider>({ ); } -export function MockRouter({ +export function MockRouter>({ children, core, history = createMemoryHistory(), @@ -385,7 +384,7 @@ export const mockDataView = createStubDataView({ export const forNearestButton = (getByText: (f: MatcherFunction) => HTMLElement | null) => (text: string): HTMLElement | null => - getByText((_content: string, node: Nullish) => { + getByText((_content: string, node: Element | null) => { if (!node) return false; const noOtherButtonHasText = Array.from(node.children).every( (child) => child && (child.textContent !== text || child.tagName.toLowerCase() !== 'button') diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx index c5cf2b6ea3379..bf2e6de1675b6 100644 --- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx @@ -100,9 +100,6 @@ describe('DraggableWrapper', () => { await waitFor(() => { wrapper.find('[data-test-subj="withHoverActionsButton"]').simulate('mouseenter'); - wrapper.update(); - jest.runAllTimers(); - wrapper.update(); expect(wrapper.find('[data-test-subj="hover-actions-copy-button"]').exists()).toBe(true); }); }); diff --git a/x-pack/plugins/security_solution/public/common/mock/endpoint/app_context_render.tsx b/x-pack/plugins/security_solution/public/common/mock/endpoint/app_context_render.tsx index 161cc62d6e731..440ea57ec58ad 100644 --- a/x-pack/plugins/security_solution/public/common/mock/endpoint/app_context_render.tsx +++ b/x-pack/plugins/security_solution/public/common/mock/endpoint/app_context_render.tsx @@ -143,7 +143,7 @@ export const createAppRootMockRenderer = (): AppContextTestRender => { const render: UiRender = (ui, options) => { return reactRender(ui, { - wrapper: AppWrapper as React.ComponentType, + wrapper: AppWrapper, ...options, }); }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.test.tsx index 296e4c85be88a..16b22fe99ac88 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.test.tsx @@ -7,6 +7,7 @@ import React from 'react'; import { mount } from 'enzyme'; +import { waitFor } from '@testing-library/react'; import { AddToFavoritesButton, NewTimeline, NewTimelineProps } from './helpers'; import { useCreateTimelineButton } from './use_create_timeline'; @@ -124,9 +125,10 @@ describe('Favorite Button', () => { ); - wrapper.simulate('click'); - - expect(spy).toHaveBeenCalled(); + waitFor(() => { + wrapper.simulate('click'); + expect(spy).toHaveBeenCalled(); + }); }); test('should disable favorite button with filled star', () => { diff --git a/x-pack/plugins/session_view/public/test/index.tsx b/x-pack/plugins/session_view/public/test/index.tsx index 8570e142538de..e7a990000b018 100644 --- a/x-pack/plugins/session_view/public/test/index.tsx +++ b/x-pack/plugins/session_view/public/test/index.tsx @@ -123,7 +123,7 @@ export const createAppRootMockRenderer = (): AppContextTestRender => { const render: UiRender = (ui, options = {}) => { return reactRender(ui, { - wrapper: AppWrapper as React.ComponentType, + wrapper: AppWrapper, ...options, }); }; diff --git a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx index fdb5498969d39..94e635a7aa9ef 100644 --- a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx @@ -162,7 +162,8 @@ describe('MonitorTags component', () => { it('expand tag show tags on click', () => { summaryPing.state.summaryPings[0].tags = ['red', 'green', 'blue', 'black', 'purple', 'yellow']; - render(, { wrapper: MemoryRouter }); + const Wrapper: React.FC = ({ children }) => {children}; + render(, { wrapper: Wrapper }); fireEvent.click(screen.getByText('+1')); diff --git a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx index ed23cdd52ca0e..31d9bdd7c77e5 100644 --- a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx +++ b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx @@ -12,7 +12,6 @@ import { render as reactTestLibRender, MatcherFunction, RenderOptions, - Nullish, } from '@testing-library/react'; import { Router, Route } from 'react-router-dom'; import { merge } from 'lodash'; @@ -289,7 +288,7 @@ const forNearestTag = (tag: string) => (getByText: (f: MatcherFunction) => HTMLElement | null) => (text: string): HTMLElement | null => - getByText((_content: string, node: Nullish) => { + getByText((_content: string, node: Element | null) => { if (!node) return false; const noOtherButtonHasText = Array.from(node.children).every( (child) => child && (child.textContent !== text || child.tagName.toLowerCase() !== tag) @@ -345,7 +344,7 @@ const finderWithClassWrapper = customAttribute?: keyof Element | keyof HTMLElement ) => (text: string): HTMLElement | null => - getterFn((_content: string, node: Nullish) => { + getterFn((_content: string, node: Element | null) => { if (!node) return false; // There are actually properties that are not in Element but which // appear on the `node`, so we must cast the customAttribute as a keyof Element diff --git a/yarn.lock b/yarn.lock index 9fe698e72a7d0..99ce048f48b99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5033,58 +5033,59 @@ resolved "https://registry.yarnpkg.com/@testim/chrome-version/-/chrome-version-1.1.2.tgz#092005c5b77bd3bb6576a4677110a11485e11864" integrity sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw== -"@testing-library/dom@^7.28.1", "@testing-library/dom@^7.30.3": - version "7.30.3" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.30.3.tgz#779ea9bbb92d63302461800a388a5a890ac22519" - integrity sha512-7JhIg2MW6WPwyikH2iL3o7z+FTVgSOd2jqCwTAHqK7Qal2gRRYiUQyURAxtbK9VXm/UTyG9bRihv8C5Tznr2zw== +"@testing-library/dom@^8.0.0", "@testing-library/dom@^8.12.0": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.12.0.tgz#fef5e545533fb084175dda6509ee71d7d2f72e23" + integrity sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" + aria-query "^5.0.0" chalk "^4.1.0" - dom-accessibility-api "^0.5.4" + dom-accessibility-api "^0.5.9" lz-string "^1.4.4" - pretty-format "^26.6.2" + pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.11.10": - version "5.11.10" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.10.tgz#1cd90715023e1627f5ed26ab3b38e6f22d77046c" - integrity sha512-FuKiq5xuk44Fqm0000Z9w0hjOdwZRNzgx7xGGxQYepWFZy+OYUMOT/wPI4nLYXCaVltNVpU1W/qmD88wLWDsqQ== +"@testing-library/jest-dom@^5.16.3": + version "5.16.3" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.3.tgz#b76851a909586113c20486f1679ffb4d8ec27bfa" + integrity sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^4.2.2" + aria-query "^5.0.0" chalk "^3.0.0" css "^3.0.0" css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react-hooks@*", "@testing-library/react-hooks@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-5.1.1.tgz#1fbaae8a4e8a4a7f97b176c23e1e890c41bbbfa5" - integrity sha512-52D2XnpelFDefnWpy/V6z2qGNj8JLIvW5DjYtelMvFXdEyWiykSaI7IXHwFy4ICoqXJDmmwHAiFRiFboub/U5g== +"@testing-library/react-hooks@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz#3388d07f562d91e7f2431a4a21b5186062ecfee0" + integrity sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg== dependencies: "@babel/runtime" "^7.12.5" "@types/react" ">=16.9.0" "@types/react-dom" ">=16.9.0" "@types/react-test-renderer" ">=16.9.0" - filter-console "^0.1.1" react-error-boundary "^3.1.0" -"@testing-library/react@^11.2.6": - version "11.2.6" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.6.tgz#586a23adc63615985d85be0c903f374dab19200b" - integrity sha512-TXMCg0jT8xmuU8BkKMtp8l7Z50Ykew5WNX8UoIKTaLFwKkP2+1YDhOLA2Ga3wY4x29jyntk7EWfum0kjlYiSjQ== +"@testing-library/react@^12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.4.tgz#09674b117e550af713db3f4ec4c0942aa8bbf2c0" + integrity sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^7.28.1" + "@testing-library/dom" "^8.0.0" + "@types/react-dom" "*" -"@testing-library/user-event@^13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.1.1.tgz#1e011de944cf4d2a917cef6c3046c26389943e24" - integrity sha512-B4roX+0mpXKGj8ndd38YoIo3IV9pmTTWxr/2cOke5apTtrNabEUE0KMBccpcAcYlfPcr7uMu+dxeeC3HdXd9qQ== +"@testing-library/user-event@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" + integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== dependencies: "@babel/runtime" "^7.12.5" @@ -6600,7 +6601,7 @@ dependencies: "@types/react" "*" -"@types/react-dom@>=16.9.0", "@types/react-dom@^16.9.8": +"@types/react-dom@*", "@types/react-dom@>=16.9.0", "@types/react-dom@^16.9.8": version "16.9.8" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== @@ -6924,20 +6925,13 @@ resolved "https://registry.yarnpkg.com/@types/tempy/-/tempy-0.2.0.tgz#8b7a93f6912aef25cc0b8d8a80ff974151478685" integrity sha512-YaX74QljqR45Xu7dd22wMvzTS+ItUiSyDl9XJl6WTgYNE09r2TF+mV2FDjWRM5Sdzf9C9dXRTUdz9J5SoEYxXg== -"@types/testing-library__jest-dom@^5.9.1", "@types/testing-library__jest-dom@^5.9.5": - version "5.9.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" - integrity sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ== +"@types/testing-library__jest-dom@^5.14.3", "@types/testing-library__jest-dom@^5.9.1": + version "5.14.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" + integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== dependencies: "@types/jest" "*" -"@types/testing-library__react-hooks@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-4.0.0.tgz#2612eabbbb762968985fc1aa35f979caaa78f118" - integrity sha512-UzZUXthQtVjDruR2YA+hqg9ux5AfmZ8Kaw+QDungax+T7wb/5NC4x7YOpIqRx7oY3KksGQ69bzNE/xwzb5NslQ== - dependencies: - "@testing-library/react-hooks" "*" - "@types/through@*": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" @@ -8055,6 +8049,11 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" +aria-query@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" + integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -12536,10 +12535,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" - integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.13" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" + integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== dom-converter@~0.2: version "0.2.0" @@ -14412,11 +14411,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-console@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/filter-console/-/filter-console-0.1.1.tgz#6242be28982bba7415bcc6db74a79f4a294fa67c" - integrity sha512-zrXoV1Uaz52DqPs+qEwNJWJFAWZpYJ47UNmpN9q4j+/EYsz85uV0DC9k8tRND5kYmoVzL0W+Y75q4Rg8sRJCdg== - finalhandler@1.1.2, finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -22966,7 +22960,7 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.2, pretty-format@^27.5.1: +pretty-format@^27.0.2, pretty-format@^27.2.0, pretty-format@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -22975,16 +22969,6 @@ pretty-format@^27.0.2, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" - integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== - dependencies: - "@jest/types" "^27.1.1" - ansi-regex "^5.0.0" - ansi-styles "^5.0.0" - react-is "^17.0.1" - pretty-format@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385"