This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 9a2b1a5cf7 chore(fe): uplift FE packages to latest version (#30357)
9a2b1a5cf7 is described below
commit 9a2b1a5cf77fd1a63ec47e50c385169559fbf892
Author: Đỗ Trọng Hải <[email protected]>
AuthorDate: Sat Oct 12 01:46:01 2024 +0700
chore(fe): uplift FE packages to latest version (#30357)
Signed-off-by: hainenber <[email protected]>
---
superset-frontend/jest.config.js | 2 +-
superset-frontend/package-lock.json | 455 ++++++++++++---------
superset-frontend/package.json | 8 +-
.../superset-ui-chart-controls/package.json | 6 +-
.../packages/superset-ui-core/package.json | 38 +-
.../test/chart/clients/ChartClient.test.ts | 2 +-
.../test/connection/SupersetClient.test.ts | 8 +-
.../test/connection/SupersetClientClass.test.ts | 37 +-
.../test/connection/callApi/callApi.test.ts | 78 ++--
.../callApi/callApiAndParseWithTimeout.test.ts | 13 +-
.../test/connection/callApi/parseResponse.test.ts | 14 +-
.../query/api/legacy/getDatasourceMetadata.test.ts | 4 +-
.../test/query/api/legacy/getFormData.test.ts | 4 +-
.../test/query/api/setupClientForTest.ts | 1 +
.../test/query/api/v1/getChartData.test.ts | 4 +-
.../test/query/api/v1/makeApi.test.ts | 4 +-
.../test/time-comparison/fetchTimeRange.test.ts | 20 +-
.../legacy-plugin-chart-partition/package.json | 2 +-
.../plugins/plugin-chart-table/package.json | 6 +-
superset-frontend/spec/helpers/testing-library.tsx | 2 +-
.../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx | 2 +-
.../SqlLab/components/SouthPane/SouthPane.test.tsx | 2 +-
.../AlteredSliceTag/AlteredSliceTag.test.jsx | 2 +-
.../ErrorMessage/InvalidSQLErrorMessage.test.tsx | 2 +-
.../ErrorMessage/MarshmallowErrorMessage.test.tsx | 2 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 4 +-
.../tests/CurrentCalendarFrame.test.tsx | 2 +-
.../ColumnSelectPopover.test.tsx | 2 +-
.../OAuth2ClientField.test.tsx | 2 +-
.../databases/DatabaseModal/index.test.tsx | 2 +
.../UploadDataModel/UploadDataModal.test.tsx | 6 +-
31 files changed, 402 insertions(+), 334 deletions(-)
diff --git a/superset-frontend/jest.config.js b/superset-frontend/jest.config.js
index cb1a882869..9caf67f166 100644
--- a/superset-frontend/jest.config.js
+++ b/superset-frontend/jest.config.js
@@ -56,7 +56,7 @@ module.exports = {
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
snapshotSerializers: ['@emotion/jest/enzyme-serializer'],
transformIgnorePatterns: [
-
'node_modules/(?!d3-(interpolate|color|time)|remark-gfm|markdown-table|micromark-*.|decode-named-character-reference|character-entities|mdast-util-*.|unist-util-*.|ccount|escape-string-regexp|nanoid|@rjsf/*.|sinon|echarts|zrender)',
+
'node_modules/(?!d3-(interpolate|color|time)|remark-gfm|markdown-table|micromark-*.|decode-named-character-reference|character-entities|mdast-util-*.|unist-util-*.|ccount|escape-string-regexp|nanoid|@rjsf/*.|sinon|echarts|zrender|fetch-mock)',
],
globals: {
__DEV__: true,
diff --git a/superset-frontend/package-lock.json
b/superset-frontend/package-lock.json
index 1c452cb653..533829ac9b 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -178,10 +178,10 @@
"@storybook/react-webpack5": "8.1.11",
"@svgr/webpack": "^8.1.0",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.1.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "^8.0.1",
+ "@testing-library/user-event": "^12.8.3",
"@types/classnames": "^2.2.10",
"@types/dom-to-image": "^2.6.7",
"@types/enzyme": "^3.10.18",
@@ -307,7 +307,9 @@
}
},
"node_modules/@adobe/css-tools": {
- "version": "4.3.3",
+ "version": "4.4.0",
+ "resolved":
"https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
+ "integrity":
"sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==",
"license": "MIT"
},
"node_modules/@ampproject/remapping": {
@@ -5897,6 +5899,7 @@
},
"node_modules/@jest/expect-utils": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3"
@@ -6021,6 +6024,7 @@
},
"node_modules/@jest/schemas": {
"version": "29.6.3",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@sinclair/typebox": "^0.27.8"
@@ -6194,6 +6198,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
"integrity":
"sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dev": true,
"dependencies": {
"@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -6210,6 +6215,7 @@
"version": "3.0.4",
"resolved":
"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
"integrity":
"sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
"dependencies": {
"@types/istanbul-lib-report": "*"
}
@@ -9644,6 +9650,7 @@
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
+ "dev": true,
"license": "MIT"
},
"node_modules/@sindresorhus/is": {
@@ -12906,23 +12913,21 @@
}
},
"node_modules/@testing-library/jest-dom": {
- "version": "5.17.0",
- "resolved":
"https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
- "integrity":
"sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==",
+ "version": "6.5.0",
+ "resolved":
"https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz",
+ "integrity":
"sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==",
"license": "MIT",
"dependencies": {
- "@adobe/css-tools": "^4.0.1",
- "@babel/runtime": "^7.9.2",
- "@types/testing-library__jest-dom": "^5.9.1",
+ "@adobe/css-tools": "^4.4.0",
"aria-query": "^5.0.0",
"chalk": "^3.0.0",
"css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.5.6",
- "lodash": "^4.17.15",
+ "dom-accessibility-api": "^0.6.3",
+ "lodash": "^4.17.21",
"redent": "^3.0.0"
},
"engines": {
- "node": ">=8",
+ "node": ">=14",
"npm": ">=6",
"yarn": ">=1"
}
@@ -12945,6 +12950,12 @@
"node": ">=8"
}
},
+
"node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
+ "version": "0.6.3",
+ "resolved":
"https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity":
"sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
+ "license": "MIT"
+ },
"node_modules/@testing-library/react": {
"version": "12.1.5",
"resolved":
"https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz",
@@ -12964,22 +12975,27 @@
}
},
"node_modules/@testing-library/react-hooks": {
- "version": "5.1.3",
+ "version": "8.0.1",
+ "resolved":
"https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz",
+ "integrity":
"sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.5",
- "@types/react": ">=16.9.0",
- "@types/react-dom": ">=16.9.0",
- "@types/react-test-renderer": ">=16.9.0",
- "filter-console": "^0.1.1",
"react-error-boundary": "^3.1.0"
},
+ "engines": {
+ "node": ">=12"
+ },
"peerDependencies": {
- "react": ">=16.9.0",
- "react-dom": ">=16.9.0",
- "react-test-renderer": ">=16.9.0"
+ "@types/react": "^16.9.0 || ^17.0.0",
+ "react": "^16.9.0 || ^17.0.0",
+ "react-dom": "^16.9.0 || ^17.0.0",
+ "react-test-renderer": "^16.9.0 || ^17.0.0"
},
"peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
"react-dom": {
"optional": true
},
@@ -13003,7 +13019,9 @@
}
},
"node_modules/@testing-library/user-event": {
- "version": "12.7.0",
+ "version": "12.8.3",
+ "resolved":
"https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz",
+ "integrity":
"sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.5"
@@ -13305,6 +13323,7 @@
},
"node_modules/@types/d3-interpolate": {
"version": "3.0.4",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@types/d3-color": "*"
@@ -13471,6 +13490,13 @@
"@types/node": "*"
}
},
+ "node_modules/@types/glob-to-regexp": {
+ "version": "0.4.4",
+ "resolved":
"https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz",
+ "integrity":
"sha512-nDKoaKJYbnn1MZxUY0cA1bPmmgZbg0cTq7Rh13d0KWYNOiKbqoR+2d89SnRPszGh7ROzSwZ/GOjZ4jPbmmZ6Eg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/glob/node_modules/@types/minimatch": {
"version": "5.1.2",
"dev": true,
@@ -13545,10 +13571,12 @@
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.3",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/istanbul-lib-report": {
"version": "3.0.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "*"
@@ -13565,6 +13593,7 @@
},
"node_modules/@types/jest": {
"version": "29.5.12",
+ "dev": true,
"license": "MIT",
"dependencies": {
"expect": "^29.0.0",
@@ -13573,6 +13602,7 @@
},
"node_modules/@types/jest/node_modules/ansi-styles": {
"version": "5.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -13583,6 +13613,7 @@
},
"node_modules/@types/jest/node_modules/pretty-format": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -13595,6 +13626,7 @@
},
"node_modules/@types/jest/node_modules/react-is": {
"version": "18.3.1",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/jquery": {
@@ -13831,13 +13863,6 @@
"@types/react": "*"
}
},
- "node_modules/@types/react-test-renderer": {
- "version": "17.0.1",
- "license": "MIT",
- "dependencies": {
- "@types/react": "*"
- }
- },
"node_modules/@types/react-transition-group": {
"version": "4.4.10",
"dev": true,
@@ -13918,6 +13943,7 @@
},
"node_modules/@types/rison": {
"version": "0.0.9",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/scheduler": {
@@ -13926,6 +13952,7 @@
},
"node_modules/@types/seedrandom": {
"version": "3.0.8",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/semver": {
@@ -14005,13 +14032,6 @@
"version": "1.0.8",
"license": "MIT"
},
- "node_modules/@types/testing-library__jest-dom": {
- "version": "5.9.5",
- "license": "MIT",
- "dependencies": {
- "@types/jest": "*"
- }
- },
"node_modules/@types/through": {
"version": "0.0.33",
"license": "MIT",
@@ -14125,12 +14145,14 @@
"version": "17.0.33",
"resolved":
"https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
"integrity":
"sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "dev": true,
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@types/yargs-parser": {
"version": "15.0.0",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/yauzl": {
@@ -22364,6 +22386,7 @@
},
"node_modules/diff-sequences": {
"version": "29.6.3",
+ "dev": true,
"license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -25008,6 +25031,7 @@
},
"node_modules/expect": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/expect-utils": "^29.7.0",
@@ -25852,13 +25876,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/filter-console": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/filter-obj": {
"version": "1.1.0",
"license": "MIT",
@@ -30672,6 +30689,7 @@
},
"node_modules/jest-diff": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
@@ -30685,6 +30703,7 @@
},
"node_modules/jest-diff/node_modules/ansi-styles": {
"version": "5.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -30695,6 +30714,7 @@
},
"node_modules/jest-diff/node_modules/pretty-format": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -30707,6 +30727,7 @@
},
"node_modules/jest-diff/node_modules/react-is": {
"version": "18.3.1",
+ "dev": true,
"license": "MIT"
},
"node_modules/jest-docblock": {
@@ -31686,6 +31707,7 @@
},
"node_modules/jest-get-type": {
"version": "29.6.3",
+ "dev": true,
"license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -31878,6 +31900,7 @@
},
"node_modules/jest-matcher-utils": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
@@ -31891,6 +31914,7 @@
},
"node_modules/jest-matcher-utils/node_modules/ansi-styles": {
"version": "5.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -31901,6 +31925,7 @@
},
"node_modules/jest-matcher-utils/node_modules/pretty-format": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -31913,10 +31938,12 @@
},
"node_modules/jest-matcher-utils/node_modules/react-is": {
"version": "18.3.1",
+ "dev": true,
"license": "MIT"
},
"node_modules/jest-message-util": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.12.13",
@@ -31935,10 +31962,12 @@
},
"node_modules/jest-message-util/node_modules/@types/stack-utils": {
"version": "2.0.3",
+ "dev": true,
"license": "MIT"
},
"node_modules/jest-message-util/node_modules/ansi-styles": {
"version": "5.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -31949,6 +31978,7 @@
},
"node_modules/jest-message-util/node_modules/braces": {
"version": "3.0.3",
+ "dev": true,
"license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
@@ -31959,6 +31989,7 @@
},
"node_modules/jest-message-util/node_modules/fill-range": {
"version": "7.1.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -31969,6 +32000,7 @@
},
"node_modules/jest-message-util/node_modules/is-number": {
"version": "7.0.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -31976,6 +32008,7 @@
},
"node_modules/jest-message-util/node_modules/micromatch": {
"version": "4.0.7",
+ "dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
@@ -31987,6 +32020,7 @@
},
"node_modules/jest-message-util/node_modules/pretty-format": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -31999,10 +32033,12 @@
},
"node_modules/jest-message-util/node_modules/react-is": {
"version": "18.3.1",
+ "dev": true,
"license": "MIT"
},
"node_modules/jest-message-util/node_modules/slash": {
"version": "3.0.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -32010,6 +32046,7 @@
},
"node_modules/jest-message-util/node_modules/to-regex-range": {
"version": "5.0.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
@@ -32277,6 +32314,7 @@
},
"node_modules/jest-util": {
"version": "29.7.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
@@ -32292,6 +32330,7 @@
},
"node_modules/jest-util/node_modules/ci-info": {
"version": "3.9.0",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -46572,6 +46611,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/regexparam": {
+ "version": "3.0.0",
+ "resolved":
"https://registry.npmjs.org/regexparam/-/regexparam-3.0.0.tgz",
+ "integrity":
"sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/regexpu-core": {
"version": "5.3.2",
"dev": true,
@@ -49607,6 +49656,7 @@
},
"node_modules/stack-utils": {
"version": "2.0.3",
+ "dev": true,
"license": "MIT",
"dependencies": {
"escape-string-regexp": "^2.0.0"
@@ -49617,6 +49667,7 @@
},
"node_modules/stack-utils/node_modules/escape-string-regexp": {
"version": "2.0.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -55561,10 +55612,10 @@
"@emotion/react": "^11.4.1",
"@superset-ui/core": "*",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.0.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"ace-builds": "^1.4.14",
"antd": "4.10.3",
"brace": "^0.11.1",
@@ -55580,21 +55631,7 @@
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.25.6",
- "@testing-library/react-hooks": "^5.1.3",
- "@types/d3-format": "^1.3.0",
- "@types/d3-interpolate": "^3.0.4",
- "@types/d3-scale": "^2.1.1",
- "@types/d3-time": "^3.0.3",
- "@types/d3-time-format": "^4.0.3",
- "@types/enzyme": "^3.10.18",
- "@types/fetch-mock": "^7.3.8",
"@types/json-bigint": "^1.0.4",
- "@types/lodash": "^4.17.7",
- "@types/math-expression-evaluator": "^1.3.3",
- "@types/node": "^22.5.4",
- "@types/prop-types": "^15.7.13",
- "@types/rison": "0.0.9",
- "@types/seedrandom": "^3.0.8",
"@vx/responsive": "^0.0.199",
"csstype": "^3.1.3",
"d3-format": "^1.3.2",
@@ -55604,7 +55641,7 @@
"d3-time-format": "^4.1.0",
"fetch-retry": "^6.0.0",
"jed": "^1.1.1",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.21",
"math-expression-evaluator": "^1.3.8",
"pretty-ms": "^7.0.0",
"react-error-boundary": "^1.2.5",
@@ -55620,8 +55657,21 @@
},
"devDependencies": {
"@emotion/styled": "^11.3.0",
- "fetch-mock": "^6.5.2",
- "jest-mock-console": "^1.0.0",
+ "@types/d3-format": "^1.3.0",
+ "@types/d3-interpolate": "^3.0.4",
+ "@types/d3-scale": "^2.1.1",
+ "@types/d3-time": "^3.0.3",
+ "@types/d3-time-format": "^4.0.3",
+ "@types/enzyme": "^3.10.18",
+ "@types/fetch-mock": "^7.3.8",
+ "@types/lodash": "^4.17.7",
+ "@types/math-expression-evaluator": "^1.3.3",
+ "@types/node": "^22.5.4",
+ "@types/prop-types": "^15.7.2",
+ "@types/rison": "0.0.9",
+ "@types/seedrandom": "^3.0.8",
+ "fetch-mock": "^11.1.4",
+ "jest-mock-console": "^2.0.0",
"resize-observer-polyfill": "1.5.1",
"timezone-mock": "1.3.6"
},
@@ -55630,9 +55680,10 @@
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"@types/react": "*",
"@types/react-loadable": "*",
"@types/tinycolor2": "*",
@@ -55652,70 +55703,34 @@
"node": ">=6.9.0"
}
},
- "packages/superset-ui-core/node_modules/@testing-library/react-hooks": {
- "version": "8.0.1",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.5",
- "react-error-boundary": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "@types/react": "^16.9.0 || ^17.0.0",
- "react": "^16.9.0 || ^17.0.0",
- "react-dom": "^16.9.0 || ^17.0.0",
- "react-test-renderer": "^16.9.0 || ^17.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "react-test-renderer": {
- "optional": true
- }
- }
- },
-
"packages/superset-ui-core/node_modules/@testing-library/react-hooks/node_modules/react-error-boundary":
{
- "version": "3.1.4",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.5"
- },
- "engines": {
- "node": ">=10",
- "npm": ">=6"
- },
- "peerDependencies": {
- "react": ">=16.13.1"
- }
- },
"packages/superset-ui-core/node_modules/@types/d3-format": {
"version": "1.4.2",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/@types/d3-time": {
"version": "3.0.3",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/@types/d3-time-format": {
"version": "2.3.1",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/@types/fetch-mock": {
"version": "7.3.8",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/@types/lodash": {
"version": "4.17.7",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/@types/math-expression-evaluator":
{
"version": "1.3.3",
+ "dev": true,
"license": "MIT"
},
"packages/superset-ui-core/node_modules/d3-array": {
@@ -55785,17 +55800,25 @@
}
},
"packages/superset-ui-core/node_modules/fetch-mock": {
- "version": "6.5.2",
+ "version": "11.1.4",
+ "resolved":
"https://registry.npmjs.org/fetch-mock/-/fetch-mock-11.1.4.tgz",
+ "integrity":
"sha512-Enndh1ApARgYDPfWFgfzLeSgdQVasMj6qDWDArya6quj3Z83AVGsl1YrVe8OxWVWsN7a+56RQRoGNmo9HdldAg==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "babel-polyfill": "^6.26.0",
- "glob-to-regexp": "^0.4.0",
- "path-to-regexp": "^2.2.1"
+ "@types/glob-to-regexp": "^0.4.4",
+ "dequal": "^2.0.3",
+ "glob-to-regexp": "^0.4.1",
+ "is-subset": "^0.1.1",
+ "regexparam": "^3.0.0"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-fetch": {
+ "optional": true
+ }
}
},
"packages/superset-ui-core/node_modules/jest-mock-console": {
@@ -57232,7 +57255,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
- "@testing-library/jest-dom": "^5.17.0",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
"react": "^16.13.1",
"react-dom": "^16.13.1"
@@ -57864,10 +57887,10 @@
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.0.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"@types/classnames": "*",
"@types/react": "*",
"match-sorter": "^6.3.3",
@@ -58007,7 +58030,9 @@
"dev": true
},
"@adobe/css-tools": {
- "version": "4.3.3"
+ "version": "4.4.0",
+ "resolved":
"https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
+ "integrity":
"sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ=="
},
"@ampproject/remapping": {
"version": "2.2.0",
@@ -61608,6 +61633,7 @@
},
"@jest/expect-utils": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"jest-get-type": "^29.6.3"
}
@@ -61696,6 +61722,7 @@
},
"@jest/schemas": {
"version": "29.6.3",
+ "dev": true,
"requires": {
"@sinclair/typebox": "^0.27.8"
}
@@ -61829,6 +61856,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
"integrity":
"sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dev": true,
"requires": {
"@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -61842,6 +61870,7 @@
"version": "3.0.4",
"resolved":
"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
"integrity":
"sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
"requires": {
"@types/istanbul-lib-report": "*"
}
@@ -64221,7 +64250,8 @@
}
},
"@sinclair/typebox": {
- "version": "0.27.8"
+ "version": "0.27.8",
+ "dev": true
},
"@sindresorhus/is": {
"version": "4.6.0",
@@ -65809,7 +65839,6 @@
"requires": {
"@babel/runtime": "^7.25.6",
"@emotion/styled": "^11.3.0",
- "@testing-library/react-hooks": "^5.1.3",
"@types/d3-format": "^1.3.0",
"@types/d3-interpolate": "^3.0.4",
"@types/d3-scale": "^2.1.1",
@@ -65821,7 +65850,7 @@
"@types/lodash": "^4.17.7",
"@types/math-expression-evaluator": "^1.3.3",
"@types/node": "^22.5.4",
- "@types/prop-types": "^15.7.13",
+ "@types/prop-types": "^15.7.2",
"@types/rison": "0.0.9",
"@types/seedrandom": "^3.0.8",
"@vx/responsive": "^0.0.199",
@@ -65831,11 +65860,11 @@
"d3-scale": "^3.0.0",
"d3-time": "^3.1.0",
"d3-time-format": "^4.1.0",
- "fetch-mock": "^6.5.2",
+ "fetch-mock": "^11.1.4",
"fetch-retry": "^6.0.0",
"jed": "^1.1.1",
- "jest-mock-console": "^1.0.0",
- "lodash": "^4.17.11",
+ "jest-mock-console": "^2.0.0",
+ "lodash": "^4.17.21",
"math-expression-evaluator": "^1.3.8",
"pretty-ms": "^7.0.0",
"react-error-boundary": "^1.2.5",
@@ -65860,38 +65889,29 @@
"regenerator-runtime": "^0.14.0"
}
},
- "@testing-library/react-hooks": {
- "version": "8.0.1",
- "requires": {
- "@babel/runtime": "^7.12.5",
- "react-error-boundary": "^3.1.0"
- },
- "dependencies": {
- "react-error-boundary": {
- "version": "3.1.4",
- "requires": {
- "@babel/runtime": "^7.12.5"
- }
- }
- }
- },
"@types/d3-format": {
- "version": "1.4.2"
+ "version": "1.4.2",
+ "dev": true
},
"@types/d3-time": {
- "version": "3.0.3"
+ "version": "3.0.3",
+ "dev": true
},
"@types/d3-time-format": {
- "version": "2.3.1"
+ "version": "2.3.1",
+ "dev": true
},
"@types/fetch-mock": {
- "version": "7.3.8"
+ "version": "7.3.8",
+ "dev": true
},
"@types/lodash": {
- "version": "4.17.7"
+ "version": "4.17.7",
+ "dev": true
},
"@types/math-expression-evaluator": {
- "version": "1.3.3"
+ "version": "1.3.3",
+ "dev": true
},
"d3-array": {
"version": "2.12.1",
@@ -65946,12 +65966,16 @@
"version": "5.0.0"
},
"fetch-mock": {
- "version": "6.5.2",
+ "version": "11.1.4",
+ "resolved":
"https://registry.npmjs.org/fetch-mock/-/fetch-mock-11.1.4.tgz",
+ "integrity":
"sha512-Enndh1ApARgYDPfWFgfzLeSgdQVasMj6qDWDArya6quj3Z83AVGsl1YrVe8OxWVWsN7a+56RQRoGNmo9HdldAg==",
"dev": true,
"requires": {
- "babel-polyfill": "^6.26.0",
- "glob-to-regexp": "^0.4.0",
- "path-to-regexp": "^2.2.1"
+ "@types/glob-to-regexp": "^0.4.4",
+ "dequal": "^2.0.3",
+ "glob-to-regexp": "^0.4.1",
+ "is-subset": "^0.1.1",
+ "regexparam": "^3.0.0"
}
},
"jest-mock-console": {
@@ -68603,18 +68627,16 @@
}
},
"@testing-library/jest-dom": {
- "version": "5.17.0",
- "resolved":
"https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
- "integrity":
"sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==",
+ "version": "6.5.0",
+ "resolved":
"https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz",
+ "integrity":
"sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==",
"requires": {
- "@adobe/css-tools": "^4.0.1",
- "@babel/runtime": "^7.9.2",
- "@types/testing-library__jest-dom": "^5.9.1",
+ "@adobe/css-tools": "^4.4.0",
"aria-query": "^5.0.0",
"chalk": "^3.0.0",
"css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.5.6",
- "lodash": "^4.17.15",
+ "dom-accessibility-api": "^0.6.3",
+ "lodash": "^4.17.21",
"redent": "^3.0.0"
},
"dependencies": {
@@ -68630,6 +68652,11 @@
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
+ },
+ "dom-accessibility-api": {
+ "version": "0.6.3",
+ "resolved":
"https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity":
"sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="
}
}
},
@@ -68644,13 +68671,11 @@
}
},
"@testing-library/react-hooks": {
- "version": "5.1.3",
+ "version": "8.0.1",
+ "resolved":
"https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz",
+ "integrity":
"sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==",
"requires": {
"@babel/runtime": "^7.12.5",
- "@types/react": "^16.9.53",
- "@types/react-dom": ">=16.9.0",
- "@types/react-test-renderer": ">=16.9.0",
- "filter-console": "^0.1.1",
"react-error-boundary": "^3.1.0"
},
"dependencies": {
@@ -68663,7 +68688,9 @@
}
},
"@testing-library/user-event": {
- "version": "12.7.0",
+ "version": "12.8.3",
+ "resolved":
"https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz",
+ "integrity":
"sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==",
"requires": {
"@babel/runtime": "^7.12.5"
}
@@ -68914,6 +68941,7 @@
},
"@types/d3-interpolate": {
"version": "3.0.4",
+ "dev": true,
"requires": {
"@types/d3-color": "*"
}
@@ -69060,6 +69088,12 @@
}
}
},
+ "@types/glob-to-regexp": {
+ "version": "0.4.4",
+ "resolved":
"https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz",
+ "integrity":
"sha512-nDKoaKJYbnn1MZxUY0cA1bPmmgZbg0cTq7Rh13d0KWYNOiKbqoR+2d89SnRPszGh7ROzSwZ/GOjZ4jPbmmZ6Eg==",
+ "dev": true
+ },
"@types/graceful-fs": {
"version": "4.1.3",
"dev": true,
@@ -69119,10 +69153,12 @@
}
},
"@types/istanbul-lib-coverage": {
- "version": "2.0.3"
+ "version": "2.0.3",
+ "dev": true
},
"@types/istanbul-lib-report": {
"version": "3.0.0",
+ "dev": true,
"requires": {
"@types/istanbul-lib-coverage": "*"
}
@@ -69137,16 +69173,19 @@
},
"@types/jest": {
"version": "29.5.12",
+ "dev": true,
"requires": {
"expect": "^29.0.0",
"pretty-format": "^29.0.0"
},
"dependencies": {
"ansi-styles": {
- "version": "5.2.0"
+ "version": "5.2.0",
+ "dev": true
},
"pretty-format": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -69154,7 +69193,8 @@
}
},
"react-is": {
- "version": "18.3.1"
+ "version": "18.3.1",
+ "dev": true
}
}
},
@@ -69362,12 +69402,6 @@
"@types/react": "^16.9.53"
}
},
- "@types/react-test-renderer": {
- "version": "17.0.1",
- "requires": {
- "@types/react": "^16.9.53"
- }
- },
"@types/react-transition-group": {
"version": "4.4.10",
"dev": true,
@@ -69440,13 +69474,15 @@
"dev": true
},
"@types/rison": {
- "version": "0.0.9"
+ "version": "0.0.9",
+ "dev": true
},
"@types/scheduler": {
"version": "0.16.6"
},
"@types/seedrandom": {
- "version": "3.0.8"
+ "version": "3.0.8",
+ "dev": true
},
"@types/semver": {
"version": "7.5.0",
@@ -69516,12 +69552,6 @@
"@types/tapable": {
"version": "1.0.8"
},
- "@types/testing-library__jest-dom": {
- "version": "5.9.5",
- "requires": {
- "@types/jest": "*"
- }
- },
"@types/through": {
"version": "0.0.33",
"requires": {
@@ -69610,12 +69640,14 @@
"version": "17.0.33",
"resolved":
"https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
"integrity":
"sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
"@types/yargs-parser": {
- "version": "15.0.0"
+ "version": "15.0.0",
+ "dev": true
},
"@types/yauzl": {
"version": "2.9.2",
@@ -75124,7 +75156,8 @@
"version": "1.0.5"
},
"diff-sequences": {
- "version": "29.6.3"
+ "version": "29.6.3",
+ "dev": true
},
"dir-glob": {
"version": "3.0.1",
@@ -76833,6 +76866,7 @@
},
"expect": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
@@ -77404,9 +77438,6 @@
"to-regex-range": "^2.1.0"
}
},
- "filter-console": {
- "version": "0.1.1"
- },
"filter-obj": {
"version": "1.1.0"
},
@@ -80414,6 +80445,7 @@
},
"jest-diff": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
@@ -80422,10 +80454,12 @@
},
"dependencies": {
"ansi-styles": {
- "version": "5.2.0"
+ "version": "5.2.0",
+ "dev": true
},
"pretty-format": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -80433,7 +80467,8 @@
}
},
"react-is": {
- "version": "18.3.1"
+ "version": "18.3.1",
+ "dev": true
}
}
},
@@ -81100,7 +81135,8 @@
}
},
"jest-get-type": {
- "version": "29.6.3"
+ "version": "29.6.3",
+ "dev": true
},
"jest-haste-map": {
"version": "29.7.0",
@@ -81234,6 +81270,7 @@
},
"jest-matcher-utils": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
@@ -81242,10 +81279,12 @@
},
"dependencies": {
"ansi-styles": {
- "version": "5.2.0"
+ "version": "5.2.0",
+ "dev": true
},
"pretty-format": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -81253,12 +81292,14 @@
}
},
"react-is": {
- "version": "18.3.1"
+ "version": "18.3.1",
+ "dev": true
}
}
},
"jest-message-util": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.6.3",
@@ -81272,28 +81313,34 @@
},
"dependencies": {
"@types/stack-utils": {
- "version": "2.0.3"
+ "version": "2.0.3",
+ "dev": true
},
"ansi-styles": {
- "version": "5.2.0"
+ "version": "5.2.0",
+ "dev": true
},
"braces": {
"version": "3.0.3",
+ "dev": true,
"requires": {
"fill-range": "^7.1.1"
}
},
"fill-range": {
"version": "7.1.1",
+ "dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"is-number": {
- "version": "7.0.0"
+ "version": "7.0.0",
+ "dev": true
},
"micromatch": {
"version": "4.0.7",
+ "dev": true,
"requires": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -81301,6 +81348,7 @@
},
"pretty-format": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -81308,13 +81356,16 @@
}
},
"react-is": {
- "version": "18.3.1"
+ "version": "18.3.1",
+ "dev": true
},
"slash": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "dev": true
},
"to-regex-range": {
"version": "5.0.1",
+ "dev": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -81507,6 +81558,7 @@
},
"jest-util": {
"version": "29.7.0",
+ "dev": true,
"requires": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -81517,7 +81569,8 @@
},
"dependencies": {
"ci-info": {
- "version": "3.9.0"
+ "version": "3.9.0",
+ "dev": true
}
}
},
@@ -90122,6 +90175,12 @@
"set-function-name": "^2.0.1"
}
},
+ "regexparam": {
+ "version": "3.0.0",
+ "resolved":
"https://registry.npmjs.org/regexparam/-/regexparam-3.0.0.tgz",
+ "integrity":
"sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==",
+ "dev": true
+ },
"regexpu-core": {
"version": "5.3.2",
"dev": true,
@@ -92070,12 +92129,14 @@
},
"stack-utils": {
"version": "2.0.3",
+ "dev": true,
"requires": {
"escape-string-regexp": "^2.0.0"
},
"dependencies": {
"escape-string-regexp": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "dev": true
}
}
},
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 3dee70e069..258738112c 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -244,10 +244,10 @@
"@storybook/react-webpack5": "8.1.11",
"@svgr/webpack": "^8.1.0",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.1.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "^8.0.1",
+ "@testing-library/user-event": "^12.8.3",
"@types/classnames": "^2.2.10",
"@types/dom-to-image": "^2.6.7",
"@types/enzyme": "^3.10.18",
@@ -340,7 +340,7 @@
"react-resizable": "^3.0.5",
"react-test-renderer": "^16.14.0",
"redux-mock-store": "^1.5.4",
- "sinon": "^18.0.1",
+ "sinon": "^18.0.0",
"source-map": "^0.7.4",
"source-map-support": "^0.5.21",
"speed-measure-webpack-plugin": "^1.5.0",
diff --git a/superset-frontend/packages/superset-ui-chart-controls/package.json
b/superset-frontend/packages/superset-ui-chart-controls/package.json
index c7ce78a603..3c4dc88deb 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/package.json
+++ b/superset-frontend/packages/superset-ui-chart-controls/package.json
@@ -35,10 +35,10 @@
"@emotion/react": "^11.4.1",
"@superset-ui/core": "*",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.0.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"ace-builds": "^1.4.14",
"antd": "4.10.3",
"brace": "^0.11.1",
diff --git a/superset-frontend/packages/superset-ui-core/package.json
b/superset-frontend/packages/superset-ui-core/package.json
index 27b0c6e089..e532c0e87a 100644
--- a/superset-frontend/packages/superset-ui-core/package.json
+++ b/superset-frontend/packages/superset-ui-core/package.json
@@ -25,21 +25,7 @@
],
"dependencies": {
"@babel/runtime": "^7.25.6",
- "@testing-library/react-hooks": "^5.1.3",
- "@types/d3-format": "^1.3.0",
- "@types/d3-interpolate": "^3.0.4",
- "@types/d3-scale": "^2.1.1",
- "@types/d3-time": "^3.0.3",
- "@types/d3-time-format": "^4.0.3",
- "@types/enzyme": "^3.10.18",
- "@types/fetch-mock": "^7.3.8",
"@types/json-bigint": "^1.0.4",
- "@types/lodash": "^4.17.7",
- "@types/math-expression-evaluator": "^1.3.3",
- "@types/node": "^22.5.4",
- "@types/prop-types": "^15.7.13",
- "@types/rison": "0.0.9",
- "@types/seedrandom": "^3.0.8",
"@vx/responsive": "^0.0.199",
"csstype": "^3.1.3",
"d3-format": "^1.3.2",
@@ -49,7 +35,7 @@
"d3-time-format": "^4.1.0",
"fetch-retry": "^6.0.0",
"jed": "^1.1.1",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.21",
"math-expression-evaluator": "^1.3.8",
"pretty-ms": "^7.0.0",
"react-error-boundary": "^1.2.5",
@@ -65,8 +51,21 @@
},
"devDependencies": {
"@emotion/styled": "^11.3.0",
- "fetch-mock": "^6.5.2",
- "jest-mock-console": "^1.0.0",
+ "@types/d3-format": "^1.3.0",
+ "@types/d3-interpolate": "^3.0.4",
+ "@types/d3-scale": "^2.1.1",
+ "@types/d3-time": "^3.0.3",
+ "@types/d3-time-format": "^4.0.3",
+ "@types/enzyme": "^3.10.18",
+ "@types/fetch-mock": "^7.3.8",
+ "@types/lodash": "^4.17.7",
+ "@types/math-expression-evaluator": "^1.3.3",
+ "@types/node": "^22.5.4",
+ "@types/prop-types": "^15.7.2",
+ "@types/rison": "0.0.9",
+ "@types/seedrandom": "^3.0.8",
+ "fetch-mock": "^11.1.4",
+ "jest-mock-console": "^2.0.0",
"resize-observer-polyfill": "1.5.1",
"timezone-mock": "1.3.6"
},
@@ -75,9 +74,10 @@
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"@types/react": "*",
"@types/react-loadable": "*",
"@types/tinycolor2": "*",
diff --git
a/superset-frontend/packages/superset-ui-core/test/chart/clients/ChartClient.test.ts
b/superset-frontend/packages/superset-ui-core/test/chart/clients/ChartClient.test.ts
index 9992ca9381..c82755374d 100644
---
a/superset-frontend/packages/superset-ui-core/test/chart/clients/ChartClient.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/chart/clients/ChartClient.test.ts
@@ -49,7 +49,7 @@ describe('ChartClient', () => {
chartClient = new ChartClient();
});
- afterEach(fetchMock.restore);
+ afterEach(() => fetchMock.restore());
describe('new ChartClient(config)', () => {
it('creates a client without argument', () => {
diff --git
a/superset-frontend/packages/superset-ui-core/test/connection/SupersetClient.test.ts
b/superset-frontend/packages/superset-ui-core/test/connection/SupersetClient.test.ts
index caba59f563..500c7d9564 100644
---
a/superset-frontend/packages/superset-ui-core/test/connection/SupersetClient.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/connection/SupersetClient.test.ts
@@ -22,13 +22,11 @@ import { SupersetClient, SupersetClientClass } from
'@superset-ui/core';
import { LOGIN_GLOB } from './fixtures/constants';
describe('SupersetClient', () => {
- beforeAll(() => {
- fetchMock.get(LOGIN_GLOB, { result: '' });
- });
+ beforeAll(() => fetchMock.get(LOGIN_GLOB, { result: '' }));
- afterAll(fetchMock.restore);
+ afterAll(() => fetchMock.restore());
- afterEach(SupersetClient.reset);
+ afterEach(() => SupersetClient.reset());
it('exposes reset, configure, init, get, post, postForm, isAuthenticated,
and reAuthenticate methods', () => {
expect(typeof SupersetClient.configure).toBe('function');
diff --git
a/superset-frontend/packages/superset-ui-core/test/connection/SupersetClientClass.test.ts
b/superset-frontend/packages/superset-ui-core/test/connection/SupersetClientClass.test.ts
index 56ab3f1bae..39f148f7be 100644
---
a/superset-frontend/packages/superset-ui-core/test/connection/SupersetClientClass.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/connection/SupersetClientClass.test.ts
@@ -21,11 +21,12 @@ import { SupersetClientClass, ClientConfig, CallApi } from
'@superset-ui/core';
import { LOGIN_GLOB } from './fixtures/constants';
describe('SupersetClientClass', () => {
- beforeAll(() => {
+ beforeEach(() => {
+ fetchMock.reset();
fetchMock.get(LOGIN_GLOB, { result: '' });
});
- afterAll(fetchMock.restore);
+ afterAll(() => fetchMock.restore());
describe('new SupersetClientClass()', () => {
it('fallback protocol to https when setting only host', () => {
@@ -78,11 +79,10 @@ describe('SupersetClientClass', () => {
});
describe('.init()', () => {
- afterEach(() => {
- fetchMock.reset();
- // reset
- fetchMock.get(LOGIN_GLOB, { result: 1234 }, { overwriteRoutes: true });
- });
+ beforeEach(() =>
+ fetchMock.get(LOGIN_GLOB, { result: 1234 }, { overwriteRoutes: true }),
+ );
+ afterEach(() => fetchMock.reset());
it('calls api/v1/security/csrf_token/ when init() is called if no CSRF
token is passed', async () => {
expect.assertions(1);
@@ -165,7 +165,7 @@ describe('SupersetClientClass', () => {
});
describe('.isAuthenticated()', () => {
- afterEach(fetchMock.reset);
+ afterEach(() => fetchMock.reset());
it('returns true if there is a token and false if not', async () => {
expect.assertions(2);
@@ -254,7 +254,8 @@ describe('SupersetClientClass', () => {
});
describe('requests', () => {
- afterEach(fetchMock.reset);
+ afterEach(() => fetchMock.restore());
+
const protocol = 'https:';
const host = 'host';
const mockGetEndpoint = '/get/url';
@@ -272,13 +273,15 @@ describe('SupersetClientClass', () => {
const mockTextJsonResponse = '{ "value": 9223372036854775807 }';
const mockPayload = { json: () => Promise.resolve('payload') };
- fetchMock.get(mockGetUrl, mockPayload);
- fetchMock.post(mockPostUrl, mockPayload);
- fetchMock.put(mockPutUrl, mockPayload);
- fetchMock.delete(mockDeleteUrl, mockPayload);
- fetchMock.delete(mockRequestUrl, mockPayload);
- fetchMock.get(mockTextUrl, mockTextJsonResponse);
- fetchMock.post(mockTextUrl, mockTextJsonResponse);
+ beforeEach(() => {
+ fetchMock.get(mockGetUrl, mockPayload);
+ fetchMock.post(mockPostUrl, mockPayload);
+ fetchMock.put(mockPutUrl, mockPayload);
+ fetchMock.delete(mockDeleteUrl, mockPayload);
+ fetchMock.delete(mockRequestUrl, mockPayload);
+ fetchMock.get(mockTextUrl, mockTextJsonResponse);
+ fetchMock.post(mockTextUrl, mockTextJsonResponse);
+ });
it('checks for authentication before every get and post request', async ()
=> {
expect.assertions(6);
@@ -623,6 +626,8 @@ describe('SupersetClientClass', () => {
let createElement: any;
beforeEach(async () => {
+ fetchMock.get(LOGIN_GLOB, { result: 1234 }, { overwriteRoutes: true });
+
client = new SupersetClientClass({ protocol, host });
authSpy = jest.spyOn(SupersetClientClass.prototype, 'ensureAuth');
await client.init();
diff --git
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApi.test.ts
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApi.test.ts
index 1067945a76..387b96575b 100644
---
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApi.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApi.test.ts
@@ -29,43 +29,41 @@ const corruptObject = new BadObject();
/* @ts-expect-error */
BadObject.prototype.toString = undefined;
+const mockGetUrl = '/mock/get/url';
+const mockPostUrl = '/mock/post/url';
+const mockPutUrl = '/mock/put/url';
+const mockPatchUrl = '/mock/patch/url';
+const mockCacheUrl = '/mock/cache/url';
+const mockNotFound = '/mock/notfound';
+const mockErrorUrl = '/mock/error/url';
+const mock503 = '/mock/503';
+
+const mockGetPayload = { get: 'payload' };
+const mockPostPayload = { post: 'payload' };
+const mockPutPayload = { post: 'payload' };
+const mockPatchPayload = { post: 'payload' };
+const mockCachePayload = {
+ status: 200,
+ body: 'BODY',
+ headers: { Etag: 'etag' },
+};
+const mockErrorPayload = { status: 500, statusText: 'Internal error' };
+
describe('callApi()', () => {
- beforeAll(() => {
- fetchMock.get(LOGIN_GLOB, { result: '1234' });
+ beforeAll(() => fetchMock.get(LOGIN_GLOB, { result: '1234' }));
+
+ beforeEach(() => {
+ fetchMock.get(mockGetUrl, mockGetPayload);
+ fetchMock.post(mockPostUrl, mockPostPayload);
+ fetchMock.put(mockPutUrl, mockPutPayload);
+ fetchMock.patch(mockPatchUrl, mockPatchPayload);
+ fetchMock.get(mockCacheUrl, mockCachePayload);
+ fetchMock.get(mockNotFound, { status: 404 });
+ fetchMock.get(mock503, { status: 503 });
+ fetchMock.get(mockErrorUrl, () => Promise.reject(mockErrorPayload));
});
- afterAll(fetchMock.restore);
-
- const mockGetUrl = '/mock/get/url';
- const mockPostUrl = '/mock/post/url';
- const mockPutUrl = '/mock/put/url';
- const mockPatchUrl = '/mock/patch/url';
- const mockCacheUrl = '/mock/cache/url';
- const mockNotFound = '/mock/notfound';
- const mockErrorUrl = '/mock/error/url';
- const mock503 = '/mock/503';
-
- const mockGetPayload = { get: 'payload' };
- const mockPostPayload = { post: 'payload' };
- const mockPutPayload = { post: 'payload' };
- const mockPatchPayload = { post: 'payload' };
- const mockCachePayload = {
- status: 200,
- body: 'BODY',
- headers: { Etag: 'etag' },
- };
- const mockErrorPayload = { status: 500, statusText: 'Internal error' };
-
- fetchMock.get(mockGetUrl, mockGetPayload);
- fetchMock.post(mockPostUrl, mockPostPayload);
- fetchMock.put(mockPutUrl, mockPutPayload);
- fetchMock.patch(mockPatchUrl, mockPatchPayload);
- fetchMock.get(mockCacheUrl, mockCachePayload);
- fetchMock.get(mockNotFound, { status: 404 });
- fetchMock.get(mock503, { status: 503 });
- fetchMock.get(mockErrorUrl, () => Promise.reject(mockErrorPayload));
-
- afterEach(fetchMock.reset);
+ afterEach(() => fetchMock.reset());
describe('request config', () => {
it('calls the right url with the specified method', async () => {
@@ -401,7 +399,7 @@ describe('callApi()', () => {
Object.defineProperty(constants, 'CACHE_AVAILABLE', { value: false });
const firstResponse = await callApi({ url: mockCacheUrl, method: 'GET'
});
- const calls = fetchMock.calls(mockCacheUrl);
+ let calls = fetchMock.calls(mockCacheUrl);
expect(calls).toHaveLength(1);
const firstBody = await firstResponse.text();
expect(firstBody).toEqual('BODY');
@@ -410,6 +408,7 @@ describe('callApi()', () => {
url: mockCacheUrl,
method: 'GET',
});
+ calls = fetchMock.calls(mockCacheUrl);
const fetchParams = calls[1][1] as RequestInit;
expect(calls).toHaveLength(2);
// second call should not have If-None-Match header
@@ -425,11 +424,12 @@ describe('callApi()', () => {
expect.assertions(3);
// first call sets the cache
await callApi({ url: mockCacheUrl, method: 'GET' });
- const calls = fetchMock.calls(mockCacheUrl);
+ let calls = fetchMock.calls(mockCacheUrl);
expect(calls).toHaveLength(1);
// second call sends the Etag in the If-None-Match header
await callApi({ url: mockCacheUrl, method: 'GET' });
+ calls = fetchMock.calls(mockCacheUrl);
const fetchParams = calls[1][1] as RequestInit;
const headers = { 'If-None-Match': 'etag' };
expect(calls).toHaveLength(2);
@@ -442,8 +442,7 @@ describe('callApi()', () => {
expect.assertions(3);
// first call sets the cache
await callApi({ url: mockCacheUrl, method: 'GET' });
- const calls = fetchMock.calls(mockCacheUrl);
- expect(calls).toHaveLength(1);
+ expect(fetchMock.calls(mockCacheUrl)).toHaveLength(1);
// second call reuses the cached payload on a 304
const mockCachedPayload = { status: 304 };
fetchMock.get(mockCacheUrl, mockCachedPayload, { overwriteRoutes: true
});
@@ -452,7 +451,7 @@ describe('callApi()', () => {
url: mockCacheUrl,
method: 'GET',
});
- expect(calls).toHaveLength(2);
+ expect(fetchMock.calls(mockCacheUrl)).toHaveLength(2);
const secondBody = await secondResponse.text();
expect(secondBody).toEqual('BODY');
});
@@ -641,6 +640,7 @@ describe('callApi()', () => {
it('should ignore "null" postPayload string', async () => {
expect.assertions(1);
fetchMock.post('/post-null-postpayload', {});
+ fetchMock.post('/post-formdata', {});
await callApi({
url: '/post-formdata',
method: 'POST',
diff --git
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApiAndParseWithTimeout.test.ts
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApiAndParseWithTimeout.test.ts
index 36cc95bfa1..e0bf14e6c8 100644
---
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApiAndParseWithTimeout.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/callApiAndParseWithTimeout.test.ts
@@ -27,16 +27,15 @@ import * as rejectAfterTimeout from
'../../../src/connection/callApi/rejectAfter
import { LOGIN_GLOB } from '../fixtures/constants';
+const mockGetUrl = '/mock/get/url';
+const mockGetPayload = { get: 'payload' };
+
describe('callApiAndParseWithTimeout()', () => {
- beforeAll(() => {
- fetchMock.get(LOGIN_GLOB, { result: '1234' });
- });
+ beforeAll(() => fetchMock.get(LOGIN_GLOB, { result: '1234' }));
- afterAll(fetchMock.restore);
+ beforeEach(() => fetchMock.get(mockGetUrl, mockGetPayload));
- const mockGetUrl = '/mock/get/url';
- const mockGetPayload = { get: 'payload' };
- fetchMock.get(mockGetUrl, mockGetPayload);
+ afterAll(() => fetchMock.restore());
afterEach(() => {
fetchMock.reset();
diff --git
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
index b08b5b8cb8..789910c977 100644
---
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
@@ -27,7 +27,7 @@ describe('parseResponse()', () => {
fetchMock.get(LOGIN_GLOB, { result: '1234' });
});
- afterAll(fetchMock.restore);
+ afterAll(() => fetchMock.restore());
const mockGetUrl = '/mock/get/url';
const mockPostUrl = '/mock/post/url';
@@ -38,12 +38,14 @@ describe('parseResponse()', () => {
const mockPostPayload = { post: 'payload' };
const mockErrorPayload = { status: 500, statusText: 'Internal error' };
- fetchMock.get(mockGetUrl, mockGetPayload);
- fetchMock.post(mockPostUrl, mockPostPayload);
- fetchMock.get(mockErrorUrl, () => Promise.reject(mockErrorPayload));
- fetchMock.get(mockNoParseUrl, new Response('test response'));
+ beforeEach(() => {
+ fetchMock.get(mockGetUrl, mockGetPayload);
+ fetchMock.post(mockPostUrl, mockPostPayload);
+ fetchMock.get(mockErrorUrl, () => Promise.reject(mockErrorPayload));
+ fetchMock.get(mockNoParseUrl, new Response('test response'));
+ });
- afterEach(fetchMock.reset);
+ afterEach(() => fetchMock.reset());
it('returns a Promise', () => {
const apiPromise = callApi({ url: mockGetUrl, method: 'GET' });
diff --git
a/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getDatasourceMetadata.test.ts
b/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getDatasourceMetadata.test.ts
index 91ba94083d..c5bb3fcd83 100644
---
a/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getDatasourceMetadata.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getDatasourceMetadata.test.ts
@@ -22,9 +22,9 @@ import { getDatasourceMetadata } from
'../../../../src/query/api/legacy';
import setupClientForTest from '../setupClientForTest';
describe('getFormData()', () => {
- beforeAll(setupClientForTest);
+ beforeAll(() => setupClientForTest());
- afterEach(fetchMock.restore);
+ afterEach(() => fetchMock.restore());
it('returns datasource metadata for given datasource key', () => {
const mockData = {
diff --git
a/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getFormData.test.ts
b/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getFormData.test.ts
index b5530560e3..8bb3fb2979 100644
---
a/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getFormData.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/query/api/legacy/getFormData.test.ts
@@ -22,9 +22,9 @@ import { getFormData } from
'../../../../src/query/api/legacy';
import setupClientForTest from '../setupClientForTest';
describe('getFormData()', () => {
- beforeAll(setupClientForTest);
+ beforeAll(() => setupClientForTest());
- afterEach(fetchMock.restore);
+ afterEach(() => fetchMock.restore());
const mockData = {
datasource: '1__table',
diff --git
a/superset-frontend/packages/superset-ui-core/test/query/api/setupClientForTest.ts
b/superset-frontend/packages/superset-ui-core/test/query/api/setupClientForTest.ts
index 6df7cd84f5..bc0c978393 100644
---
a/superset-frontend/packages/superset-ui-core/test/query/api/setupClientForTest.ts
+++
b/superset-frontend/packages/superset-ui-core/test/query/api/setupClientForTest.ts
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+// eslint-disable-next-line import/no-extraneous-dependencies -- The below
fetch-mock import shouldn't be considered as direct dependency
import fetchMock from 'fetch-mock';
import { SupersetClient } from '@superset-ui/core';
diff --git
a/superset-frontend/packages/superset-ui-core/test/query/api/v1/getChartData.test.ts
b/superset-frontend/packages/superset-ui-core/test/query/api/v1/getChartData.test.ts
index 24d8dcbf91..1f6b3ce429 100644
---
a/superset-frontend/packages/superset-ui-core/test/query/api/v1/getChartData.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/query/api/v1/getChartData.test.ts
@@ -21,8 +21,8 @@ import { buildQueryContext, ApiV1 } from '@superset-ui/core';
import setupClientForTest from '../setupClientForTest';
describe('API v1 > getChartData()', () => {
- beforeAll(setupClientForTest);
- afterEach(fetchMock.restore);
+ beforeAll(() => setupClientForTest());
+ afterEach(() => fetchMock.restore());
it('returns a promise of ChartDataResponse', async () => {
const response = {
diff --git
a/superset-frontend/packages/superset-ui-core/test/query/api/v1/makeApi.test.ts
b/superset-frontend/packages/superset-ui-core/test/query/api/v1/makeApi.test.ts
index f8cd445250..286ef35cc0 100644
---
a/superset-frontend/packages/superset-ui-core/test/query/api/v1/makeApi.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/query/api/v1/makeApi.test.ts
@@ -22,8 +22,8 @@ import { makeApi, SupersetApiError } from
'../../../../src/query';
import setupClientForTest from '../setupClientForTest';
describe('makeApi()', () => {
- beforeAll(setupClientForTest);
- afterEach(fetchMock.restore);
+ beforeAll(() => setupClientForTest());
+ afterEach(() => fetchMock.restore());
it('should expose method and endpoint', () => {
const api = makeApi({
diff --git
a/superset-frontend/packages/superset-ui-core/test/time-comparison/fetchTimeRange.test.ts
b/superset-frontend/packages/superset-ui-core/test/time-comparison/fetchTimeRange.test.ts
index df1e2bc7d9..8aedfc371d 100644
---
a/superset-frontend/packages/superset-ui-core/test/time-comparison/fetchTimeRange.test.ts
+++
b/superset-frontend/packages/superset-ui-core/test/time-comparison/fetchTimeRange.test.ts
@@ -25,7 +25,7 @@ import {
formatTimeRangeComparison,
} from '../../src/time-comparison/fetchTimeRange';
-afterEach(fetchMock.restore);
+afterEach(() => fetchMock.restore());
test('generates proper time range string', () => {
expect(
@@ -56,7 +56,7 @@ test('generates a readable time range', () => {
});
test('returns a formatted time range from response', async () => {
- fetchMock.get("glob:*/api/v1/time_range/?q='Last+day'", {
+ fetchMock.get('glob:*/api/v1/time_range/?q=%27Last+day%27', {
result: [
{
since: '2021-04-13T00:00:00',
@@ -73,7 +73,7 @@ test('returns a formatted time range from response', async ()
=> {
});
test('returns a formatted time range from empty response', async () => {
- fetchMock.get("glob:*/api/v1/time_range/?q='Last+day'", {
+ fetchMock.get('glob:*/api/v1/time_range/?q=%27Last+day%27', {
result: [],
});
@@ -84,7 +84,7 @@ test('returns a formatted time range from empty response',
async () => {
});
test('returns a formatted error message from response', async () => {
- fetchMock.getOnce("glob:*/api/v1/time_range/?q='Last+day'", {
+ fetchMock.get('glob:*/api/v1/time_range/?q=%27Last+day%27', {
throws: new Response(JSON.stringify({ message: 'Network error' })),
});
let timeRange = await fetchTimeRange('Last day');
@@ -92,8 +92,8 @@ test('returns a formatted error message from response', async
() => {
error: 'Network error',
});
- fetchMock.getOnce(
- "glob:*/api/v1/time_range/?q='Last+day'",
+ fetchMock.get(
+ 'glob:*/api/v1/time_range/?q=%27Last+day%27',
{
throws: new Error('Internal Server Error'),
},
@@ -104,8 +104,8 @@ test('returns a formatted error message from response',
async () => {
error: 'Internal Server Error',
});
- fetchMock.getOnce(
- "glob:*/api/v1/time_range/?q='Last+day'",
+ fetchMock.get(
+ 'glob:*/api/v1/time_range/?q=%27Last+day%27',
{
throws: new Response(JSON.stringify({ statusText: 'Network error' }), {
statusText: 'Network error',
@@ -117,11 +117,11 @@ test('returns a formatted error message from response',
async () => {
expect(timeRange).toEqual({
error: 'Network error',
});
-});
+}, 10000);
test('fetchTimeRange with shift', async () => {
fetchMock.getOnce(
-
"glob:*/api/v1/time_range/?q=!((timeRange:'Last+day'),(shift%3A'last%20month'%2CtimeRange%3A'Last%20day'))",
+
'glob:*/api/v1/time_range/?q=!((timeRange:%27Last+day%27),(shift%3A%27last%20month%27%2CtimeRange%3A%27Last%20day%27))',
{
result: [
{
diff --git
a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
index 0802eb23f6..bce6238ef0 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
@@ -30,7 +30,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
- "@testing-library/jest-dom": "^5.17.0",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
"react": "^16.13.1",
"react-dom": "^16.13.1"
diff --git a/superset-frontend/plugins/plugin-chart-table/package.json
b/superset-frontend/plugins/plugin-chart-table/package.json
index 9bf34bfa18..da9d4e0b89 100644
--- a/superset-frontend/plugins/plugin-chart-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-table/package.json
@@ -40,10 +40,10 @@
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
"@testing-library/dom": "^8.20.1",
- "@testing-library/jest-dom": "^5.11.6",
+ "@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
- "@testing-library/react-hooks": "^5.0.3",
- "@testing-library/user-event": "^12.7.0",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
"@types/classnames": "*",
"@types/react": "*",
"match-sorter": "^6.3.3",
diff --git a/superset-frontend/spec/helpers/testing-library.tsx
b/superset-frontend/spec/helpers/testing-library.tsx
index 625531f926..fade497a37 100644
--- a/superset-frontend/spec/helpers/testing-library.tsx
+++ b/superset-frontend/spec/helpers/testing-library.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import { ReactNode, ReactElement } from 'react';
import {
render,
diff --git
a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
index a1251e8bcf..ec77f08242 100644
---
a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
+++
b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
@@ -24,7 +24,7 @@ import * as uiCore from '@superset-ui/core';
import { Provider } from 'react-redux';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import { render, screen, act } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import userEvent from '@testing-library/user-event';
import * as utils from 'src/utils/common';
import ShareSqlLabQuery from 'src/SqlLab/components/ShareSqlLabQuery';
diff --git
a/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.tsx
b/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.tsx
index 38ffa445c1..3fc6df96fb 100644
--- a/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.tsx
+++ b/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.tsx
@@ -18,7 +18,7 @@
*/
import { render } from 'spec/helpers/testing-library';
import SouthPane from 'src/SqlLab/components/SouthPane';
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import { STATUS_OPTIONS } from 'src/SqlLab/constants';
import { initialState, table, defaultQueryEditor } from 'src/SqlLab/fixtures';
import { denormalizeTimestamp } from '@superset-ui/core';
diff --git
a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx
b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx
index a378201eab..a30d09e1b5 100644
--- a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx
+++ b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import { render, screen } from 'spec/helpers/testing-library';
import userEvent from '@testing-library/user-event';
import AlteredSliceTag, {
diff --git
a/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.test.tsx
b/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.test.tsx
index 9a6953902f..38f4355679 100644
---
a/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.test.tsx
+++
b/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.test.tsx
@@ -18,7 +18,7 @@
*/
import { render } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import {
ErrorLevel,
ErrorSource,
diff --git
a/superset-frontend/src/components/ErrorMessage/MarshmallowErrorMessage.test.tsx
b/superset-frontend/src/components/ErrorMessage/MarshmallowErrorMessage.test.tsx
index 969e0c9d0a..6b2e9af5e9 100644
---
a/superset-frontend/src/components/ErrorMessage/MarshmallowErrorMessage.test.tsx
+++
b/superset-frontend/src/components/ErrorMessage/MarshmallowErrorMessage.test.tsx
@@ -17,8 +17,8 @@
* under the License.
*/
+import '@testing-library/jest-dom';
import { render, screen, fireEvent } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect';
import {
ErrorLevel,
ErrorTypeEnum,
diff --git
a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.test.tsx
b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.test.tsx
index dbb1c2fc47..a56e969f1b 100644
---
a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.test.tsx
+++
b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.test.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { Preset } from '@superset-ui/core';
-import userEvent, { specialChars } from '@testing-library/user-event';
+import userEvent from '@testing-library/user-event';
import fetchMock from 'fetch-mock';
import chartQueries from 'spec/fixtures/mockChartQueries';
import { dashboardLayout } from 'spec/fixtures/mockDashboardLayout';
@@ -287,7 +287,7 @@ test('validates the column', async () => {
test.skip('validates the default value', async () => {
defaultRender(noTemporalColumnsState());
expect(await screen.findByText('birth_names')).toBeInTheDocument();
- userEvent.type(screen.getByRole('combobox'), `Column
A${specialChars.enter}`);
+ userEvent.type(screen.getByRole('combobox'), `Column A{Enter}`);
userEvent.click(getCheckbox(DEFAULT_VALUE_REGEX));
await waitFor(() => {
expect(
diff --git
a/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CurrentCalendarFrame.test.tsx
b/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CurrentCalendarFrame.test.tsx
index 2b1f0754b4..a3c6de5fc0 100644
---
a/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CurrentCalendarFrame.test.tsx
+++
b/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CurrentCalendarFrame.test.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { render } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect'; // For advanced DOM
assertions
+import '@testing-library/jest-dom'; // For advanced DOM assertions
import { CurrentCalendarFrame } from '../components/CurrentCalendarFrame';
import { CurrentWeek } from '../types';
diff --git
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.test.tsx
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.test.tsx
index 2657e54295..c2ab5fbf9a 100644
---
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.test.tsx
+++
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.test.tsx
@@ -18,7 +18,7 @@
*/
import { render, fireEvent } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import { Provider } from 'react-redux';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
diff --git
a/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/OAuth2ClientField.test.tsx
b/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/OAuth2ClientField.test.tsx
index 1752eb1960..6e86835fac 100644
---
a/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/OAuth2ClientField.test.tsx
+++
b/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/OAuth2ClientField.test.tsx
@@ -18,7 +18,7 @@
*/
import { render, fireEvent } from '@testing-library/react';
-import '@testing-library/jest-dom/extend-expect';
+import '@testing-library/jest-dom';
import { ThemeProvider, supersetTheme } from '@superset-ui/core';
import { DatabaseObject } from 'src/features/databases/types';
import { OAuth2ClientField } from './OAuth2ClientField';
diff --git
a/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx
b/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx
index 49b80fc961..2f8eafeb7b 100644
--- a/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx
+++ b/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx
@@ -1409,6 +1409,8 @@ describe('DatabaseModal', () => {
const importDbButton = screen.getByTestId(
'import-database-btn',
) as HTMLInputElement;
+ importDbButton.type = 'file';
+ importDbButton.files = {} as FileList;
expect(importDbButton).toBeVisible();
const testFile = new File([new ArrayBuffer(1)], 'model_export.zip');
diff --git
a/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx
b/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx
index 8a6f4fe92f..39ce9506af 100644
---
a/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx
+++
b/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx
@@ -616,7 +616,7 @@ test('CSV, form post', async () => {
const inputElement = document.querySelector('input[type="file"]');
if (inputElement) {
- userEvent.upload(inputElement, file);
+ userEvent.upload(inputElement as HTMLElement, file);
}
const selectDatabase = screen.getByRole('combobox', {
@@ -673,7 +673,7 @@ test('Excel, form post', async () => {
const inputElement = document.querySelector('input[type="file"]');
if (inputElement) {
- userEvent.upload(inputElement, file);
+ userEvent.upload(inputElement as HTMLElement, file);
}
const selectDatabase = screen.getByRole('combobox', {
@@ -734,7 +734,7 @@ test('Columnar, form post', async () => {
const inputElement = document.querySelector('input[type="file"]');
if (inputElement) {
- userEvent.upload(inputElement, file);
+ userEvent.upload(inputElement as HTMLElement, file);
}
const selectDatabase = screen.getByRole('combobox', {