From 3563837c0532705b5ad42a78edc9b3272578ef4b Mon Sep 17 00:00:00 2001
From: gabrieljablonski
Date: Thu, 9 Feb 2023 11:34:05 -0300
Subject: [PATCH 1/7] test: placeholder
---
src/test/__snapshots__/index.spec.js.snap | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/test/__snapshots__/index.spec.js.snap b/src/test/__snapshots__/index.spec.js.snap
index 30ec1a25..8274eb8e 100644
--- a/src/test/__snapshots__/index.spec.js.snap
+++ b/src/test/__snapshots__/index.spec.js.snap
@@ -102,4 +102,4 @@ exports[`tooltip props tooltip component - without anchorId 1`] = `
`;
-exports[`tooltip props tooltip component - without element reference 1`] = `null`;
+exports[`tooltip props tooltip component - without element reference 1`] = `null`;
\ No newline at end of file
From 175c45bbba1524c179e45a2ff6b9a0a180a92b51 Mon Sep 17 00:00:00 2001
From: Daniel Barion
Date: Wed, 15 Feb 2023 11:20:14 -0300
Subject: [PATCH 2/7] refactor: improve tooltip mounted code check
---
src/components/Tooltip/Tooltip.tsx | 33 ++++++++++++++++++++++--------
1 file changed, 25 insertions(+), 8 deletions(-)
diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx
index feb6985d..ee61e548 100644
--- a/src/components/Tooltip/Tooltip.tsx
+++ b/src/components/Tooltip/Tooltip.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useState, useRef } from 'react'
+import { useEffect, useState, useRef, useLayoutEffect } from 'react'
import classNames from 'classnames'
import debounce from 'utils/debounce'
import { TooltipContent } from 'components/TooltipContent'
@@ -50,6 +50,19 @@ const Tooltip = ({
const { anchorRefs, setActiveAnchor: setProviderActiveAnchor } = useTooltip(id)
const [activeAnchor, setActiveAnchor] = useState>({ current: null })
const hoveringTooltip = useRef(false)
+ const mounted = useRef(false)
+
+ /**
+ * useLayoutEffect runs before useEffect,
+ * but should be used carefully because of caveats
+ * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats
+ */
+ useLayoutEffect(() => {
+ mounted.current = true
+ return () => {
+ mounted.current = false
+ }
+ }, [])
useEffect(() => {
if (!show) {
@@ -58,12 +71,20 @@ const Tooltip = ({
}, [show])
const handleShow = (value: boolean) => {
+ if (!mounted.current) {
+ return
+ }
+
setRendered(true)
/**
* wait for the component to render and calculate position
* before actually showing
*/
setTimeout(() => {
+ if (!mounted.current) {
+ return
+ }
+
setIsOpen?.(value)
if (isOpen === undefined) {
setShow(value)
@@ -345,7 +366,7 @@ const Tooltip = ({
if (position) {
// if `position` is set, override regular and `float` positioning
handleTooltipPosition(position)
- return () => null
+ return
}
if (float) {
@@ -360,7 +381,7 @@ const Tooltip = ({
handleTooltipPosition(lastFloatPosition.current)
}
// if `float` is set, override regular positioning
- return () => null
+ return
}
let elementReference = activeAnchor.current
@@ -368,7 +389,6 @@ const Tooltip = ({
// `anchorId` element takes precedence
elementReference = document.querySelector(`[id='${anchorId}']`) as HTMLElement
}
- let mounted = true
computeTooltipPosition({
place,
offset,
@@ -378,7 +398,7 @@ const Tooltip = ({
strategy: positionStrategy,
middlewares,
}).then((computedStylesData) => {
- if (!mounted) {
+ if (!mounted.current) {
// invalidate computed positions after remount
return
}
@@ -389,9 +409,6 @@ const Tooltip = ({
setInlineArrowStyles(computedStylesData.tooltipArrowStyles)
}
})
- return () => {
- mounted = false
- }
}, [show, anchorId, activeAnchor, content, html, place, offset, positionStrategy, position])
useEffect(() => {
From 5fb57ee219035bcbe11ec2cfdc71899bd0d15768 Mon Sep 17 00:00:00 2001
From: Daniel Barion
Date: Wed, 15 Feb 2023 11:20:55 -0300
Subject: [PATCH 3/7] chore: ugprade packages and add testing-library into the
project
---
package.json | 16 +-
yarn.lock | 1102 ++++++++++++++++++++++++++++++++++----------------
2 files changed, 762 insertions(+), 356 deletions(-)
diff --git a/package.json b/package.json
index 0c239021..1066c2f4 100644
--- a/package.json
+++ b/package.json
@@ -49,9 +49,12 @@
"@rollup/plugin-node-resolve": "14.1.0",
"@rollup/plugin-replace": "4.0.0",
"@rollup/plugin-typescript": "8.5.0",
+ "@testing-library/jest-dom": "^5.16.5",
+ "@testing-library/react": "12.1.5",
+ "@testing-library/user-event": "^14.4.3",
"@types/css": "^0.0.33",
"@types/css-modules": "^1.0.2",
- "@types/jest": "^29.2.3",
+ "@types/jest": "29.4.0",
"@types/react": "^18.0.21",
"@types/react-dom": "^18.0.6",
"@types/react-test-renderer": "^18.0.0",
@@ -68,9 +71,9 @@
"eslint-plugin-react": "7.31.11",
"eslint-plugin-react-hooks": "^4.2.0",
"husky": "^8.0.1",
- "jest": "^29.3.1",
- "jest-environment-jsdom": "^29.3.1",
- "jest-transform-css": "^6.0.0",
+ "jest": "29.4.2",
+ "jest-environment-jsdom": "29.4.2",
+ "jest-transform-css": "6.0.1",
"lint-staged": "13.0.3",
"postcss": "8.4.19",
"prettier": "^2.4.1",
@@ -78,7 +81,6 @@
"prop-types": "^15.7.2",
"react": "16.14.0",
"react-dom": "16.14.0",
- "react-test-renderer": "16.14.0",
"rimraf": "^3.0.2",
"rollup": "2.79.1",
"rollup-plugin-analyzer": "^4.0.0",
@@ -96,9 +98,9 @@
"stylelint": "^13.13.1",
"stylelint-config-prettier": "^8.0.2",
"stylelint-config-standard": "^22.0.0",
- "ts-jest": "^29.0.3",
+ "ts-jest": "29.0.5",
"ts-node": "^10.9.1",
- "typescript": "^4.8.4"
+ "typescript": "4.9.5"
},
"peerDependencies": {
"react": ">=16.14.0",
diff --git a/yarn.lock b/yarn.lock
index 63d1dac4..8d18c49a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adobe/css-tools@^4.0.1":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.1.0.tgz#417fef4a143f4396ad0b3b4351fee21323f15aa8"
+ integrity sha512-mMVJ/j/GbZ/De4ZHWbQAQO1J6iVnjtZLc9WEdkUQb8S/Bu2cAF2bETXUgMAdvMG3/ngtKmcNBe+Zms9bg6jnQQ==
+
"@ampproject/remapping@^2.1.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
@@ -317,6 +322,13 @@
dependencies:
regenerator-runtime "^0.13.10"
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2":
+ version "7.20.13"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
+ integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
"@babel/template@^7.18.10", "@babel/template@^7.3.3":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
@@ -455,61 +467,61 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-"@jest/console@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583"
- integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==
+"@jest/console@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.2.tgz#f78374905c2454764152904a344a2d5226b0ef09"
+ integrity sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg==
dependencies:
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
+ jest-message-util "^29.4.2"
+ jest-util "^29.4.2"
slash "^3.0.0"
-"@jest/core@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1"
- integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==
+"@jest/core@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.2.tgz#6e999b67bdc2df9d96ba9b142465bda71ee472c2"
+ integrity sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ==
dependencies:
- "@jest/console" "^29.3.1"
- "@jest/reporters" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.4.2"
+ "@jest/reporters" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/transform" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
ci-info "^3.2.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
- jest-changed-files "^29.2.0"
- jest-config "^29.3.1"
- jest-haste-map "^29.3.1"
- jest-message-util "^29.3.1"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-resolve-dependencies "^29.3.1"
- jest-runner "^29.3.1"
- jest-runtime "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
- jest-watcher "^29.3.1"
+ jest-changed-files "^29.4.2"
+ jest-config "^29.4.2"
+ jest-haste-map "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-regex-util "^29.4.2"
+ jest-resolve "^29.4.2"
+ jest-resolve-dependencies "^29.4.2"
+ jest-runner "^29.4.2"
+ jest-runtime "^29.4.2"
+ jest-snapshot "^29.4.2"
+ jest-util "^29.4.2"
+ jest-validate "^29.4.2"
+ jest-watcher "^29.4.2"
micromatch "^4.0.4"
- pretty-format "^29.3.1"
+ pretty-format "^29.4.2"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6"
- integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==
+"@jest/environment@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56"
+ integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ==
dependencies:
- "@jest/fake-timers" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/fake-timers" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
- jest-mock "^29.3.1"
+ jest-mock "^29.4.2"
"@jest/expect-utils@^29.3.1":
version "29.3.1"
@@ -518,46 +530,53 @@
dependencies:
jest-get-type "^29.2.0"
-"@jest/expect@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd"
- integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==
+"@jest/expect-utils@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.2.tgz#cd0065dfdd8e8a182aa350cc121db97b5eed7b3f"
+ integrity sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA==
dependencies:
- expect "^29.3.1"
- jest-snapshot "^29.3.1"
+ jest-get-type "^29.4.2"
-"@jest/fake-timers@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67"
- integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==
+"@jest/expect@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.2.tgz#2d4a6a41b29380957c5094de19259f87f194578b"
+ integrity sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ==
dependencies:
- "@jest/types" "^29.3.1"
- "@sinonjs/fake-timers" "^9.1.2"
+ expect "^29.4.2"
+ jest-snapshot "^29.4.2"
+
+"@jest/fake-timers@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0"
+ integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ==
+ dependencies:
+ "@jest/types" "^29.4.2"
+ "@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*"
- jest-message-util "^29.3.1"
- jest-mock "^29.3.1"
- jest-util "^29.3.1"
+ jest-message-util "^29.4.2"
+ jest-mock "^29.4.2"
+ jest-util "^29.4.2"
-"@jest/globals@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6"
- integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==
+"@jest/globals@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.2.tgz#73f85f5db0e17642258b25fd0b9fc89ddedb50eb"
+ integrity sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/expect" "^29.3.1"
- "@jest/types" "^29.3.1"
- jest-mock "^29.3.1"
+ "@jest/environment" "^29.4.2"
+ "@jest/expect" "^29.4.2"
+ "@jest/types" "^29.4.2"
+ jest-mock "^29.4.2"
-"@jest/reporters@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310"
- integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==
+"@jest/reporters@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.2.tgz#6abfa923941daae0acc76a18830ee9e79a22042d"
+ integrity sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/transform" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@jridgewell/trace-mapping" "^0.3.15"
"@types/node" "*"
chalk "^4.0.0"
@@ -570,9 +589,9 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.1.3"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
- jest-worker "^29.3.1"
+ jest-message-util "^29.4.2"
+ jest-util "^29.4.2"
+ jest-worker "^29.4.2"
slash "^3.0.0"
string-length "^4.0.1"
strip-ansi "^6.0.0"
@@ -585,55 +604,62 @@
dependencies:
"@sinclair/typebox" "^0.24.1"
-"@jest/source-map@^29.2.0":
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744"
- integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==
+"@jest/schemas@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1"
+ integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==
+ dependencies:
+ "@sinclair/typebox" "^0.25.16"
+
+"@jest/source-map@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.2.tgz#f9815d59e25cd3d6828e41489cd239271018d153"
+ integrity sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q==
dependencies:
"@jridgewell/trace-mapping" "^0.3.15"
callsites "^3.0.0"
graceful-fs "^4.2.9"
-"@jest/test-result@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50"
- integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==
+"@jest/test-result@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.2.tgz#34b0ba069f2e3072261e4884c8fb6bd15ed6fb8d"
+ integrity sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA==
dependencies:
- "@jest/console" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d"
- integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==
+"@jest/test-sequencer@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.2.tgz#8b48e5bc4af80b42edacaf2a733d4f295edf28fb"
+ integrity sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg==
dependencies:
- "@jest/test-result" "^29.3.1"
+ "@jest/test-result" "^29.4.2"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
+ jest-haste-map "^29.4.2"
slash "^3.0.0"
-"@jest/transform@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d"
- integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==
+"@jest/transform@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81"
+ integrity sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.4.2"
"@jridgewell/trace-mapping" "^0.3.15"
babel-plugin-istanbul "^6.1.1"
chalk "^4.0.0"
convert-source-map "^2.0.0"
fast-json-stable-stringify "^2.1.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
- jest-regex-util "^29.2.0"
- jest-util "^29.3.1"
+ jest-haste-map "^29.4.2"
+ jest-regex-util "^29.4.2"
+ jest-util "^29.4.2"
micromatch "^4.0.4"
pirates "^4.0.4"
slash "^3.0.0"
- write-file-atomic "^4.0.1"
+ write-file-atomic "^4.0.2"
"@jest/types@^29.3.1":
version "29.3.1"
@@ -647,6 +673,18 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
+"@jest/types@^29.4.2":
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82"
+ integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==
+ dependencies:
+ "@jest/schemas" "^29.4.2"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
@@ -839,19 +877,24 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f"
integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==
-"@sinonjs/commons@^1.7.0":
- version "1.8.6"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
- integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==
+"@sinclair/typebox@^0.25.16":
+ version "0.25.21"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272"
+ integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==
+
+"@sinonjs/commons@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3"
+ integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==
dependencies:
type-detect "4.0.8"
-"@sinonjs/fake-timers@^9.1.2":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c"
- integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.0.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c"
+ integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==
dependencies:
- "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/commons" "^2.0.0"
"@socket.io/component-emitter@~3.1.0":
version "3.1.0"
@@ -873,6 +916,49 @@
remark "^13.0.0"
unist-util-find-all-after "^3.0.2"
+"@testing-library/dom@^8.0.0":
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6"
+ integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/runtime" "^7.12.5"
+ "@types/aria-query" "^5.0.1"
+ aria-query "^5.0.0"
+ chalk "^4.1.0"
+ dom-accessibility-api "^0.5.9"
+ lz-string "^1.4.4"
+ pretty-format "^27.0.2"
+
+"@testing-library/jest-dom@^5.16.5":
+ version "5.16.5"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e"
+ integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==
+ dependencies:
+ "@adobe/css-tools" "^4.0.1"
+ "@babel/runtime" "^7.9.2"
+ "@types/testing-library__jest-dom" "^5.9.1"
+ aria-query "^5.0.0"
+ chalk "^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@12.1.5":
+ version "12.1.5"
+ resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b"
+ integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@testing-library/dom" "^8.0.0"
+ "@types/react-dom" "<18.0.0"
+
+"@testing-library/user-event@^14.4.3":
+ version "14.4.3"
+ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591"
+ integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -908,6 +994,11 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
+"@types/aria-query@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc"
+ integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==
+
"@types/babel__core@^7.1.14":
version "7.1.20"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359"
@@ -1012,10 +1103,10 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@types/jest@^29.2.3":
- version "29.2.3"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.3.tgz#f5fd88e43e5a9e4221ca361e23790d48fcf0a211"
- integrity sha512-6XwoEbmatfyoCjWRX7z0fKMmgYKe9+/HrviJ5k0X/tjJWHGAezZOfYaxqQKuzG/TvQyr+ktjm4jgbk0s4/oF2w==
+"@types/jest@*", "@types/jest@29.4.0":
+ version "29.4.0"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206"
+ integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==
dependencies:
expect "^29.0.0"
pretty-format "^29.0.0"
@@ -1081,6 +1172,13 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+"@types/react-dom@<18.0.0":
+ version "17.0.18"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.18.tgz#8f7af38f5d9b42f79162eea7492e5a1caff70dc2"
+ integrity sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==
+ dependencies:
+ "@types/react" "^17"
+
"@types/react-dom@^18.0.6":
version "18.0.9"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.9.tgz#ffee5e4bfc2a2f8774b15496474f8e7fe8d0b504"
@@ -1104,6 +1202,15 @@
"@types/scheduler" "*"
csstype "^3.0.2"
+"@types/react@^17":
+ version "17.0.53"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab"
+ integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -1126,6 +1233,13 @@
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+"@types/testing-library__jest-dom@^5.9.1":
+ version "5.14.5"
+ resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f"
+ integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==
+ dependencies:
+ "@types/jest" "*"
+
"@types/tough-cookie@*":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
@@ -1428,6 +1542,13 @@ aria-query@^4.2.2:
"@babel/runtime" "^7.10.2"
"@babel/runtime-corejs3" "^7.10.2"
+aria-query@^5.0.0:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
+ integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+ dependencies:
+ deep-equal "^2.0.5"
+
array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6:
version "3.1.6"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
@@ -1532,6 +1653,11 @@ autoprefixer@^9.8.6:
postcss "^7.0.32"
postcss-value-parser "^4.1.0"
+available-typed-arrays@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
+ integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -1566,15 +1692,15 @@ axobject-query@^2.2.0:
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
-babel-jest@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44"
- integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==
+babel-jest@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6"
+ integrity sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ==
dependencies:
- "@jest/transform" "^29.3.1"
+ "@jest/transform" "^29.4.2"
"@types/babel__core" "^7.1.14"
babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.2.0"
+ babel-preset-jest "^29.4.2"
chalk "^4.0.0"
graceful-fs "^4.2.9"
slash "^3.0.0"
@@ -1590,10 +1716,10 @@ babel-plugin-istanbul@^6.1.1:
istanbul-lib-instrument "^5.0.4"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094"
- integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==
+babel-plugin-jest-hoist@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc"
+ integrity sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
@@ -1618,12 +1744,12 @@ babel-preset-current-node-syntax@^1.0.0:
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc"
- integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==
+babel-preset-jest@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38"
+ integrity sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ==
dependencies:
- babel-plugin-jest-hoist "^29.2.0"
+ babel-plugin-jest-hoist "^29.4.2"
babel-preset-current-node-syntax "^1.0.0"
bail@^1.0.0:
@@ -1987,6 +2113,14 @@ chalk@^2.0.0, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -2362,6 +2496,11 @@ css-what@^6.0.1:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+css.escape@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+ integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
+
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -2524,6 +2663,29 @@ dedent@^0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+deep-equal@^2.0.5:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6"
+ integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==
+ dependencies:
+ call-bind "^1.0.2"
+ es-get-iterator "^1.1.2"
+ get-intrinsic "^1.1.3"
+ is-arguments "^1.1.1"
+ is-array-buffer "^3.0.1"
+ is-date-object "^1.0.5"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.2"
+ isarray "^2.0.5"
+ object-is "^1.1.5"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.4.3"
+ side-channel "^1.0.4"
+ which-boxed-primitive "^1.0.2"
+ which-collection "^1.0.1"
+ which-typed-array "^1.1.9"
+
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -2597,6 +2759,11 @@ diff-sequences@^29.3.1:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e"
integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==
+diff-sequences@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda"
+ integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw==
+
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
@@ -2628,6 +2795,11 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
+ version "0.5.16"
+ resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
+ integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==
+
dom-serializer@0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
@@ -2868,6 +3040,21 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
string.prototype.trimstart "^1.0.5"
unbox-primitive "^1.0.2"
+es-get-iterator@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
+ integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.3"
+ has-symbols "^1.0.3"
+ is-arguments "^1.1.1"
+ is-map "^2.0.2"
+ is-set "^2.0.2"
+ is-string "^1.0.7"
+ isarray "^2.0.5"
+ stop-iteration-iterator "^1.0.0"
+
es-shim-unscopables@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
@@ -3224,7 +3411,7 @@ expand-template@^2.0.3:
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
-expect@^29.0.0, expect@^29.3.1:
+expect@^29.0.0:
version "29.3.1"
resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6"
integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==
@@ -3235,6 +3422,17 @@ expect@^29.0.0, expect@^29.3.1:
jest-message-util "^29.3.1"
jest-util "^29.3.1"
+expect@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.2.tgz#2ae34eb88de797c64a1541ad0f1e2ea8a7a7b492"
+ integrity sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ==
+ dependencies:
+ "@jest/expect-utils" "^29.4.2"
+ jest-get-type "^29.4.2"
+ jest-matcher-utils "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-util "^29.4.2"
+
extend@^3.0.0, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
@@ -3366,6 +3564,13 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -3494,6 +3699,15 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@
has "^1.0.3"
has-symbols "^1.0.3"
+get-intrinsic@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
+ integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.3"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -3628,6 +3842,13 @@ gonzales-pe@^4.3.0:
dependencies:
minimist "^1.2.5"
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.9:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
@@ -4009,6 +4230,15 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
+internal-slot@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
+ integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
+ dependencies:
+ get-intrinsic "^1.2.0"
+ has "^1.0.3"
+ side-channel "^1.0.4"
+
ip@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
@@ -4027,6 +4257,23 @@ is-alphanumerical@^1.0.0:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
+is-arguments@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+ integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-array-buffer@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a"
+ integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.3"
+ is-typed-array "^1.1.10"
+
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -4066,7 +4313,7 @@ is-builtin-module@^3.1.0:
dependencies:
builtin-modules "^3.3.0"
-is-callable@^1.1.4, is-callable@^1.2.7:
+is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
@@ -4078,7 +4325,7 @@ is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0:
dependencies:
has "^1.0.3"
-is-date-object@^1.0.1:
+is-date-object@^1.0.1, is-date-object@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -4144,6 +4391,11 @@ is-lambda@^1.0.1:
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+is-map@^2.0.1, is-map@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
+ integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
+
is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
@@ -4218,6 +4470,11 @@ is-regexp@^2.0.0:
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
+is-set@^2.0.1, is-set@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
+ integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
+
is-shared-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
@@ -4249,6 +4506,17 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
+is-typed-array@^1.1.10:
+ version "1.1.10"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
+ integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -4259,6 +4527,11 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+is-weakmap@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
+ integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
+
is-weakref@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@@ -4266,6 +4539,14 @@ is-weakref@^1.0.2:
dependencies:
call-bind "^1.0.2"
+is-weakset@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
+ integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.1"
+
is-wsl@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
@@ -4278,6 +4559,11 @@ is-wsl@^2.2.0:
dependencies:
is-docker "^2.0.0"
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -4335,82 +4621,82 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-jest-changed-files@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289"
- integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==
+jest-changed-files@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376"
+ integrity sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw==
dependencies:
execa "^5.0.0"
p-limit "^3.1.0"
-jest-circus@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a"
- integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==
+jest-circus@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.2.tgz#2d00c04baefd0ee2a277014cd494d4b5970663ed"
+ integrity sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/expect" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/environment" "^29.4.2"
+ "@jest/expect" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
is-generator-fn "^2.0.0"
- jest-each "^29.3.1"
- jest-matcher-utils "^29.3.1"
- jest-message-util "^29.3.1"
- jest-runtime "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
+ jest-each "^29.4.2"
+ jest-matcher-utils "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-runtime "^29.4.2"
+ jest-snapshot "^29.4.2"
+ jest-util "^29.4.2"
p-limit "^3.1.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.4.2"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-cli@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d"
- integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==
+jest-cli@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.2.tgz#94a2f913a0a7a49d11bee98ad88bf48baae941f4"
+ integrity sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q==
dependencies:
- "@jest/core" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/core" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/types" "^29.4.2"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
import-local "^3.0.2"
- jest-config "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-config "^29.4.2"
+ jest-util "^29.4.2"
+ jest-validate "^29.4.2"
prompts "^2.0.1"
yargs "^17.3.1"
-jest-config@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6"
- integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==
+jest-config@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.2.tgz#15386dd9ed2f7059516915515f786b8836a98f07"
+ integrity sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.3.1"
- "@jest/types" "^29.3.1"
- babel-jest "^29.3.1"
+ "@jest/test-sequencer" "^29.4.2"
+ "@jest/types" "^29.4.2"
+ babel-jest "^29.4.2"
chalk "^4.0.0"
ci-info "^3.2.0"
deepmerge "^4.2.2"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-circus "^29.3.1"
- jest-environment-node "^29.3.1"
- jest-get-type "^29.2.0"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-runner "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-circus "^29.4.2"
+ jest-environment-node "^29.4.2"
+ jest-get-type "^29.4.2"
+ jest-regex-util "^29.4.2"
+ jest-resolve "^29.4.2"
+ jest-runner "^29.4.2"
+ jest-util "^29.4.2"
+ jest-validate "^29.4.2"
micromatch "^4.0.4"
parse-json "^5.2.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.4.2"
slash "^3.0.0"
strip-json-comments "^3.1.1"
@@ -4424,81 +4710,96 @@ jest-diff@^29.3.1:
jest-get-type "^29.2.0"
pretty-format "^29.3.1"
-jest-docblock@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82"
- integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==
+jest-diff@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871"
+ integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g==
dependencies:
- detect-newline "^3.0.0"
+ chalk "^4.0.0"
+ diff-sequences "^29.4.2"
+ jest-get-type "^29.4.2"
+ pretty-format "^29.4.2"
-jest-each@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132"
- integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==
+jest-docblock@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.2.tgz#c78a95eedf9a24c0a6cc16cf2abdc4b8b0f2531b"
+ integrity sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag==
dependencies:
- "@jest/types" "^29.3.1"
- chalk "^4.0.0"
- jest-get-type "^29.2.0"
- jest-util "^29.3.1"
- pretty-format "^29.3.1"
+ detect-newline "^3.0.0"
-jest-environment-jsdom@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639"
- integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==
+jest-each@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.2.tgz#e1347aff1303f4c35470827a62c029d389c5d44a"
+ integrity sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/fake-timers" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.4.2"
+ chalk "^4.0.0"
+ jest-get-type "^29.4.2"
+ jest-util "^29.4.2"
+ pretty-format "^29.4.2"
+
+jest-environment-jsdom@29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz#0cf95ad846949280dd58bc91a9ca463b6b232dd8"
+ integrity sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==
+ dependencies:
+ "@jest/environment" "^29.4.2"
+ "@jest/fake-timers" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/jsdom" "^20.0.0"
"@types/node" "*"
- jest-mock "^29.3.1"
- jest-util "^29.3.1"
+ jest-mock "^29.4.2"
+ jest-util "^29.4.2"
jsdom "^20.0.0"
-jest-environment-node@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74"
- integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==
+jest-environment-node@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.2.tgz#0eab835b41e25fd0c1a72f62665fc8db08762ad2"
+ integrity sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/fake-timers" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/environment" "^29.4.2"
+ "@jest/fake-timers" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
- jest-mock "^29.3.1"
- jest-util "^29.3.1"
+ jest-mock "^29.4.2"
+ jest-util "^29.4.2"
jest-get-type@^29.2.0:
version "29.2.0"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408"
integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==
-jest-haste-map@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843"
- integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==
+jest-get-type@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe"
+ integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg==
+
+jest-haste-map@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a"
+ integrity sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw==
dependencies:
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.4.2"
"@types/graceful-fs" "^4.1.3"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.9"
- jest-regex-util "^29.2.0"
- jest-util "^29.3.1"
- jest-worker "^29.3.1"
+ jest-regex-util "^29.4.2"
+ jest-util "^29.4.2"
+ jest-worker "^29.4.2"
micromatch "^4.0.4"
walker "^1.0.8"
optionalDependencies:
fsevents "^2.3.2"
-jest-leak-detector@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518"
- integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==
+jest-leak-detector@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.2.tgz#8f05c6680e0cb46a1d577c0d3da9793bed3ea97b"
+ integrity sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA==
dependencies:
- jest-get-type "^29.2.0"
- pretty-format "^29.3.1"
+ jest-get-type "^29.4.2"
+ pretty-format "^29.4.2"
jest-matcher-utils@^29.3.1:
version "29.3.1"
@@ -4510,6 +4811,16 @@ jest-matcher-utils@^29.3.1:
jest-get-type "^29.2.0"
pretty-format "^29.3.1"
+jest-matcher-utils@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.2.tgz#08d0bf5abf242e3834bec92c7ef5071732839e85"
+ integrity sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.4.2"
+ jest-get-type "^29.4.2"
+ pretty-format "^29.4.2"
+
jest-message-util@^29.3.1:
version "29.3.1"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb"
@@ -4525,107 +4836,123 @@ jest-message-util@^29.3.1:
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e"
- integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==
+jest-message-util@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717"
+ integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==
dependencies:
- "@jest/types" "^29.3.1"
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.4.2"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.4.2"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8"
+ integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g==
+ dependencies:
+ "@jest/types" "^29.4.2"
"@types/node" "*"
- jest-util "^29.3.1"
+ jest-util "^29.4.2"
jest-pnp-resolver@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-jest-regex-util@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b"
- integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==
+jest-regex-util@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca"
+ integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig==
-jest-resolve-dependencies@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf"
- integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==
+jest-resolve-dependencies@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.2.tgz#6359db606f5967b68ca8bbe9dbc07a4306c12bf7"
+ integrity sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg==
dependencies:
- jest-regex-util "^29.2.0"
- jest-snapshot "^29.3.1"
+ jest-regex-util "^29.4.2"
+ jest-snapshot "^29.4.2"
-jest-resolve@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7"
- integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==
+jest-resolve@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.2.tgz#8831f449671d08d161fe493003f61dc9b55b808e"
+ integrity sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw==
dependencies:
chalk "^4.0.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
+ jest-haste-map "^29.4.2"
jest-pnp-resolver "^1.2.2"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-util "^29.4.2"
+ jest-validate "^29.4.2"
resolve "^1.20.0"
- resolve.exports "^1.1.0"
+ resolve.exports "^2.0.0"
slash "^3.0.0"
-jest-runner@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d"
- integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==
+jest-runner@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.2.tgz#2bcecf72303369df4ef1e6e983c22a89870d5125"
+ integrity sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg==
dependencies:
- "@jest/console" "^29.3.1"
- "@jest/environment" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.4.2"
+ "@jest/environment" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/transform" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.13.1"
graceful-fs "^4.2.9"
- jest-docblock "^29.2.0"
- jest-environment-node "^29.3.1"
- jest-haste-map "^29.3.1"
- jest-leak-detector "^29.3.1"
- jest-message-util "^29.3.1"
- jest-resolve "^29.3.1"
- jest-runtime "^29.3.1"
- jest-util "^29.3.1"
- jest-watcher "^29.3.1"
- jest-worker "^29.3.1"
+ jest-docblock "^29.4.2"
+ jest-environment-node "^29.4.2"
+ jest-haste-map "^29.4.2"
+ jest-leak-detector "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-resolve "^29.4.2"
+ jest-runtime "^29.4.2"
+ jest-util "^29.4.2"
+ jest-watcher "^29.4.2"
+ jest-worker "^29.4.2"
p-limit "^3.1.0"
source-map-support "0.5.13"
-jest-runtime@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a"
- integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==
- dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/fake-timers" "^29.3.1"
- "@jest/globals" "^29.3.1"
- "@jest/source-map" "^29.2.0"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+jest-runtime@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.2.tgz#d86b764c5b95d76cb26ed1f32644e99de5d5c134"
+ integrity sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw==
+ dependencies:
+ "@jest/environment" "^29.4.2"
+ "@jest/fake-timers" "^29.4.2"
+ "@jest/globals" "^29.4.2"
+ "@jest/source-map" "^29.4.2"
+ "@jest/test-result" "^29.4.2"
+ "@jest/transform" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
collect-v8-coverage "^1.0.0"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
- jest-message-util "^29.3.1"
- jest-mock "^29.3.1"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
+ jest-haste-map "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-mock "^29.4.2"
+ jest-regex-util "^29.4.2"
+ jest-resolve "^29.4.2"
+ jest-snapshot "^29.4.2"
+ jest-util "^29.4.2"
+ semver "^7.3.5"
slash "^3.0.0"
strip-bom "^4.0.0"
-jest-snapshot@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e"
- integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==
+jest-snapshot@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.2.tgz#ba1fb9abb279fd2c85109ff1757bc56b503bbb3a"
+ integrity sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw==
dependencies:
"@babel/core" "^7.11.6"
"@babel/generator" "^7.7.2"
@@ -4633,29 +4960,29 @@ jest-snapshot@^29.3.1:
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/expect-utils" "^29.4.2"
+ "@jest/transform" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/babel__traverse" "^7.0.6"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^29.3.1"
+ expect "^29.4.2"
graceful-fs "^4.2.9"
- jest-diff "^29.3.1"
- jest-get-type "^29.2.0"
- jest-haste-map "^29.3.1"
- jest-matcher-utils "^29.3.1"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
+ jest-diff "^29.4.2"
+ jest-get-type "^29.4.2"
+ jest-haste-map "^29.4.2"
+ jest-matcher-utils "^29.4.2"
+ jest-message-util "^29.4.2"
+ jest-util "^29.4.2"
natural-compare "^1.4.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.4.2"
semver "^7.3.5"
-jest-transform-css@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/jest-transform-css/-/jest-transform-css-6.0.0.tgz#f00856827fdcf5ce4e2dbc0f28a297090cae8d8c"
- integrity sha512-63CaM2uT3SrhcniNJvt5bl/uHFfP81f7jLF6hy2yrhAHMfj94WrAg7kOf4JN+vj3NYfnfI542tIvpBTJkHxf6Q==
+jest-transform-css@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/jest-transform-css/-/jest-transform-css-6.0.1.tgz#95c579c98945734439c1f243b9843d5f477a9c60"
+ integrity sha512-i78Pi2MW6vcdsUFSRx1kPbjbEIO0pBWwh1Y+PcDrLwTv/6e5p7fzsV/gxFW/SYMHS8DUvMdRVTwVCkA/y+t0iQ==
dependencies:
common-tags "1.8.2"
cross-spawn "7.0.3"
@@ -4675,30 +5002,42 @@ jest-util@^29.0.0, jest-util@^29.3.1:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a"
- integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==
+jest-util@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2"
+ integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==
dependencies:
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.4.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.2.tgz#3b3f8c4910ab9a3442d2512e2175df6b3f77b915"
+ integrity sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q==
+ dependencies:
+ "@jest/types" "^29.4.2"
camelcase "^6.2.0"
chalk "^4.0.0"
- jest-get-type "^29.2.0"
+ jest-get-type "^29.4.2"
leven "^3.1.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.4.2"
-jest-watcher@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a"
- integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==
+jest-watcher@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.2.tgz#09c0f4c9a9c7c0807fcefb1445b821c6f7953b7c"
+ integrity sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w==
dependencies:
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/test-result" "^29.4.2"
+ "@jest/types" "^29.4.2"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.13.1"
- jest-util "^29.3.1"
+ jest-util "^29.4.2"
string-length "^4.0.1"
jest-worker@^26.2.1:
@@ -4710,25 +5049,25 @@ jest-worker@^26.2.1:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest-worker@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b"
- integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==
+jest-worker@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f"
+ integrity sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw==
dependencies:
"@types/node" "*"
- jest-util "^29.3.1"
+ jest-util "^29.4.2"
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122"
- integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==
+jest@29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.2.tgz#4c2127d03a71dc187f386156ef155dbf323fb7be"
+ integrity sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg==
dependencies:
- "@jest/core" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/core" "^29.4.2"
+ "@jest/types" "^29.4.2"
import-local "^3.0.2"
- jest-cli "^29.3.1"
+ jest-cli "^29.4.2"
js-sdsl@^4.1.4:
version "4.1.5"
@@ -4844,6 +5183,11 @@ json5@^2.2.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
+json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
jsonfile@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
@@ -5041,7 +5385,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
-lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.21:
+lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -5083,6 +5427,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lz-string@^1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
+ integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==
+
magic-string@^0.25.7:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
@@ -5616,6 +5965,14 @@ object-inspect@^1.12.2, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
+object-is@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+ integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@@ -6337,6 +6694,15 @@ prettier@^2.4.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+pretty-format@^27.0.2:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+ integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
+ dependencies:
+ ansi-regex "^5.0.1"
+ ansi-styles "^5.0.0"
+ react-is "^17.0.1"
+
pretty-format@^29.0.0, pretty-format@^29.3.1:
version "29.3.1"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da"
@@ -6346,6 +6712,15 @@ pretty-format@^29.0.0, pretty-format@^29.3.1:
ansi-styles "^5.0.0"
react-is "^18.0.0"
+pretty-format@^29.4.2:
+ version "29.4.2"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401"
+ integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==
+ dependencies:
+ "@jest/schemas" "^29.4.2"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
prettycli@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/prettycli/-/prettycli-1.4.3.tgz#b28ec2aad9de07ae1fd75ef294fb54cbdee07ed5"
@@ -6483,26 +6858,21 @@ react-dom@16.14.0:
prop-types "^15.6.2"
scheduler "^0.19.1"
-react-is@^16.13.1, react-is@^16.8.6:
+react-is@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-is@^17.0.1:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
react-is@^18.0.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-react-test-renderer@16.14.0:
- version "16.14.0"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae"
- integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==
- dependencies:
- object-assign "^4.1.1"
- prop-types "^15.6.2"
- react-is "^16.8.6"
- scheduler "^0.19.1"
-
react@16.14.0:
version "16.14.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
@@ -6576,7 +6946,7 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
-regenerator-runtime@^0.13.10:
+regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.11:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
@@ -6686,10 +7056,10 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-resolve.exports@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9"
- integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
+resolve.exports@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e"
+ integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==
resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0:
version "1.22.1"
@@ -7279,6 +7649,13 @@ statuses@~1.4.0:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
+stop-iteration-iterator@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
+ integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
+ dependencies:
+ internal-slot "^1.0.4"
+
stream-throttle@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3"
@@ -7741,15 +8118,15 @@ trough@^1.0.0:
resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406"
integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==
-ts-jest@^29.0.3:
- version "29.0.3"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.3.tgz#63ea93c5401ab73595440733cefdba31fcf9cb77"
- integrity sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==
+ts-jest@29.0.5:
+ version "29.0.5"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066"
+ integrity sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==
dependencies:
bs-logger "0.x"
fast-json-stable-stringify "2.x"
jest-util "^29.0.0"
- json5 "^2.2.1"
+ json5 "^2.2.3"
lodash.memoize "4.x"
make-error "1.x"
semver "7.x"
@@ -7864,7 +8241,12 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typescript@^4.6.2, typescript@^4.8.4:
+typescript@4.9.5:
+ version "4.9.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+
+typescript@^4.6.2:
version "4.9.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db"
integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==
@@ -8098,11 +8480,33 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
+which-collection@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
+ integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
+ dependencies:
+ is-map "^2.0.1"
+ is-set "^2.0.1"
+ is-weakmap "^2.0.1"
+ is-weakset "^2.0.1"
+
which-pm-runs@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35"
integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==
+which-typed-array@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
+ integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+ is-typed-array "^1.1.10"
+
which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -8169,7 +8573,7 @@ write-file-atomic@^3.0.3:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
-write-file-atomic@^4.0.1:
+write-file-atomic@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
From 8be9ec543130d8c1a298dc35a98f851840e83975 Mon Sep 17 00:00:00 2001
From: Daniel Barion
Date: Wed, 15 Feb 2023 14:43:59 -0300
Subject: [PATCH 4/7] test: refactor tests with testing-library and jest
---
src/test/__snapshots__/index.spec.js.snap | 105 --------
.../tooltip-wrapper.spec.js.snap | 28 +++
src/test/__snapshots__/tooltip.spec.js.snap | 122 +++++++++
src/test/index.spec.js | 231 ------------------
src/test/tooltip-wrapper.spec.js | 35 +++
src/test/tooltip.spec.js | 149 +++++++++++
src/test/utils.spec.js | 93 +++++++
7 files changed, 427 insertions(+), 336 deletions(-)
delete mode 100644 src/test/__snapshots__/index.spec.js.snap
create mode 100644 src/test/__snapshots__/tooltip-wrapper.spec.js.snap
create mode 100644 src/test/__snapshots__/tooltip.spec.js.snap
delete mode 100644 src/test/index.spec.js
create mode 100644 src/test/tooltip-wrapper.spec.js
create mode 100644 src/test/tooltip.spec.js
create mode 100644 src/test/utils.spec.js
diff --git a/src/test/__snapshots__/index.spec.js.snap b/src/test/__snapshots__/index.spec.js.snap
deleted file mode 100644
index 8274eb8e..00000000
--- a/src/test/__snapshots__/index.spec.js.snap
+++ /dev/null
@@ -1,105 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`tooltip attributes basic tooltip component 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip attributes tooltip component - delayHide 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip attributes tooltip component - delayShow 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip attributes tooltip component - html 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip attributes tooltip component - without anchorId 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props basic tooltip component 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - delayHide 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - delayShow 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - getContent 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - html 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - position props 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - without anchorId 1`] = `
-
- Lorem Ipsum
-
-`;
-
-exports[`tooltip props tooltip component - without element reference 1`] = `null`;
\ No newline at end of file
diff --git a/src/test/__snapshots__/tooltip-wrapper.spec.js.snap b/src/test/__snapshots__/tooltip-wrapper.spec.js.snap
new file mode 100644
index 00000000..b4fc9047
--- /dev/null
+++ b/src/test/__snapshots__/tooltip-wrapper.spec.js.snap
@@ -0,0 +1,28 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`tooltip props basic tooltip component 1`] = `
+
+`;
diff --git a/src/test/__snapshots__/tooltip.spec.js.snap b/src/test/__snapshots__/tooltip.spec.js.snap
new file mode 100644
index 00000000..25cfc47d
--- /dev/null
+++ b/src/test/__snapshots__/tooltip.spec.js.snap
@@ -0,0 +1,122 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`tooltip attributes basic tooltip component 1`] = `
+
+`;
+
+exports[`tooltip attributes tooltip component - without element reference 1`] = `
+
+
+ Lorem Ipsum
+
+
+`;
+
+exports[`tooltip attributes tooltip component with place 1`] = `
+
+`;
+
+exports[`tooltip props basic tooltip component 1`] = `
+
+`;
+
+exports[`tooltip props tooltip component - without element reference 1`] = `
+
+
+ Lorem Ipsum
+
+
+`;
+
+exports[`tooltip props tooltip component with html 1`] = `
+
+`;
+
+exports[`tooltip props tooltip component with place 1`] = `
+
+`;
diff --git a/src/test/index.spec.js b/src/test/index.spec.js
deleted file mode 100644
index 212bc65d..00000000
--- a/src/test/index.spec.js
+++ /dev/null
@@ -1,231 +0,0 @@
-import renderer from 'react-test-renderer'
-import debounce from 'utils/debounce'
-import { computeTooltipPosition } from 'utils/compute-positions'
-import { TooltipController as Tooltip } from '../components/TooltipController'
-
-// Tell Jest to mock all timeout functions
-jest.useRealTimers()
-
-// eslint-disable-next-line react/prop-types
-const TooltipProps = ({ id, ...tooltipParams }) => (
- <>
- Lorem Ipsum
-
- >
-)
-// eslint-disable-next-line react/prop-types
-const TooltipAttrs = ({ id, ...anchorParams }) => (
- <>
-
- Lorem Ipsum
-
-
- >
-)
-
-describe('tooltip props', () => {
- test('tooltip component - without anchorId', () => {
- const component = renderer.create()
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - without element reference', () => {
- const component = renderer.create()
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('basic tooltip component', () => {
- const component = renderer.create()
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - html', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - getContent', () => {
- const component = renderer.create(
- `${value} Manipuled!`}
- variant="info"
- place="top"
- />,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - delayShow', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - delayHide', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - position props', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-})
-
-describe('tooltip attributes', () => {
- test('tooltip component - without anchorId', () => {
- const component = renderer.create()
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('basic tooltip component', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - html', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - delayShow', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-
- test('tooltip component - delayHide', () => {
- const component = renderer.create(
- ,
- )
- const tree = component.toJSON()
- expect(tree).toMatchSnapshot()
- })
-})
-
-describe('compute positions', () => {
- test('empty reference elements', async () => {
- const value = await computeTooltipPosition({
- elementReference: null,
- tooltipReference: null,
- tooltipArrowReference: null,
- })
-
- expect(value).toEqual({ tooltipStyles: {}, tooltipArrowStyles: {} })
- })
-
- test('empty tooltip reference element', async () => {
- const element = document.createElement('div')
- const value = await computeTooltipPosition({
- elementReference: element,
- tooltipReference: null,
- tooltipArrowReference: null,
- })
-
- expect(value).toEqual({ tooltipStyles: {}, tooltipArrowStyles: {} })
- })
-
- test('empty tooltip arrow reference element', async () => {
- const element = document.createElement('div')
- const elementTooltip = document.createElement('div')
- const value = await computeTooltipPosition({
- elementReference: element,
- tooltipReference: elementTooltip,
- tooltipArrowReference: null,
- })
-
- expect(value).toEqual({
- tooltipArrowStyles: {},
- tooltipStyles: {
- left: '5px',
- top: '10px',
- },
- })
- })
-
- test('all reference elements', async () => {
- const element = document.createElement('div')
- const elementTooltip = document.createElement('div')
- const elementTooltipArrow = document.createElement('div')
- const value = await computeTooltipPosition({
- elementReference: element,
- tooltipReference: elementTooltip,
- tooltipArrowReference: elementTooltipArrow,
- })
-
- expect(value).toEqual({
- tooltipArrowStyles: {
- bottom: '-4px',
- left: '5px',
- right: '',
- top: '',
- },
- tooltipStyles: {
- left: '5px',
- top: '-10px',
- },
- })
- })
-})
-
-describe('debounce', () => {
- jest.useFakeTimers()
-
- let func
- let debouncedFunc
-
- beforeEach((timeout = 1000) => {
- func = jest.fn()
- debouncedFunc = debounce(func, timeout)
- })
-
- test('execute just once', () => {
- for (let i = 0; i < 100; i += 1) {
- debouncedFunc()
- }
-
- // Fast-forward time
- jest.runAllTimers()
-
- expect(func).toBeCalledTimes(1)
- })
-})
diff --git a/src/test/tooltip-wrapper.spec.js b/src/test/tooltip-wrapper.spec.js
new file mode 100644
index 00000000..439b0e14
--- /dev/null
+++ b/src/test/tooltip-wrapper.spec.js
@@ -0,0 +1,35 @@
+import { render, screen, waitFor } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+import '@testing-library/jest-dom'
+import { TooltipController as Tooltip } from '../components/TooltipController'
+import { TooltipProvider, TooltipWrapper } from '../components/TooltipProvider'
+
+// Tell Jest to mock all timeout functions
+jest.useRealTimers()
+
+describe('tooltip props', () => {
+ test('basic tooltip component', async () => {
+ const { container } = render(
+
+
+
+
+
+
+
+ ,
+ )
+ const anchorElement = screen.getByText('Minimal 1')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+})
diff --git a/src/test/tooltip.spec.js b/src/test/tooltip.spec.js
new file mode 100644
index 00000000..4a70ef3d
--- /dev/null
+++ b/src/test/tooltip.spec.js
@@ -0,0 +1,149 @@
+import { render, screen, waitFor } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+import '@testing-library/jest-dom'
+import { TooltipController as Tooltip } from '../components/TooltipController'
+
+// Tell Jest to mock all timeout functions
+jest.useRealTimers()
+
+// eslint-disable-next-line react/prop-types
+const TooltipProps = ({ id, ...tooltipParams }) => (
+ <>
+ Lorem Ipsum
+
+ >
+)
+// eslint-disable-next-line react/prop-types
+const TooltipAttrs = ({ id, ...anchorParams }) => (
+ <>
+
+ Lorem Ipsum
+
+
+ >
+)
+
+describe('tooltip props', () => {
+ test('tooltip component - without element reference', async () => {
+ const { container } = render()
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ await waitFor(() => {
+ expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ })
+
+ expect(container).toMatchSnapshot()
+ })
+
+ test('basic tooltip component', async () => {
+ const { container } = render()
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+
+ test('tooltip component with place', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+
+ test('tooltip component with html', async () => {
+ const { container } = render()
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+})
+
+describe('tooltip attributes', () => {
+ test('tooltip component - without element reference', async () => {
+ const { container } = render()
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ await waitFor(() => {
+ expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ })
+
+ expect(container).toMatchSnapshot()
+ })
+
+ test('basic tooltip component', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(anchorElement).toHaveAttribute('data-tooltip-content')
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+
+ test('tooltip component with place', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(anchorElement).toHaveAttribute('data-tooltip-place')
+ expect(anchorElement).toHaveAttribute('data-tooltip-content')
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+})
diff --git a/src/test/utils.spec.js b/src/test/utils.spec.js
new file mode 100644
index 00000000..1f37a885
--- /dev/null
+++ b/src/test/utils.spec.js
@@ -0,0 +1,93 @@
+import debounce from 'utils/debounce'
+import { computeTooltipPosition } from 'utils/compute-positions'
+
+// Tell Jest to mock all timeout functions
+jest.useRealTimers()
+
+describe('compute positions', () => {
+ test('empty reference elements', async () => {
+ const value = await computeTooltipPosition({
+ elementReference: null,
+ tooltipReference: null,
+ tooltipArrowReference: null,
+ })
+
+ expect(value).toEqual({ tooltipStyles: {}, tooltipArrowStyles: {} })
+ })
+
+ test('empty tooltip reference element', async () => {
+ const element = document.createElement('div')
+ const value = await computeTooltipPosition({
+ elementReference: element,
+ tooltipReference: null,
+ tooltipArrowReference: null,
+ })
+
+ expect(value).toEqual({ tooltipStyles: {}, tooltipArrowStyles: {} })
+ })
+
+ test('empty tooltip arrow reference element', async () => {
+ const element = document.createElement('div')
+ const elementTooltip = document.createElement('div')
+ const value = await computeTooltipPosition({
+ elementReference: element,
+ tooltipReference: elementTooltip,
+ tooltipArrowReference: null,
+ })
+
+ expect(value).toEqual({
+ tooltipArrowStyles: {},
+ tooltipStyles: {
+ left: '5px',
+ top: '10px',
+ },
+ })
+ })
+
+ test('all reference elements', async () => {
+ const element = document.createElement('div')
+ const elementTooltip = document.createElement('div')
+ const elementTooltipArrow = document.createElement('div')
+ const value = await computeTooltipPosition({
+ elementReference: element,
+ tooltipReference: elementTooltip,
+ tooltipArrowReference: elementTooltipArrow,
+ })
+
+ expect(value).toEqual({
+ tooltipArrowStyles: {
+ bottom: '-4px',
+ left: '5px',
+ right: '',
+ top: '',
+ },
+ tooltipStyles: {
+ left: '5px',
+ top: '-10px',
+ },
+ })
+ })
+})
+
+describe('debounce', () => {
+ jest.useFakeTimers()
+
+ let func
+ let debouncedFunc
+
+ beforeEach((timeout = 1000) => {
+ func = jest.fn()
+ debouncedFunc = debounce(func, timeout)
+ })
+
+ test('execute just once', () => {
+ for (let i = 0; i < 100; i += 1) {
+ debouncedFunc()
+ }
+
+ // Fast-forward time
+ jest.runAllTimers()
+
+ expect(func).toBeCalledTimes(1)
+ })
+})
From 8399b4cb1d053cab7570be0aa22cf86e34b9c02a Mon Sep 17 00:00:00 2001
From: Daniel Barion
Date: Wed, 15 Feb 2023 15:47:22 -0300
Subject: [PATCH 5/7] test: add click test to Tooltip test suite
---
src/App.tsx | 8 ++-
src/test/__snapshots__/tooltip.spec.js.snap | 57 ++++++++++++++------
src/test/tooltip-wrapper.spec.js | 2 +-
src/test/tooltip.spec.js | 60 ++++++++++++++++-----
4 files changed, 94 insertions(+), 33 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index 8dd198ad..68639c65 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -19,7 +19,13 @@ function WithProviderMinimal() {
-
+
)
diff --git a/src/test/__snapshots__/tooltip.spec.js.snap b/src/test/__snapshots__/tooltip.spec.js.snap
index 25cfc47d..1834a042 100644
--- a/src/test/__snapshots__/tooltip.spec.js.snap
+++ b/src/test/__snapshots__/tooltip.spec.js.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`tooltip attributes basic tooltip component 1`] = `
+exports[`tooltip attributes basic tooltip 1`] = `
`;
-exports[`tooltip attributes tooltip component - without element reference 1`] = `
-
-
- Lorem Ipsum
-
-
-`;
-
-exports[`tooltip attributes tooltip component with place 1`] = `
+exports[`tooltip attributes tooltip with place 1`] = `
`;
-exports[`tooltip props basic tooltip component 1`] = `
+exports[`tooltip attributes tooltip without element reference 1`] = `
+
+
+ Lorem Ipsum
+
+
+`;
+
+exports[`tooltip props basic tooltip 1`] = `
`;
-exports[`tooltip props tooltip component - without element reference 1`] = `
+exports[`tooltip props clickable tooltip 1`] = `
`;
-exports[`tooltip props tooltip component with html 1`] = `
+exports[`tooltip props tooltip with html 1`] = `
`;
-exports[`tooltip props tooltip component with place 1`] = `
+exports[`tooltip props tooltip with place 1`] = `
`;
+
+exports[`tooltip props tooltip without element reference 1`] = `
+
+
+ Lorem Ipsum
+
+
+`;
diff --git a/src/test/tooltip-wrapper.spec.js b/src/test/tooltip-wrapper.spec.js
index 439b0e14..59428839 100644
--- a/src/test/tooltip-wrapper.spec.js
+++ b/src/test/tooltip-wrapper.spec.js
@@ -21,7 +21,7 @@ describe('tooltip props', () => {
)
const anchorElement = screen.getByText('Minimal 1')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
diff --git a/src/test/tooltip.spec.js b/src/test/tooltip.spec.js
index 4a70ef3d..9209b5a9 100644
--- a/src/test/tooltip.spec.js
+++ b/src/test/tooltip.spec.js
@@ -24,11 +24,11 @@ const TooltipAttrs = ({ id, ...anchorParams }) => (
)
describe('tooltip props', () => {
- test('tooltip component - without element reference', async () => {
+ test('tooltip without element reference', async () => {
const { container } = render()
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
await waitFor(() => {
expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
@@ -38,11 +38,11 @@ describe('tooltip props', () => {
expect(container).toMatchSnapshot()
})
- test('basic tooltip component', async () => {
+ test('basic tooltip', async () => {
const { container } = render()
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
@@ -54,13 +54,13 @@ describe('tooltip props', () => {
expect(container).toMatchSnapshot()
})
- test('tooltip component with place', async () => {
+ test('tooltip with place', async () => {
const { container } = render(
,
)
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
@@ -72,11 +72,11 @@ describe('tooltip props', () => {
expect(container).toMatchSnapshot()
})
- test('tooltip component with html', async () => {
+ test('tooltip with html', async () => {
const { container } = render()
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
@@ -87,14 +87,46 @@ describe('tooltip props', () => {
expect(tooltip).toBeInTheDocument()
expect(container).toMatchSnapshot()
})
+
+ test('clickable tooltip', async () => {
+ const id = 'example-clickable'
+
+ const mockCallBack = jest.fn()
+ const { container } = render(
+ <>
+ Lorem Ipsum
+
+
+
+ >,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ await userEvent.hover(anchorElement)
+
+ let tooltip = null
+ let button = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ button = screen.getByRole('button')
+ })
+
+ await userEvent.click(button)
+
+ expect(tooltip).toBeInTheDocument()
+ expect(button).toBeInTheDocument()
+ expect(mockCallBack).toHaveBeenCalled()
+ expect(container).toMatchSnapshot()
+ })
})
describe('tooltip attributes', () => {
- test('tooltip component - without element reference', async () => {
+ test('tooltip without element reference', async () => {
const { container } = render()
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
await waitFor(() => {
expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
@@ -104,13 +136,13 @@ describe('tooltip attributes', () => {
expect(container).toMatchSnapshot()
})
- test('basic tooltip component', async () => {
+ test('basic tooltip', async () => {
const { container } = render(
,
)
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
@@ -123,7 +155,7 @@ describe('tooltip attributes', () => {
expect(container).toMatchSnapshot()
})
- test('tooltip component with place', async () => {
+ test('tooltip with place', async () => {
const { container } = render(
{
)
const anchorElement = screen.getByText('Lorem Ipsum')
- userEvent.hover(anchorElement)
+ await userEvent.hover(anchorElement)
let tooltip = null
From 9102f88ccae2391913acd46afa956c470de8c97e Mon Sep 17 00:00:00 2001
From: Daniel Barion
Date: Wed, 15 Feb 2023 16:36:58 -0300
Subject: [PATCH 6/7] test: add a few tests to the Tooltip test suite
---
.../tooltip-attributes.spec.js.snap | 52 +++++++++++
...pec.js.snap => tooltip-props.spec.js.snap} | 54 ++++++++----
src/test/tooltip-attributes.spec.js | 76 ++++++++++++++++
...{tooltip.spec.js => tooltip-props.spec.js} | 86 +++++++++++++------
4 files changed, 221 insertions(+), 47 deletions(-)
create mode 100644 src/test/__snapshots__/tooltip-attributes.spec.js.snap
rename src/test/__snapshots__/{tooltip.spec.js.snap => tooltip-props.spec.js.snap} (77%)
create mode 100644 src/test/tooltip-attributes.spec.js
rename src/test/{tooltip.spec.js => tooltip-props.spec.js} (72%)
diff --git a/src/test/__snapshots__/tooltip-attributes.spec.js.snap b/src/test/__snapshots__/tooltip-attributes.spec.js.snap
new file mode 100644
index 00000000..848cdcf6
--- /dev/null
+++ b/src/test/__snapshots__/tooltip-attributes.spec.js.snap
@@ -0,0 +1,52 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`tooltip attributes basic tooltip 1`] = `
+
+`;
+
+exports[`tooltip attributes tooltip with place 1`] = `
+
+`;
+
+exports[`tooltip attributes tooltip without element reference 1`] = `
+
+
+ Lorem Ipsum
+
+
+`;
diff --git a/src/test/__snapshots__/tooltip.spec.js.snap b/src/test/__snapshots__/tooltip-props.spec.js.snap
similarity index 77%
rename from src/test/__snapshots__/tooltip.spec.js.snap
rename to src/test/__snapshots__/tooltip-props.spec.js.snap
index 1834a042..03fb4c21 100644
--- a/src/test/__snapshots__/tooltip.spec.js.snap
+++ b/src/test/__snapshots__/tooltip-props.spec.js.snap
@@ -1,10 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`tooltip attributes basic tooltip 1`] = `
+exports[`tooltip props basic tooltip 1`] = `
Lorem Ipsum
@@ -20,12 +19,33 @@ exports[`tooltip attributes basic tooltip 1`] = `
`;
-exports[`tooltip attributes tooltip with place 1`] = `
+exports[`tooltip props clickable tooltip 1`] = `
+
+`;
+
+exports[`tooltip props tooltip with custom position 1`] = `
Lorem Ipsum
@@ -41,20 +61,20 @@ exports[`tooltip attributes tooltip with place 1`] = `
`;
-exports[`tooltip attributes tooltip without element reference 1`] = `
+exports[`tooltip props tooltip with delay hide 1`] = `
Lorem Ipsum
`;
-exports[`tooltip props basic tooltip 1`] = `
+exports[`tooltip props tooltip with delay show 1`] = `
Lorem Ipsum
@@ -70,24 +90,20 @@ exports[`tooltip props basic tooltip 1`] = `
`;
-exports[`tooltip props clickable tooltip 1`] = `
+exports[`tooltip props tooltip with float 1`] = `
diff --git a/src/test/tooltip-attributes.spec.js b/src/test/tooltip-attributes.spec.js
new file mode 100644
index 00000000..298dda82
--- /dev/null
+++ b/src/test/tooltip-attributes.spec.js
@@ -0,0 +1,76 @@
+import { render, screen, waitFor } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+import '@testing-library/jest-dom'
+import { TooltipController as Tooltip } from '../components/TooltipController'
+
+// Tell Jest to mock all timeout functions
+jest.useRealTimers()
+
+// eslint-disable-next-line react/prop-types
+const TooltipAttrs = ({ id, ...anchorParams }) => (
+ <>
+
+ Lorem Ipsum
+
+
+ >
+)
+
+describe('tooltip attributes', () => {
+ test('tooltip without element reference', async () => {
+ const { container } = render()
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ await userEvent.hover(anchorElement)
+
+ await waitFor(() => {
+ expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ })
+
+ expect(container).toMatchSnapshot()
+ })
+
+ test('basic tooltip', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ await userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(anchorElement).toHaveAttribute('data-tooltip-content')
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+
+ test('tooltip with place', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ await userEvent.hover(anchorElement)
+
+ let tooltip = null
+
+ await waitFor(() => {
+ tooltip = screen.getByRole('tooltip')
+ })
+
+ expect(anchorElement).toHaveAttribute('data-tooltip-place')
+ expect(anchorElement).toHaveAttribute('data-tooltip-content')
+ expect(tooltip).toBeInTheDocument()
+ expect(container).toMatchSnapshot()
+ })
+})
diff --git a/src/test/tooltip.spec.js b/src/test/tooltip-props.spec.js
similarity index 72%
rename from src/test/tooltip.spec.js
rename to src/test/tooltip-props.spec.js
index 9209b5a9..ef71d5af 100644
--- a/src/test/tooltip.spec.js
+++ b/src/test/tooltip-props.spec.js
@@ -13,15 +13,6 @@ const TooltipProps = ({ id, ...tooltipParams }) => (
>
)
-// eslint-disable-next-line react/prop-types
-const TooltipAttrs = ({ id, ...anchorParams }) => (
- <>
-
- Lorem Ipsum
-
-
- >
-)
describe('tooltip props', () => {
test('tooltip without element reference', async () => {
@@ -119,26 +110,74 @@ describe('tooltip props', () => {
expect(mockCallBack).toHaveBeenCalled()
expect(container).toMatchSnapshot()
})
-})
-describe('tooltip attributes', () => {
- test('tooltip without element reference', async () => {
- const { container } = render()
+ test('tooltip with delay show', async () => {
+ const { container } = render(
+ ,
+ )
const anchorElement = screen.getByText('Lorem Ipsum')
await userEvent.hover(anchorElement)
+ let tooltip = null
+
+ await waitFor(
+ () => {
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ },
+ {
+ timeout: 250,
+ },
+ )
+
+ await userEvent.unhover(anchorElement)
+
await waitFor(() => {
- expect(screen.queryByText('Hello World!')).not.toBeInTheDocument()
- expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ tooltip = screen.getByRole('tooltip')
})
+ expect(tooltip).toBeInTheDocument()
expect(container).toMatchSnapshot()
})
- test('basic tooltip', async () => {
+ test('tooltip with delay hide', async () => {
+ const { container } = render(
+ ,
+ )
+ const anchorElement = screen.getByText('Lorem Ipsum')
+
+ await userEvent.hover(anchorElement)
+
+ await waitFor(() => {
+ expect(screen.queryByRole('tooltip')).toBeInTheDocument()
+ })
+
+ await userEvent.unhover(anchorElement)
+
+ await waitFor(
+ () => {
+ expect(screen.queryByRole('tooltip')).toBeInTheDocument()
+ },
+ {
+ timeout: 200,
+ },
+ )
+
+ await waitFor(
+ () => {
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
+ },
+ {
+ timeout: 500,
+ },
+ )
+
+ expect(container).toMatchSnapshot()
+ })
+
+ test('tooltip with custom position', async () => {
const { container } = render(
- ,
+ ,
)
const anchorElement = screen.getByText('Lorem Ipsum')
@@ -150,19 +189,12 @@ describe('tooltip attributes', () => {
tooltip = screen.getByRole('tooltip')
})
- expect(anchorElement).toHaveAttribute('data-tooltip-content')
expect(tooltip).toBeInTheDocument()
expect(container).toMatchSnapshot()
})
- test('tooltip with place', async () => {
- const { container } = render(
- ,
- )
+ test('tooltip with float', async () => {
+ const { container } = render()
const anchorElement = screen.getByText('Lorem Ipsum')
await userEvent.hover(anchorElement)
@@ -173,8 +205,6 @@ describe('tooltip attributes', () => {
tooltip = screen.getByRole('tooltip')
})
- expect(anchorElement).toHaveAttribute('data-tooltip-place')
- expect(anchorElement).toHaveAttribute('data-tooltip-content')
expect(tooltip).toBeInTheDocument()
expect(container).toMatchSnapshot()
})
From 22535ebf26adbf6720318212e6eb1c84d7d7ddb5 Mon Sep 17 00:00:00 2001
From: gabrieljablonski
Date: Thu, 16 Feb 2023 10:52:10 -0300
Subject: [PATCH 7/7] fix: console log warning
---
src/App.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/App.tsx b/src/App.tsx
index 68639c65..820ad193 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -21,6 +21,7 @@ function WithProviderMinimal() {