diff --git a/e2e/__tests__/onlyChanged.test.ts b/e2e/__tests__/onlyChanged.test.ts index 2e160e4a4bb1..947a11d50ddc 100644 --- a/e2e/__tests__/onlyChanged.test.ts +++ b/e2e/__tests__/onlyChanged.test.ts @@ -165,7 +165,7 @@ test('report test coverage of source on test file change under only changed file `, }); - const {stdout} = runJest(DIR, ['-o']); + const {stdout} = runJest(DIR, ['--only-changed']); expect(stdout).toMatch('a.js'); }); diff --git a/packages/jest-core/src/SearchSource.ts b/packages/jest-core/src/SearchSource.ts index 9efa210e6a7d..194664594c16 100644 --- a/packages/jest-core/src/SearchSource.ts +++ b/packages/jest-core/src/SearchSource.ts @@ -54,9 +54,7 @@ const toTests = (context: Context, tests: Array) => const hasSCM = (changedFilesInfo: ChangedFiles) => { const {repos} = changedFilesInfo; // no SCM (git/hg/...) is found in any of the roots. - const noSCM = (Object.keys(repos) as Array< - keyof ChangedFiles['repos'] - >).every(scm => repos[scm].size === 0); + const noSCM = Object.values(repos).every(scm => scm.size === 0); return !noSCM; }; @@ -352,7 +350,7 @@ export default class SearchSource { ); const relatedSourcesSet = new Set(); changedFiles.forEach(filePath => { - const isTestFile = this.isTestFilePath.bind(this)(filePath); + const isTestFile = this.isTestFilePath(filePath); if (isTestFile) { const sourcePaths = dependencyResolver.resolve(filePath, { skipNodeResolution: this._context.config.skipNodeResolution, diff --git a/packages/jest-core/src/TestScheduler.ts b/packages/jest-core/src/TestScheduler.ts index 6b6f7810528f..bf455a2e05c1 100644 --- a/packages/jest-core/src/TestScheduler.ts +++ b/packages/jest-core/src/TestScheduler.ts @@ -181,9 +181,9 @@ export default class TestScheduler { if (!testRunners[config.runner]) { const Runner: typeof TestRunner = require(config.runner); testRunners[config.runner] = new Runner(this._globalConfig, { - changedFiles: this._context && this._context.changedFiles, - sourcesRelatedToTestsInChangedFiles: - this._context && this._context.sourcesRelatedToTestsInChangedFiles, + changedFiles: this._context?.changedFiles, + sourcesRelatedToTestsInChangedFiles: this._context + ?.sourcesRelatedToTestsInChangedFiles, }); } }); @@ -275,9 +275,9 @@ export default class TestScheduler { if (!isDefault && collectCoverage) { this.addReporter( new CoverageReporter(this._globalConfig, { - changedFiles: this._context && this._context.changedFiles, - sourcesRelatedToTestsInChangedFiles: - this._context && this._context.sourcesRelatedToTestsInChangedFiles, + changedFiles: this._context?.changedFiles, + sourcesRelatedToTestsInChangedFiles: this._context + ?.sourcesRelatedToTestsInChangedFiles, }), ); } @@ -307,9 +307,9 @@ export default class TestScheduler { if (collectCoverage) { this.addReporter( new CoverageReporter(this._globalConfig, { - changedFiles: this._context && this._context.changedFiles, - sourcesRelatedToTestsInChangedFiles: - this._context && this._context.sourcesRelatedToTestsInChangedFiles, + changedFiles: this._context?.changedFiles, + sourcesRelatedToTestsInChangedFiles: this._context + ?.sourcesRelatedToTestsInChangedFiles, }), ); } diff --git a/packages/jest-core/src/__tests__/SearchSource.test.ts b/packages/jest-core/src/__tests__/SearchSource.test.ts index 9bf4c5344ec9..307e2c2f68b0 100644 --- a/packages/jest-core/src/__tests__/SearchSource.test.ts +++ b/packages/jest-core/src/__tests__/SearchSource.test.ts @@ -533,30 +533,18 @@ describe('SearchSource', () => { }); describe('findRelatedSourcesFromTestsInChangedFiles', () => { - const rootDir = path.join( + const rootDir = path.resolve( __dirname, - '..', - '..', - '..', - 'jest-runtime', - 'src', - '__tests__', - 'test_root', + '../../../jest-runtime/src/__tests__/test_root', ); beforeEach(done => { const {options: config} = normalize( { haste: { - hasteImplModulePath: path.join( + hasteImplModulePath: path.resolve( __dirname, - '..', - '..', - '..', - 'jest-haste-map', - 'src', - '__tests__', - 'haste_impl.js', + '../../../jest-haste-map/src/__tests__/haste_impl.js', ), providesModuleNodeModules: [], }, diff --git a/packages/jest-core/src/runJest.ts b/packages/jest-core/src/runJest.ts index 1f0ef43b002b..787762903f8e 100644 --- a/packages/jest-core/src/runJest.ts +++ b/packages/jest-core/src/runJest.ts @@ -243,8 +243,8 @@ export default async function runJest({ if (changedFilesPromise) { const changedFilesInfo = await changedFilesPromise; - testSchedulerContext.changedFiles = changedFilesInfo.changedFiles; - if (testSchedulerContext.changedFiles) { + if (changedFilesInfo.changedFiles) { + testSchedulerContext.changedFiles = changedFilesInfo.changedFiles; const sourcesRelatedToTestsInChangedFilesArray = contexts .map(context => { const searchSource = new SearchSource(context); @@ -253,7 +253,7 @@ export default async function runJest({ ); return relatedSourceFromTestsInChangedFiles; }) - .reduce((total, paths) => [...total, ...paths], []); + .reduce((total, paths) => total.concat(paths), []); testSchedulerContext.sourcesRelatedToTestsInChangedFiles = new Set( sourcesRelatedToTestsInChangedFilesArray, ); diff --git a/packages/jest-reporters/src/coverage_worker.ts b/packages/jest-reporters/src/coverage_worker.ts index 567a8b98064e..d1894b97574c 100644 --- a/packages/jest-reporters/src/coverage_worker.ts +++ b/packages/jest-reporters/src/coverage_worker.ts @@ -40,9 +40,8 @@ export function worker({ path, globalConfig, config, - options && options.changedFiles && new Set(options.changedFiles), - options && - options.sourcesRelatedToTestsInChangedFiles && + options?.changedFiles && new Set(options.changedFiles), + options?.sourcesRelatedToTestsInChangedFiles && new Set(options.sourcesRelatedToTestsInChangedFiles), ); } diff --git a/packages/jest-runner/src/runTest.ts b/packages/jest-runner/src/runTest.ts index 7c957493db51..d9a64a874155 100644 --- a/packages/jest-runner/src/runTest.ts +++ b/packages/jest-runner/src/runTest.ts @@ -147,13 +147,13 @@ async function runTestInternal( setGlobal(environment.global, 'console', testConsole); const runtime = new Runtime(config, environment, resolver, cacheFS, { - changedFiles: context && context.changedFiles, + changedFiles: context?.changedFiles, collectCoverage: globalConfig.collectCoverage, collectCoverageFrom: globalConfig.collectCoverageFrom, collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom, coverageProvider: globalConfig.coverageProvider, sourcesRelatedToTestsInChangedFiles: - context && context.sourcesRelatedToTestsInChangedFiles, + context?.sourcesRelatedToTestsInChangedFiles, }); const start = Date.now();