From 72b0220100388b686ad78c547d83a9d9f5c89222 Mon Sep 17 00:00:00 2001 From: Naresh Bhatia Date: Wed, 13 Mar 2019 10:56:48 -0400 Subject: [PATCH 1/2] add support for Jest's moduleNameMapper configuration Allow merging of external `moduleNameMapper` configuration with the internal configuration required by react-scripts. --- packages/react-scripts/scripts/utils/createJestConfig.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 5294220b1fe..ad16984a0f3 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -79,15 +79,22 @@ module.exports = (resolve, rootDir, isEjecting) => { 'coverageThreshold', 'globalSetup', 'globalTeardown', + 'moduleNameMapper', 'resetMocks', 'resetModules', 'snapshotSerializers', 'watchPathIgnorePatterns', ]; + const mergedKeys = ['moduleNameMapper']; if (overrides) { supportedKeys.forEach(key => { if (overrides.hasOwnProperty(key)) { - config[key] = overrides[key]; + if (mergedKeys.includes(key)) { + // Allow overrides[key] to override internal configuration + config[key] = Object.assign(config[key], overrides[key]); + } else { + config[key] = overrides[key]; + } delete overrides[key]; } }); From 1ae48cac16f3ec74d5165c16f0119157a832edeb Mon Sep 17 00:00:00 2001 From: Naresh Bhatia Date: Wed, 13 Mar 2019 11:37:50 -0400 Subject: [PATCH 2/2] Updated docs for running tests. --- docusaurus/docs/running-tests.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 5f93a391771..96c84abd254 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -279,7 +279,13 @@ Supported overrides: - [`collectCoverageFrom`](https://jestjs.io/docs/en/configuration.html#collectcoveragefrom-array) - [`coverageReporters`](https://jestjs.io/docs/en/configuration.html#coveragereporters-array-string) - [`coverageThreshold`](https://jestjs.io/docs/en/configuration.html#coveragethreshold-object) +- [`globalSetup`](https://jestjs.io/docs/en/configuration.html#globalsetup-string) +- [`globalTeardown`](https://jestjs.io/docs/en/configuration.html#globalteardown-string) +- [`moduleNameMapper`](https://jestjs.io/docs/en/configuration.html#modulenamemapper-object-string-string) +- [`resetMocks`](https://jestjs.io/docs/en/configuration.html#resetmocks-boolean) +- [`resetModules`](https://jestjs.io/docs/en/configuration.html#resetmodules-boolean) - [`snapshotSerializers`](https://jestjs.io/docs/en/configuration.html#snapshotserializers-array-string) +- [`watchPathIgnorePatterns`](https://jestjs.io/docs/en/configuration.html#watchpathignorepatterns-array-string) Example package.json: