diff --git a/package.json b/package.json index 97032e7..b851d81 100644 --- a/package.json +++ b/package.json @@ -48,9 +48,10 @@ "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-node-resolve": "^7.1.3", "babel-eslint": "^10.1.0", - "babel-jest": "^26.0.1", + "babel-jest": "^29.0.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.2", + "jest-environment-jsdom": "^29.0.0", + "@cfaester/enzyme-adapter-react-18": "^0.8.0", "eslint": "^6.8.0", "eslint-config-indico": "^1.2.1", "eslint-config-prettier": "^6.11.0", @@ -60,16 +61,23 @@ "eslint-plugin-prettier": "^3.1.3", "eslint-plugin-react": "^7.19.0", "eslint-plugin-react-hooks": "^4.0.0", - "jest": "^26.0.1", + "jest": "^29.0.0", "prettier": "^2.0.5", "prop-types": "^15.7.2", - "react": "^16.13.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "rimraf": "^3.0.0", "rollup": "^2.9.1", "rollup-plugin-peer-deps-external": "^2.2.0" }, "browserslist": "> 0.25%, not dead, not IE 11", + "overrides": { + "enzyme": { + "cheerio": "1.0.0-rc.12" + } + }, "jest": { + "testEnvironment": "jsdom", "setupFilesAfterEnv": [ "./src/setupTests.js" ] diff --git a/src/setupTests.js b/src/setupTests.js index 96bab7d..56ca3a8 100644 --- a/src/setupTests.js +++ b/src/setupTests.js @@ -1,4 +1,4 @@ import {configure} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import Adapter from '@cfaester/enzyme-adapter-react-18'; configure({adapter: new Adapter()}); diff --git a/src/store.test.js b/src/store.test.js index 3ebafd3..d2b72a0 100644 --- a/src/store.test.js +++ b/src/store.test.js @@ -57,3 +57,27 @@ describe('Tests for store utility object.', () => { expect(NewCmp.find('ul')).toHaveLength(0); }); }); + +describe('React 18 StrictMode compatibility', () => { + beforeEach(() => { + overrideStore.clear(); + }); + + test('global store works with StrictMode double-mount', () => { + const NewComponent = () =>