From fbc9dc2382df7ac1093b309141e7e6e139b54e69 Mon Sep 17 00:00:00 2001 From: ivanThePleasant Date: Tue, 14 Sep 2021 15:02:03 +0300 Subject: [PATCH] Package.json script configuration per package --- jest.base-config.front.js | 3 + jest.config.front.js | 89 ++----------------- jest.config.js | 20 +++-- package.json | 2 +- packages/core/admin/jest.config.js | 11 ++- packages/core/admin/package.json | 2 +- packages/core/content-manager/package.json | 3 + .../core/content-type-builder/package.json | 3 + packages/core/email/package.json | 2 +- packages/core/strapi/jest.config.js | 11 ++- packages/core/upload/package.json | 2 +- packages/plugins/documentation/package.json | 2 +- packages/plugins/graphql/package.json | 2 +- packages/plugins/i18n/package.json | 3 + packages/plugins/sentry/package.json | 3 + .../plugins/users-permissions/package.json | 2 +- 16 files changed, 62 insertions(+), 98 deletions(-) diff --git a/jest.base-config.front.js b/jest.base-config.front.js index e527440c1a..f75a33cff5 100644 --- a/jest.base-config.front.js +++ b/jest.base-config.front.js @@ -33,12 +33,15 @@ module.exports = { testPathIgnorePatterns: [ '/node_modules/', '/examples/getstarted/', + '/examples/kitchensink/', '/packages/strapi-helper-plugin/dist/', '__tests__', ], setupFiles: [ '/test/config/front/test-bundler.js', '/packages/admin-test-utils/lib/mocks/LocalStorageMock.js', + '/packages/admin-test-utils/lib/mocks/IntersectionObserver.js', + '/packages/admin-test-utils/lib/mocks/ResizeObserver.js', ], setupFilesAfterEnv: [ '/test/config/front/enzyme-setup.js', diff --git a/jest.config.front.js b/jest.config.front.js index e34535337d..e64412f6d0 100644 --- a/jest.config.front.js +++ b/jest.config.front.js @@ -1,84 +1,13 @@ -const IS_EE = process.env.IS_EE === 'true'; - -const moduleNameMapper = { - '.*\\.(css|less|styl|scss|sass)$': '/test/config/front/mocks/cssModule.js', - '.*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|ico)$': - '/test/config/front/mocks/image.js', - '^ee_else_ce(/.*)$': [ - '/packages/core/admin/admin/src$1', - '/packages/core/content-manager/admin/src$1', - '/packages/core/content-type-builder/admin/src$1', - '/packages/core/upload/admin/src$1', - '/packages/core/email/admin/src$1', - '/packages/plugins/*/admin/src$1', - ], -}; - -if (IS_EE) { - const rootDirEE = [ - '/packages/core/admin/ee/admin$1', - '/packages/core/content-manager/ee/admin/src$1', - '/packages/core/content-type-builder/ee/admin/src$1', - '/packages/core/upload/ee/admin/src$1', - '/packages/core/email/ee/admin/src$1', - '/packages/plugins/*/ee/admin/src$1', - ]; - - Object.assign(moduleNameMapper, { - '^ee_else_ce(/.*)$': rootDirEE, - }); -} +const baseConfigFront = require('./jest.base-config.front'); module.exports = { - collectCoverageFrom: [ - 'packages/core/*/admin/src/**/*.js', - 'packages/plugins/*/admin/src/**/*.js', + ...baseConfigFront, + projects: [ + '/packages/core/admin/jest.config.front.js', + '/packages/core/content-manager/jest.config.front.js', + '/packages/core/content-type-builder/jest.config.front.js', + '/packages/core/upload/jest.config.front.js', + '/packages/core/email/jest.config.front.js', + '/packages/plugins/*/jest.config.front.js', ], - globals: { - __webpack_public_path__: 'http://localhost:4000', - strapi: { - backendURL: 'http://localhost:1337', - isEE: false, - features: [], - projectType: 'Community', - }, - BACKEND_URL: 'http://localhost:1337', - ADMIN_PATH: '/admin', - NODE_ENV: 'test', - - // FIXME create a clean config file - }, - moduleDirectories: [ - 'node_modules', - '/packages/strapi-admin/node_modules', - '/test/config/front', - ], - moduleNameMapper, - rootDir: process.cwd(), - setupFiles: [ - '/test/config/front/test-bundler.js', - '/packages/admin-test-utils/lib/mocks/LocalStorageMock.js', - '/packages/admin-test-utils/lib/mocks/IntersectionObserver.js', - '/packages/admin-test-utils/lib/mocks/ResizeObserver.js', - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/examples/getstarted/', - '/examples/kitchensink/', - '/packages/strapi-helper-plugin/dist/', - '/OLD/', - '__tests__', - ], - setupFilesAfterEnv: [ - '/test/config/front/enzyme-setup.js', - '/test/config/front/strapi.js', - ], - testRegex: 'tests/.*\\.test\\.js$', - transform: { - '^.+\\.js$': ['@swc-node/jest', { jsx: true, dynamicImport: true }], - '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': - '/fileTransformer.js', - }, - transformIgnorePatterns: ['node_modules/(?!(react-dnd|dnd-core|react-dnd-html5-backend)/)'], - testURL: 'http://localhost:4000/admin', }; diff --git a/jest.config.js b/jest.config.js index deff6d1caf..5fb36fe1e1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,9 +1,19 @@ 'use strict'; +const baseConfig = require('./jest.base-config') + module.exports = { - name: 'Unit test', - testMatch: ['/packages/**/__tests__/?(*.)+(spec|test).js'], - modulePathIgnorePatterns: ['.cache'], - transform: {}, - setupFilesAfterEnv: ['/test/unit.setup.js'], + ...baseConfig, + projects: [ + '/packages/core/admin', + '/packages/core/content-manager', + '/packages/core/content-type-builder', + '/packages/core/database', + '/packages/core/email', + '/packages/core/helper-plugin', + '/packages/core/strapi', + '/packages/core/upload', + '/packages/core/utils', + ] }; + diff --git a/package.json b/package.json index c0edfd0f48..5e4f3ffeec 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "prettier:other": "prettier \"**/*.{md,css,scss,yaml,yml}\"", "test:clean": "rimraf ./coverage", "test:front": "npm run test:clean && cross-env NODE_ENV=test IS_EE=true jest --config ./jest.config.front.js", - "test:front:watch": "cross-env NODE_ENV=test IS_EE=true jest --config ./jest.config.front.js --watchAll", + "test:front:watch": "cross-env NODE_ENV=test IS_EE=true jest --config ./jest.config.front.js --watch ", "test:front:update": "cross-env NODE_ENV=test IS_EE=true jest --config ./jest.config.front.js --u", "test:front:ce": "npm run test:clean && cross-env NODE_ENV=test IS_EE=false jest --config ./jest.config.front.js --coverage", "test:front:watch:ce": "cross-env NODE_ENV=test IS_EE=false jest --config ./jest.config.front.js --watchAll", diff --git a/packages/core/admin/jest.config.js b/packages/core/admin/jest.config.js index 70b5405038..cd37f39be7 100644 --- a/packages/core/admin/jest.config.js +++ b/packages/core/admin/jest.config.js @@ -1,5 +1,10 @@ -'use strict'; +'use strict' + +const baseConfig = require('../../../jest.base-config') module.exports = { - testPathIgnorePatterns: ['/'], -}; + displayName: 'admin', + ...baseConfig, + rootDir: '../../..', + testMatch: [`/packages/core/admin${baseConfig.testMatch}`] +} \ No newline at end of file diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index e27368625c..e6a2d78bf4 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -8,7 +8,7 @@ }, "scripts": { "prepublishOnly": "node ./scripts/build.js", - "test": "echo \"no tests yet\"", + "test:front": "jest --config jest.config.front.js", "develop": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile", "develop:ce": "STRAPI_DISABLE_EE=true webpack serve --config webpack.config.dev.js --progress profile", "analyze:bundle": "ANALYZE_BUNDLE=true webpack --config webpack.config.dev.js", diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index d1bc1eab7e..b4c57e8da2 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -10,6 +10,9 @@ "required": true, "kind": "plugin" }, + "scripts": { + "test:front": "jest --config jest.config.front.js" + }, "dependencies": { "@sindresorhus/slugify": "1.1.0", "@strapi/utils": "3.6.8", diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 8e032fe822..15c798a98a 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -9,6 +9,9 @@ "description": "content-type-builder.plugin.description", "kind": "plugin" }, + "scripts": { + "test:front": "jest --config jest.config.front.js" + }, "dependencies": { "@sindresorhus/slugify": "1.1.0", "@strapi/generators": "3.6.8", diff --git a/packages/core/email/package.json b/packages/core/email/package.json index 9539d723be..ac9d653d71 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -11,7 +11,7 @@ "kind": "plugin" }, "scripts": { - "test": "echo \"no tests yet\"" + "test:front": "jest --config jest.config.front.js" }, "dependencies": { "lodash": "4.17.21", diff --git a/packages/core/strapi/jest.config.js b/packages/core/strapi/jest.config.js index 3c3d406ca6..7c53763f26 100644 --- a/packages/core/strapi/jest.config.js +++ b/packages/core/strapi/jest.config.js @@ -1,5 +1,10 @@ -'use strict'; +'use strict' + +const baseConfig = require('../../../jest.base-config') module.exports = { - testMatch: ['**/(*.)+(spec|test).js'], -}; + displayName: 'strapi', + ...baseConfig, + rootDir: '../../..', + testMatch: [`/packages/core/strapi${baseConfig.testMatch}`] +} diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index 2fd0860e7d..a371760aea 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -11,7 +11,7 @@ "kind": "plugin" }, "scripts": { - "test": "echo \"no tests yet\"" + "test:front": "jest --config jest.config.front.js" }, "dependencies": { "@strapi/helper-plugin": "3.6.8", diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index 1dd35c35fd..05e6dea37d 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -10,7 +10,7 @@ "kind": "plugin" }, "scripts": { - "test": "echo \"no tests yet\"" + "test:front": "jest --config jest.config.front.js" }, "dependencies": { "@strapi/helper-plugin": "3.6.8", diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index 8c4a1a29fb..2d87998d31 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -10,7 +10,7 @@ "kind": "plugin" }, "scripts": { - "test": "echo \"no tests yet\"" + "test:front": "jest --config jest.config.front.js" }, "dependencies": { "@apollo/federation": "^0.28.0", diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index 4ab461a7bd..02e6253816 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -10,6 +10,9 @@ "required": false, "kind": "plugin" }, + "scripts": { + "test:front": "jest --config jest.config.front.js" + }, "dependencies": { "@strapi/utils": "3.6.8", "lodash": "4.17.21" diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index d46f506cd3..abd0dfa143 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -9,6 +9,9 @@ "description": "sentry.plugin.description", "kind": "plugin" }, + "scripts": { + "test:front": "jest --config jest.config.front.js" + }, "dependencies": { "@sentry/node": "6.7.1" }, diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index 2d1bc08649..3fe461f5ab 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -11,7 +11,7 @@ "kind": "plugin" }, "scripts": { - "test": "echo \"no tests yet\"" + "test:front": "jest --config jest.config.front.js" }, "dependencies": { "@purest/providers": "^1.0.2",