diff --git a/jest.config.json b/jest.config.json index 26654751..5cce821c 100644 --- a/jest.config.json +++ b/jest.config.json @@ -6,9 +6,10 @@ "^.+\\.jsx?$": "babel-jest", "\\.(ts|tsx)$": "ts-jest" }, - "transformIgnorePatterns": ["node_modules/(?!(d3-.+))"], + "transformIgnorePatterns": ["node_modules/(?!(d3-.+|uuid))"], "moduleNameMapper": { ".*\\.(css|less|styl|scss|sass)$": "/jest/mocks/cssModule.js", + "^uuid$": "/node_modules/uuid/dist/index.js", "(.*)\\.js$": "$1" }, "setupFilesAfterEnv": ["/jest/setup.ts"], diff --git a/jest/setup.ts b/jest/setup.ts index 19a4d308..7f603e10 100644 --- a/jest/setup.ts +++ b/jest/setup.ts @@ -2,5 +2,11 @@ import raf from './polyfills/raf'; import { configure } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; +// jsdom's test environment doesn't expose the Web Crypto API that uuid v14 relies on. +// eslint-disable-next-line @typescript-eslint/no-var-requires +const { webcrypto } = require('crypto'); +// @ts-ignore +if (!global.crypto) global.crypto = webcrypto; + // @ts-ignore configure({ adapter: new Adapter() }); diff --git a/package-lock.json b/package-lock.json index b92778e3..b4568ec1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "d3-shape": "^1.3.7", "d3-zoom": "^3.0.0", "dequal": "^2.0.2", - "uuid": "^8.3.1" + "uuid": "^14" }, "devDependencies": { "@babel/core": "^7.8.3", @@ -11445,11 +11445,16 @@ } }, "node_modules/uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz", + "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist-node/bin/uuid" } }, "node_modules/validate-npm-package-license": { @@ -20857,9 +20862,9 @@ } }, "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz", + "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==" }, "validate-npm-package-license": { "version": "3.0.4", diff --git a/package.json b/package.json index 9b8273b2..bf4cfa71 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "d3-shape": "^1.3.7", "d3-zoom": "^3.0.0", "dequal": "^2.0.2", - "uuid": "^8.3.1" + "uuid": "^14" }, "peerDependencies": { "react": "16.x || 17.x || 18.x || 19.x",