diff --git a/jest.config.js b/jest.config.js index 049567c4..832d1936 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,7 @@ module.exports = { testURL: 'http://localhost:8000', preset: 'jest-puppeteer', + extraSetupFiles: ['./tests/setupTests.js'], globals: { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: false, localStorage: null, diff --git a/package.json b/package.json index d44a22e5..757acd9f 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "@types/classnames": "^2.2.7", "@types/express": "^4.17.0", "@types/history": "^4.7.2", - "@types/jest": "^24.0.13", + "@types/jest": "^24.0.23", "@types/lodash": "^4.14.144", "@types/qs": "^6.5.3", "@types/react": "^16.8.19", @@ -103,6 +103,7 @@ "import-sort-parser-typescript": "^6.0.0", "import-sort-style-module": "^6.0.0", "jest-puppeteer": "^4.2.0", + "jsdom-global": "^3.0.2", "lint-staged": "^9.0.0", "mockjs": "^1.0.1-beta3", "netlify-lambda": "^1.4.13", diff --git a/tests/setupTests.js b/tests/setupTests.js new file mode 100644 index 00000000..30e7dd12 --- /dev/null +++ b/tests/setupTests.js @@ -0,0 +1,22 @@ +import 'jsdom-global/register'; + +// browserMocks.js +const localStorageMock = (() => { + let store = {}; + + return { + getItem(key) { + return store[key] || null; + }, + setItem(key, value) { + store[key] = value.toString(); + }, + clear() { + store = {}; + }, + }; +})(); + +Object.defineProperty(window, 'localStorage', { + value: localStorageMock, +});