From f165af9a1c641da0be53a75f14f6a759a871c7cd Mon Sep 17 00:00:00 2001 From: Kenneth Sundqvist <kenneth@kesu.se> Date: Mon, 30 Dec 2019 13:23:07 +0100 Subject: [PATCH] Allow node_modules to be mocked as described in the Jest documentation --- .../react-scripts/scripts/utils/createJestConfig.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 5c17ad69a..7b18f47a6 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -8,6 +8,7 @@ 'use strict'; const fs = require('fs'); +const path = require('path'); const chalk = require('react-dev-utils/chalk'); const paths = require('../../config/paths'); const modules = require('../../config/modules'); @@ -22,8 +23,17 @@ module.exports = (resolve, rootDir, isEjecting) => { ? `<rootDir>/src/setupTests.${setupTestsFileExtension}` : undefined; + const roots = ['<rootDir>/src']; + + const nodeMocksRootPath = path.join(rootDir || paths.appPath, '__mocks__'); + const nodeMocksRootStats = + fs.existsSync(nodeMocksRootPath) && fs.statSync(nodeMocksRootPath); + if (nodeMocksRootStats && nodeMocksRootStats.isDirectory()) { + roots.push('<rootDir>/__mocks__'); + } + const config = { - roots: ['<rootDir>/src'], + roots, collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts'], -- GitLab