From 21f53f1731ec5fe3c8c8d89cd087ee2dbc6ec617 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 10:10:44 -0700 Subject: [PATCH 1/6] create centralized jest config --- jest.config.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 jest.config.js diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000000..ca03156fb7a9 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + rootDir: process.cwd(), + collectCoverage: true, + transform: { + '^.+\\.ts$': 'ts-jest', + }, + moduleFileExtensions: ['js', 'ts'], + testEnvironment: 'node', + testMatch: ['/**/*.test.ts'], + globals: { + 'ts-jest': { + tsconfig: '/tsconfig.test.json', + diagnostics: false, + }, + }, +}; From 49494f7cdf17d614c2a75ad93a4f2c8c94624e8e Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 10:18:07 -0700 Subject: [PATCH 2/6] use central jest config in core, hub, integrations, minimal, nextjs, node, serverless, tracing, and utils --- packages/core/jest.config.js | 1 + packages/core/package.json | 20 -------------------- packages/hub/jest.config.js | 1 + packages/hub/package.json | 20 -------------------- packages/integrations/jest.config.js | 1 + packages/integrations/package.json | 20 -------------------- packages/minimal/jest.config.js | 1 + packages/minimal/package.json | 20 -------------------- packages/nextjs/jest.config.js | 1 + packages/nextjs/package.json | 20 -------------------- packages/node/jest.config.js | 1 + packages/node/package.json | 20 -------------------- packages/serverless/jest.config.js | 1 + packages/serverless/package.json | 22 +--------------------- packages/tracing/jest.config.js | 1 + packages/tracing/package.json | 20 -------------------- packages/utils/jest.config.js | 1 + packages/utils/package.json | 20 -------------------- 18 files changed, 10 insertions(+), 181 deletions(-) create mode 100644 packages/core/jest.config.js create mode 100644 packages/hub/jest.config.js create mode 100644 packages/integrations/jest.config.js create mode 100644 packages/minimal/jest.config.js create mode 100644 packages/nextjs/jest.config.js create mode 100644 packages/node/jest.config.js create mode 100644 packages/serverless/jest.config.js create mode 100644 packages/tracing/jest.config.js create mode 100644 packages/utils/jest.config.js 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/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/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/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 } From f598c52b5b7860580aafeae5fe450edb887e7cd8 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 16:39:09 -0700 Subject: [PATCH 3/6] use central jest config in gatsby, react, vue, and wasm packages --- jest.config.js | 5 +++-- packages/gatsby/jest.config.js | 7 +++++++ packages/gatsby/package.json | 26 -------------------------- packages/react/jest.config.js | 6 ++++++ packages/react/package.json | 23 ----------------------- packages/vue/jest.config.js | 6 ++++++ packages/vue/package.json | 20 -------------------- packages/wasm/jest.config.js | 3 +++ packages/wasm/package.json | 3 --- 9 files changed, 25 insertions(+), 74 deletions(-) create mode 100644 packages/gatsby/jest.config.js create mode 100644 packages/react/jest.config.js create mode 100644 packages/vue/jest.config.js create mode 100644 packages/wasm/jest.config.js diff --git a/jest.config.js b/jest.config.js index ca03156fb7a9..5e35a5ef14d9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,10 +3,11 @@ module.exports = { collectCoverage: true, transform: { '^.+\\.ts$': 'ts-jest', + '^.+\\.tsx$': 'ts-jest', }, - moduleFileExtensions: ['js', 'ts'], + moduleFileExtensions: ['js', 'ts', 'tsx'], testEnvironment: 'node', - testMatch: ['/**/*.test.ts'], + testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], globals: { 'ts-jest': { tsconfig: '/tsconfig.test.json', 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/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/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 } From 25f92ad02005841c0db5b6eee3f8cf4da6879e27 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 16:44:41 -0700 Subject: [PATCH 4/6] use central jest config in browser package --- jest.config.js | 1 + packages/browser/jest.config.js | 7 +++++++ packages/browser/package.json | 4 ++-- packages/browser/test/unit/jest.config.js | 16 ---------------- 4 files changed, 10 insertions(+), 18 deletions(-) create mode 100644 packages/browser/jest.config.js delete mode 100644 packages/browser/test/unit/jest.config.js diff --git a/jest.config.js b/jest.config.js index 5e35a5ef14d9..a0cfb4db0ad7 100644 --- a/jest.config.js +++ b/jest.config.js @@ -5,6 +5,7 @@ module.exports = { '^.+\\.ts$': 'ts-jest', '^.+\\.tsx$': 'ts-jest', }, + coverageDirectory: '/coverage', moduleFileExtensions: ['js', 'ts', 'tsx'], testEnvironment: 'node', testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], 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, - }, - }, -}; From 0d7090ec6fc0c86c95171780870448eaf90223bb Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 17:09:56 -0700 Subject: [PATCH 5/6] use standard tsconfig and central jest config in node integration test package --- packages/node-integration-tests/jest.config.js | 12 ++++-------- packages/node-integration-tests/tsconfig.json | 10 ++++++---- packages/node-integration-tests/tsconfig.test.json | 12 ++++++++++++ 3 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 packages/node-integration-tests/tsconfig.test.json 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 + } +} From 174d8bd87ed46cd1c613eae6c2ce97414810d857 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Sat, 9 Apr 2022 19:04:32 -0700 Subject: [PATCH 6/6] stop looking for tests in `node_modules` and `build` --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index a0cfb4db0ad7..411c1f269052 100644 --- a/jest.config.js +++ b/jest.config.js @@ -15,4 +15,5 @@ module.exports = { diagnostics: false, }, }, + testPathIgnorePatterns: ['/build/', '/node_modules/'], };