From 92f0b754986f9d1ce591f2f10b597d651ee06a6c Mon Sep 17 00:00:00 2001 From: Luan Nguyen Date: Mon, 10 Feb 2020 10:06:28 +0700 Subject: [PATCH 1/4] Fix replacePosixSep have pattern call to undefined method --- packages/jest-config/src/normalize.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-config/src/normalize.ts b/packages/jest-config/src/normalize.ts index a2454c373732..b0867824d49d 100644 --- a/packages/jest-config/src/normalize.ts +++ b/packages/jest-config/src/normalize.ts @@ -425,7 +425,7 @@ const buildTestPathPattern = (argv: Config.Argv): string => { if (path.sep === '/') { return pattern; } - return pattern.replace(/\//g, '\\\\'); + return pattern.toString().replace(/\//g, '\\\\'); }; const testPathPattern = patterns.map(replacePosixSep).join('|'); From a02c8969e886ff8c127bcaa12065a4162ca25721 Mon Sep 17 00:00:00 2001 From: Luan Nguyen Date: Mon, 10 Feb 2020 11:06:16 +0700 Subject: [PATCH 2/4] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f35b5d7fe32..67ea54d13c24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - `[jest-snapshot]` Properly indent new snapshots in the presences of existing ones ([#9523](https://github.com/facebook/jest/pull/9523)) - `[jest-transform]` Correct sourcemap behavior for transformed and instrumented code ([#9460](https://github.com/facebook/jest/pull/9460)) - `[pretty-format]` Export `OldPlugin` type ([#9491](https://github.com/facebook/jest/pull/9491)) +- `[jest-config]` Fix pattern of replacePosixSep call to undefined method ([#9546]https://github.com/facebook/jest/pull/9546) ### Chore & Maintenance From 83584998e1684567c9acf0cf945cb104975857f8 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 10 Feb 2020 09:37:28 +0100 Subject: [PATCH 3/4] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67ea54d13c24..9f5f6e37a23f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - `[jest-config]` Treat `setupFilesAfterEnv` like `setupFiles` when normalizing configs against presets ([#9495](https://github.com/facebook/jest/pull/9495)) - `[jest-config]` Support `.mjs` config files on Windows as well ([#9558](https://github.com/facebook/jest/pull/9558)) - `[jest-cli]` Set `coverageProvider` correctly when provided in config ([#9562](https://github.com/facebook/jest/pull/9562)) +- `[jest-config]` Ensure pattern of `replacePosixSep` is a string ([#9546]https://github.com/facebook/jest/pull/9546) - `[jest-matcher-utils]` Fix diff highlight of symbol-keyed object. ([#9499](https://github.com/facebook/jest/pull/9499)) - `[@jest/reporters]` Notifications should be fire&forget rather than having a timeout ([#9567](https://github.com/facebook/jest/pull/9567)) - `[jest-resolve]` Fix module identity preservation with symlinks and browser field resolution ([#9511](https://github.com/facebook/jest/pull/9511)) @@ -20,7 +21,6 @@ - `[jest-snapshot]` Properly indent new snapshots in the presences of existing ones ([#9523](https://github.com/facebook/jest/pull/9523)) - `[jest-transform]` Correct sourcemap behavior for transformed and instrumented code ([#9460](https://github.com/facebook/jest/pull/9460)) - `[pretty-format]` Export `OldPlugin` type ([#9491](https://github.com/facebook/jest/pull/9491)) -- `[jest-config]` Fix pattern of replacePosixSep call to undefined method ([#9546]https://github.com/facebook/jest/pull/9546) ### Chore & Maintenance From 5cb48e98393d78d9cf98bfc09d25377e899a7270 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 12 Feb 2020 15:49:48 +0100 Subject: [PATCH 4/4] add test --- packages/jest-config/src/__tests__/normalize.test.js | 7 +++++++ packages/jest-config/src/normalize.ts | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/jest-config/src/__tests__/normalize.test.js b/packages/jest-config/src/__tests__/normalize.test.js index b3b59a894df8..ce238fe2afd8 100644 --- a/packages/jest-config/src/__tests__/normalize.test.js +++ b/packages/jest-config/src/__tests__/normalize.test.js @@ -1557,6 +1557,13 @@ describe('testPathPattern', () => { expect(options.testPathPattern).toBe('a\\\\b|c\\\\d'); }); + + it('coerces all patterns to strings', () => { + const argv = {[opt.property]: [1]}; + const {options} = normalize(initialOptions, argv); + + expect(options.testPathPattern).toBe('1'); + }); }); }); } diff --git a/packages/jest-config/src/normalize.ts b/packages/jest-config/src/normalize.ts index b0867824d49d..ea72cdef7f85 100644 --- a/packages/jest-config/src/normalize.ts +++ b/packages/jest-config/src/normalize.ts @@ -421,11 +421,13 @@ const buildTestPathPattern = (argv: Config.Argv): string => { patterns.push(...argv.testPathPattern); } - const replacePosixSep = (pattern: string) => { + const replacePosixSep = (pattern: string | number) => { + // yargs coerces positional args into numbers + const patternAsString = pattern.toString(); if (path.sep === '/') { - return pattern; + return patternAsString; } - return pattern.toString().replace(/\//g, '\\\\'); + return patternAsString.replace(/\//g, '\\\\'); }; const testPathPattern = patterns.map(replacePosixSep).join('|');