diff --git a/packages/jest-core/src/SearchSource.ts b/packages/jest-core/src/SearchSource.ts index 5d321ed5461b..396601a148c7 100644 --- a/packages/jest-core/src/SearchSource.ts +++ b/packages/jest-core/src/SearchSource.ts @@ -268,6 +268,7 @@ export default class SearchSource { private async _getTestPaths( globalConfig: Config.GlobalConfig, + projectConfig: Config.ProjectConfig, changedFiles?: ChangedFiles, ): Promise { if (globalConfig.onlyChanged) { @@ -297,7 +298,7 @@ export default class SearchSource { } else { return this.findMatchingTests( globalConfig.testPathPatterns.toExecutor({ - rootDir: globalConfig.rootDir, + rootDir: projectConfig.rootDir, }), ); } @@ -327,10 +328,15 @@ export default class SearchSource { async getTestPaths( globalConfig: Config.GlobalConfig, + projectConfig: Config.ProjectConfig, changedFiles?: ChangedFiles, filter?: Filter, ): Promise { - const searchResult = await this._getTestPaths(globalConfig, changedFiles); + const searchResult = await this._getTestPaths( + globalConfig, + projectConfig, + changedFiles, + ); const filterPath = globalConfig.filter; diff --git a/packages/jest-core/src/__tests__/SearchSource.test.ts b/packages/jest-core/src/__tests__/SearchSource.test.ts index c51eb8e7b867..728dede6956f 100644 --- a/packages/jest-core/src/__tests__/SearchSource.test.ts +++ b/packages/jest-core/src/__tests__/SearchSource.test.ts @@ -111,12 +111,14 @@ describe('SearchSource', () => { filter?: Filter, ) => { const {searchSource, config} = await initSearchSource(initialOptions); + const allConfig = { + ...config, + ...initialOptions, + testPathPatterns: new TestPathPatterns([]), + }; const {tests: paths} = await searchSource.getTestPaths( - { - ...config, - ...initialOptions, - testPathPatterns: new TestPathPatterns([]), - }, + allConfig, + allConfig, null, filter, ); diff --git a/packages/jest-core/src/runJest.ts b/packages/jest-core/src/runJest.ts index 565cec8fc7f2..ee725cb3ff42 100644 --- a/packages/jest-core/src/runJest.ts +++ b/packages/jest-core/src/runJest.ts @@ -38,13 +38,19 @@ import type {Filter, TestRunData} from './types'; const getTestPaths = async ( globalConfig: Config.GlobalConfig, + projectConfig: Config.ProjectConfig, source: SearchSource, outputStream: WriteStream, changedFiles: ChangedFiles | undefined, jestHooks: JestHookEmitter, filter?: Filter, ) => { - const data = await source.getTestPaths(globalConfig, changedFiles, filter); + const data = await source.getTestPaths( + globalConfig, + projectConfig, + changedFiles, + filter, + ); if (data.tests.length === 0 && globalConfig.onlyChanged && data.noSCM) { new CustomConsole(outputStream, outputStream).log( @@ -188,6 +194,7 @@ export default async function runJest({ const searchSource = searchSources[index]; const matches = await getTestPaths( globalConfig, + context.config, searchSource, outputStream, changedFilesPromise && (await changedFilesPromise), diff --git a/packages/jest-core/src/watch.ts b/packages/jest-core/src/watch.ts index d1099baaa533..2ba4ffb77a3b 100644 --- a/packages/jest-core/src/watch.ts +++ b/packages/jest-core/src/watch.ts @@ -229,13 +229,14 @@ export default async function watch( const emitFileChange = () => { if (hooks.isUsed('onFileChange')) { - const testPathPatternsExecutor = new TestPathPatterns([]).toExecutor({ - rootDir: globalConfig.rootDir, - }); const projects = searchSources.map(({context, searchSource}) => ({ config: context.config, testPaths: searchSource - .findMatchingTests(testPathPatternsExecutor) + .findMatchingTests( + new TestPathPatterns([]).toExecutor({ + rootDir: context.config.rootDir, + }), + ) .tests.map(t => t.path), })); hooks.getEmitter().onFileChange({projects});