From 2af70811ec943dcb8c23cf17f1d64cf4166a98c0 Mon Sep 17 00:00:00 2001 From: Wes Pickett Date: Thu, 21 Apr 2022 16:53:26 -0400 Subject: [PATCH] fix: issue with trailing slash in matching coverageThreshold keys https://github.com/facebook/jest/issues/12703 --- packages/jest-reporters/src/CoverageReporter.ts | 5 ++++- .../src/__tests__/CoverageReporter.test.js | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/jest-reporters/src/CoverageReporter.ts b/packages/jest-reporters/src/CoverageReporter.ts index 203435f08f23..d7bf34d97045 100644 --- a/packages/jest-reporters/src/CoverageReporter.ts +++ b/packages/jest-reporters/src/CoverageReporter.ts @@ -269,7 +269,10 @@ export default class CoverageReporter extends BaseReporter { const pathOrGlobMatches = thresholdGroups.reduce< Array<[string, string]> >((agg, thresholdGroup) => { - const absoluteThresholdGroup = path.resolve(thresholdGroup); + // Preserve trailing slash, but not required if root dir + // See https://github.com/facebook/jest/issues/12703 + const suffix = thresholdGroup.length > 1 && thresholdGroup.endsWith(path.sep) ? path.sep : ''; + const absoluteThresholdGroup = `${path.resolve(thresholdGroup)}${suffix}`; // The threshold group might be a path: diff --git a/packages/jest-reporters/src/__tests__/CoverageReporter.test.js b/packages/jest-reporters/src/__tests__/CoverageReporter.test.js index d3222c158e67..798ddbbbd235 100644 --- a/packages/jest-reporters/src/__tests__/CoverageReporter.test.js +++ b/packages/jest-reporters/src/__tests__/CoverageReporter.test.js @@ -44,7 +44,9 @@ beforeEach(() => { 'non_covered_file.js': '', 'relative_path_file.js': '', }; - + fileTree[`${process.cwd()}/path-test`] = { + '100pc_coverage_file.js': '', + }; mock(fileTree); }); @@ -79,6 +81,10 @@ describe('onRunComplete', () => { statements: {covered: 5, pct: 50, skipped: 0, total: 10}, }; const fileCoverage = [ + [ + './path-test/100pc_coverage_file.js', + {statements: {covered: 10, pct: 100, total: 10}}, + ], ['./path-test-files/covered_file_without_threshold.js'], ['./path-test-files/full_path_file.js'], ['./path-test-files/relative_path_file.js'], @@ -306,6 +312,9 @@ describe('onRunComplete', () => { { collectCoverage: true, coverageThreshold: { + './path-test/': { + statements: 100, + }, './path-test-files/': { statements: 50, }, @@ -367,11 +376,14 @@ describe('onRunComplete', () => { { collectCoverage: true, coverageThreshold: { + './path-test/100pc_coverage_file.js': { + statements: 100, + }, './path-test-files/100pc_coverage_file.js': { statements: 100, }, global: { - statements: 50, + statements: 55.55, }, }, },