diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000000..411c1f269052 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,19 @@ +module.exports = { + rootDir: process.cwd(), + collectCoverage: true, + transform: { + '^.+\\.ts$': 'ts-jest', + '^.+\\.tsx$': 'ts-jest', + }, + coverageDirectory: '/coverage', + moduleFileExtensions: ['js', 'ts', 'tsx'], + testEnvironment: 'node', + testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], + globals: { + 'ts-jest': { + tsconfig: '/tsconfig.test.json', + diagnostics: false, + }, + }, + testPathIgnorePatterns: ['/build/', '/node_modules/'], +}; diff --git a/packages/browser/jest.config.js b/packages/browser/jest.config.js new file mode 100644 index 000000000000..06b833307dd8 --- /dev/null +++ b/packages/browser/jest.config.js @@ -0,0 +1,7 @@ +const baseConfig = require('../../jest.config.js'); + +module.exports = { + ...baseConfig, + testEnvironment: 'jsdom', + testMatch: ['/test/unit/**/*.test.ts'], +}; diff --git a/packages/browser/package.json b/packages/browser/package.json index 2c498962fb0a..4ce4782d8554 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -72,11 +72,11 @@ "size:check:es5": "cat build/bundles/bundle.min.js | gzip -9 | wc -c | awk '{$1=$1/1024; print \"ES5: \",$1,\"kB\";}'", "size:check:es6": "cat build/bundles/bundle.es6.min.js | gzip -9 | wc -c | awk '{$1=$1/1024; print \"ES6: \",$1,\"kB\";}'", "test": "run-s test:unit", - "test:unit": "jest --config test/unit/jest.config.js", + "test:unit": "jest", "test:integration": "test/integration/run.js", "test:integration:checkbrowsers": "node scripts/checkbrowsers.js", "test:package": "node test/package/npm-build.js && rm test/package/tmp.js", - "test:unit:watch": "jest --config test/unit/jest.config.js --watch", + "test:unit:watch": "jest --watch", "test:integration:watch": "test/integration/run.js --watch" }, "volta": { diff --git a/packages/browser/test/unit/jest.config.js b/packages/browser/test/unit/jest.config.js deleted file mode 100644 index 5495646bc33f..000000000000 --- a/packages/browser/test/unit/jest.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - transform: { - '^.+\\.ts$': 'ts-jest', - }, - collectCoverage: true, - coverageDirectory: '../../coverage', - moduleFileExtensions: ['js', 'ts'], - testEnvironment: 'jsdom', - testMatch: ['**/*.test.ts'], - globals: { - 'ts-jest': { - tsConfig: '../../tsconfig.json', - diagnostics: false, - }, - }, -}; diff --git a/packages/core/jest.config.js b/packages/core/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/core/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/core/package.json b/packages/core/package.json index c6422c4dab99..7dca9d04abdb 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -52,25 +52,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/gatsby/jest.config.js b/packages/gatsby/jest.config.js new file mode 100644 index 000000000000..6ea22d92d139 --- /dev/null +++ b/packages/gatsby/jest.config.js @@ -0,0 +1,7 @@ +const baseConfig = require('../../jest.config.js'); + +module.exports = { + ...baseConfig, + setupFiles: ['/test/setEnvVars.ts'], + testEnvironment: 'jsdom', +}; diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 1789fe091a4f..7bce4a987cef 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -62,31 +62,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest", - "^.+\\.tsx$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts", - "tsx" - ], - "testEnvironment": "jsdom", - "testMatch": [ - "**/*.test.ts", - "**/*.test.tsx" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - }, - "setupFiles": [ - "/test/setEnvVars.ts" - ] - }, "sideEffects": false } diff --git a/packages/hub/jest.config.js b/packages/hub/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/hub/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/hub/package.json b/packages/hub/package.json index 45408c158c39..f541c7bb7d1f 100644 --- a/packages/hub/package.json +++ b/packages/hub/package.json @@ -49,25 +49,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/integrations/jest.config.js b/packages/integrations/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/integrations/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/integrations/package.json b/packages/integrations/package.json index ede4c816e00d..8c42ddd7b90d 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -54,25 +54,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/minimal/jest.config.js b/packages/minimal/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/minimal/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/minimal/package.json b/packages/minimal/package.json index 4a8b6630cae0..6db5916eaeb0 100644 --- a/packages/minimal/package.json +++ b/packages/minimal/package.json @@ -49,25 +49,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/nextjs/jest.config.js b/packages/nextjs/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/nextjs/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 30f7bb2ebac0..af1c729c6622 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -76,26 +76,6 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": [ "./cjs/index.server.js", "./esm/index.server.js", diff --git a/packages/node-integration-tests/jest.config.js b/packages/node-integration-tests/jest.config.js index 8edea137a75b..617a25ea0817 100644 --- a/packages/node-integration-tests/jest.config.js +++ b/packages/node-integration-tests/jest.config.js @@ -1,10 +1,6 @@ -const config = { - transform: { - '^.+\\.ts$': 'ts-jest', - }, - testEnvironment: 'node', +const baseConfig = require('../../jest.config.js'); + +module.exports = { + ...baseConfig, testMatch: ['**/test.ts'], - moduleFileExtensions: ['js', 'ts'], }; - -module.exports = config; diff --git a/packages/node-integration-tests/tsconfig.json b/packages/node-integration-tests/tsconfig.json index 87d045dbc42d..c98602a3af23 100644 --- a/packages/node-integration-tests/tsconfig.json +++ b/packages/node-integration-tests/tsconfig.json @@ -1,9 +1,11 @@ { "extends": "../../tsconfig.json", + + "include": ["**/*.ts"], + "compilerOptions": { + // package-specific options "esModuleInterop": true, - "types": ["jest", "node"] - }, - "include": ["**/*.ts", "jest.config.js"], - "exclude": ["node_modules"] + "types": ["node"] + } } diff --git a/packages/node-integration-tests/tsconfig.test.json b/packages/node-integration-tests/tsconfig.test.json new file mode 100644 index 000000000000..b43ec254274b --- /dev/null +++ b/packages/node-integration-tests/tsconfig.test.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + + "include": ["**/*.ts"], + + "compilerOptions": { + // should include all types from `./tsconfig.json` plus types for all test frameworks used + "types": ["node", "jest"] + + // other package-specific, test-specific options + } +} diff --git a/packages/node/jest.config.js b/packages/node/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/node/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/node/package.json b/packages/node/package.json index a9048c5b67a4..43142e6c9208 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -65,25 +65,5 @@ }, "volta": { "extends": "../../package.json" - }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } } } diff --git a/packages/react/jest.config.js b/packages/react/jest.config.js new file mode 100644 index 000000000000..8baa8e01db0c --- /dev/null +++ b/packages/react/jest.config.js @@ -0,0 +1,6 @@ +const baseConfig = require('../../jest.config.js'); + +module.exports = { + ...baseConfig, + testEnvironment: 'jsdom', +}; diff --git a/packages/react/package.json b/packages/react/package.json index a92935e9c793..ff98dfe10a54 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -77,28 +77,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest", - "^.+\\.tsx$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts", - "tsx" - ], - "testEnvironment": "jsdom", - "testMatch": [ - "**/*.test.ts", - "**/*.test.tsx" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/serverless/jest.config.js b/packages/serverless/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/serverless/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/serverless/package.json b/packages/serverless/package.json index 39ce5479d2bb..91e86642d6c0 100644 --- a/packages/serverless/package.json +++ b/packages/serverless/package.json @@ -68,25 +68,5 @@ "volta": { "extends": "../../package.json" }, - "sideEffects": false, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - } + "sideEffects": false } diff --git a/packages/tracing/jest.config.js b/packages/tracing/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/tracing/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 1d99f2a3b564..a486fef99048 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -59,26 +59,6 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": [ "./npm/cjs/index.js", "./npm/esm/index.js", diff --git a/packages/utils/jest.config.js b/packages/utils/jest.config.js new file mode 100644 index 000000000000..58141f076dc4 --- /dev/null +++ b/packages/utils/jest.config.js @@ -0,0 +1 @@ +module.exports = require('../../jest.config.js'); diff --git a/packages/utils/package.json b/packages/utils/package.json index f192799b3cf1..2967d08ab553 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -53,25 +53,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "node", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/vue/jest.config.js b/packages/vue/jest.config.js new file mode 100644 index 000000000000..8baa8e01db0c --- /dev/null +++ b/packages/vue/jest.config.js @@ -0,0 +1,6 @@ +const baseConfig = require('../../jest.config.js'); + +module.exports = { + ...baseConfig, + testEnvironment: 'jsdom', +}; diff --git a/packages/vue/package.json b/packages/vue/package.json index 3ce551347efe..4aa5fb77d228 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -60,25 +60,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "collectCoverage": true, - "transform": { - "^.+\\.ts$": "ts-jest" - }, - "moduleFileExtensions": [ - "js", - "ts" - ], - "testEnvironment": "jsdom", - "testMatch": [ - "**/*.test.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "./tsconfig.json", - "diagnostics": false - } - } - }, "sideEffects": false } diff --git a/packages/wasm/jest.config.js b/packages/wasm/jest.config.js new file mode 100644 index 000000000000..2762fa4ef2ff --- /dev/null +++ b/packages/wasm/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + preset: 'jest-puppeteer', +}; diff --git a/packages/wasm/package.json b/packages/wasm/package.json index 5fc5425bfe1b..e5c19f7233b9 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -59,8 +59,5 @@ "volta": { "extends": "../../package.json" }, - "jest": { - "preset": "jest-puppeteer" - }, "sideEffects": false }