From ad1493b6bffe0a4fc41097007fcc6fc180e61aea Mon Sep 17 00:00:00 2001 From: Elad Ossadon Date: Fri, 26 Jun 2020 14:42:48 -0700 Subject: [PATCH 1/6] Update file regexp for babel-jest Before ``` "^.+\\.[t|j]sx?$": "babel-jest" ``` After ``` "\\.[jt]sx?$": "babel-jest" ``` RegExp's `[]` doesn't need `|`, in fact, it adds it to the character list it looks for (`/[t|j]/.test('|') === true`). Also since we care only about the suffix, no reason for `^.+`. --- packages/babel-jest/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-jest/README.md b/packages/babel-jest/README.md index 237e5b6d53b7..95050196b2a0 100644 --- a/packages/babel-jest/README.md +++ b/packages/babel-jest/README.md @@ -20,6 +20,6 @@ To explicitly define `babel-jest` as a transformer for your JavaScript code, map ```json "transform": { - "^.+\\.[t|j]sx?$": "babel-jest" + "\\.[jt]sx?$": "babel-jest" }, ``` From 708545f1be0e1c3aff2a45e132bd1c1179d64a18 Mon Sep 17 00:00:00 2001 From: Elad Ossadon Date: Sun, 5 Jul 2020 15:55:48 -0700 Subject: [PATCH 2/6] update ALL THE FILES --- docs/Configuration.md | 4 +- docs/Webpack.md | 4 +- .../__snapshots__/showConfig.test.ts.snap | 2 +- e2e/coverage-remapping/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- e2e/node-path/package.json | 2 +- e2e/package.json | 2 +- e2e/snapshot-serializers/package.json | 2 +- .../package.json | 2 +- e2e/stack-trace-source-maps/package.json | 2 +- e2e/transform-linked-modules/package.json | 2 +- e2e/transform/cache/package.json | 2 +- .../package.json | 2 +- .../ecmascript-modules-support/package.json | 2 +- .../multiple-transformers/package.json | 6 +-- e2e/typescript-coverage/package.json | 2 +- e2e/v8-coverage/no-sourcemap/package.json | 4 +- examples/angular/jest.config.js | 5 +-- examples/react-native/jest.config.js | 2 +- jest.config.js | 2 +- packages/jest-config/src/ValidConfig.ts | 2 +- .../src/__tests__/normalize.test.js | 4 +- packages/jest-config/src/constants.ts | 2 +- .../__tests__/generateEmptyCoverage.test.js | 6 +-- .../__tests__/runtime_internal_module.test.js | 10 ++--- .../script_transformer.test.js.snap | 6 +-- .../src/__tests__/script_transformer.test.js | 40 +++++++++---------- packages/jest-validate/README.md | 2 +- .../src/__tests__/fixtures/jestConfig.ts | 2 +- .../version-26.0/Configuration.md | 4 +- 31 files changed, 65 insertions(+), 68 deletions(-) diff --git a/docs/Configuration.md b/docs/Configuration.md index 0e774f4f21fa..9f8ac1ecab99 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1138,7 +1138,7 @@ If the value is `modern`, [`@sinonjs/fake-timers`](https://github.com/sinonjs/fa ### `transform` [object\] -Default: `{"^.+\\.[jt]sx?$": "babel-jest"}` +Default: `{"\\.[jt]sx?$": "babel-jest"}` A map from regular expressions to paths to transformers. A transformer is a module that provides a synchronous function for transforming source files. For example, if you wanted to be able to use a new language feature in your modules or tests that isn't yet supported by node, you might plug in one of many compilers that compile a future version of JavaScript to a current one. Example: see the [examples/typescript](https://github.com/facebook/jest/blob/master/examples/typescript/package.json#L16) example or the [webpack tutorial](Webpack.md). @@ -1153,7 +1153,7 @@ You can pass configuration to a transformer like `{filePattern: ['path-to-transf _Note: a transformer is only run once per file unless the file has changed. During development of a transformer it can be useful to run Jest with `--no-cache` to frequently [delete Jest's cache](Troubleshooting.md#caching-issues)._ -_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"^.+\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ +_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ ### `transformIgnorePatterns` [array\] diff --git a/docs/Webpack.md b/docs/Webpack.md index 727b1ab55650..be2498e7ff56 100644 --- a/docs/Webpack.md +++ b/docs/Webpack.md @@ -125,8 +125,8 @@ _Note: if you are using babel-jest with additional code preprocessors, you have ```json "transform": { - "^.+\\.js$": "babel-jest", - "^.+\\.css$": "custom-transformer", + "\\.js$": "babel-jest", + "\\.css$": "custom-transformer", ... } ``` diff --git a/e2e/__tests__/__snapshots__/showConfig.test.ts.snap b/e2e/__tests__/__snapshots__/showConfig.test.ts.snap index 9c644c2b47e6..5b203cd096c6 100644 --- a/e2e/__tests__/__snapshots__/showConfig.test.ts.snap +++ b/e2e/__tests__/__snapshots__/showConfig.test.ts.snap @@ -65,7 +65,7 @@ exports[`--showConfig outputs config info and exits 1`] = ` "timers": "real", "transform": [ [ - "^.+\\\\.[jt]sx?$", + "\\\\.[jt]sx?$", "<>/babel-jest/build/index.js", {} ] diff --git a/e2e/coverage-remapping/package.json b/e2e/coverage-remapping/package.json index 774dda6861dd..ff2715e71f98 100644 --- a/e2e/coverage-remapping/package.json +++ b/e2e/coverage-remapping/package.json @@ -2,7 +2,7 @@ "jest": { "rootDir": "./", "transform": { - "^.+\\.(ts|js)$": "/typescriptPreprocessor.js" + "\\.(ts|js)$": "/typescriptPreprocessor.js" }, "testEnvironment": "node" }, diff --git a/e2e/coverage-transform-instrumented/package.json b/e2e/coverage-transform-instrumented/package.json index 5676ccada0fc..db634e8daac3 100644 --- a/e2e/coverage-transform-instrumented/package.json +++ b/e2e/coverage-transform-instrumented/package.json @@ -2,7 +2,7 @@ "jest": { "rootDir": "./", "transform": { - "^.+\\.(js)$": "/preprocessor.js" + "\\.(js)$": "/preprocessor.js" }, "testRegex": "/__tests__/.*\\.(js)$", "testEnvironment": "node", diff --git a/e2e/global-setup-custom-transform/package.json b/e2e/global-setup-custom-transform/package.json index 508172a45c33..c6a790b34eff 100644 --- a/e2e/global-setup-custom-transform/package.json +++ b/e2e/global-setup-custom-transform/package.json @@ -3,7 +3,7 @@ "testEnvironment": "node", "globalSetup": "/setup.js", "transform": { - "^.+\\.js$": "/transformer.js" + "\\.js$": "/transformer.js" } } } diff --git a/e2e/node-path/package.json b/e2e/node-path/package.json index ab33604cd518..fa03d1c35d08 100644 --- a/e2e/node-path/package.json +++ b/e2e/node-path/package.json @@ -2,7 +2,7 @@ "jest": { "testEnvironment": "node", "transform": { - "^.+\\.jsx?$": "../../packages/babel-jest" + "\\.jsx?$": "../../packages/babel-jest" } } } diff --git a/e2e/package.json b/e2e/package.json index 791c8012767a..6f5befae69a6 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -1,7 +1,7 @@ { "jest": { "transform": { - "^.+\\.js$": "/../packages/babel-jest" + "\\.js$": "/../packages/babel-jest" }, "testEnvironment": "node", "testPathIgnorePatterns": [ diff --git a/e2e/snapshot-serializers/package.json b/e2e/snapshot-serializers/package.json index 658160fc0f8e..2eab6d3f2150 100644 --- a/e2e/snapshot-serializers/package.json +++ b/e2e/snapshot-serializers/package.json @@ -2,7 +2,7 @@ "jest": { "testEnvironment": "node", "transform": { - "^.+\\.js$": "/transformer.js" + "\\.js$": "/transformer.js" }, "snapshotSerializers": [ "./plugins/foo", diff --git a/e2e/stack-trace-source-maps-with-coverage/package.json b/e2e/stack-trace-source-maps-with-coverage/package.json index f8fbad2d8bca..56d2defe8c95 100644 --- a/e2e/stack-trace-source-maps-with-coverage/package.json +++ b/e2e/stack-trace-source-maps-with-coverage/package.json @@ -2,7 +2,7 @@ "jest": { "rootDir": "./", "transform": { - "^.+\\.(ts)$": "/preprocessor.js" + "\\.(ts)$": "/preprocessor.js" }, "testEnvironment": "node", "testRegex": "fails" diff --git a/e2e/stack-trace-source-maps/package.json b/e2e/stack-trace-source-maps/package.json index f8fbad2d8bca..56d2defe8c95 100644 --- a/e2e/stack-trace-source-maps/package.json +++ b/e2e/stack-trace-source-maps/package.json @@ -2,7 +2,7 @@ "jest": { "rootDir": "./", "transform": { - "^.+\\.(ts)$": "/preprocessor.js" + "\\.(ts)$": "/preprocessor.js" }, "testEnvironment": "node", "testRegex": "fails" diff --git a/e2e/transform-linked-modules/package.json b/e2e/transform-linked-modules/package.json index 0887a1756750..76fce8cdf931 100644 --- a/e2e/transform-linked-modules/package.json +++ b/e2e/transform-linked-modules/package.json @@ -7,7 +7,7 @@ "/ignored/" ], "transform": { - "^.+\\.js$": "/preprocessor.js" + "\\.js$": "/preprocessor.js" } } } diff --git a/e2e/transform/cache/package.json b/e2e/transform/cache/package.json index d75bca46c3ba..3bd182db1258 100644 --- a/e2e/transform/cache/package.json +++ b/e2e/transform/cache/package.json @@ -4,7 +4,7 @@ "jest": { "testEnvironment": "node", "transform": { - "^.+\\.js$": "/transformer.js" + "\\.js$": "/transformer.js" } } } diff --git a/e2e/transform/custom-instrumenting-preprocessor/package.json b/e2e/transform/custom-instrumenting-preprocessor/package.json index 088eb25348a4..f1e6d9d26756 100644 --- a/e2e/transform/custom-instrumenting-preprocessor/package.json +++ b/e2e/transform/custom-instrumenting-preprocessor/package.json @@ -1,7 +1,7 @@ { "jest": { "transform": { - "^.+\\.js$": "/preprocessor.js" + "\\.js$": "/preprocessor.js" }, "testEnvironment": "node" } diff --git a/e2e/transform/ecmascript-modules-support/package.json b/e2e/transform/ecmascript-modules-support/package.json index d37c7ca66af6..35192357168b 100644 --- a/e2e/transform/ecmascript-modules-support/package.json +++ b/e2e/transform/ecmascript-modules-support/package.json @@ -12,7 +12,7 @@ "**/__tests__/**/*.mjs" ], "transform": { - "^.+\\.mjs?$": "../../../packages/babel-jest" + "\\.mjs?$": "../../../packages/babel-jest" } } } diff --git a/e2e/transform/multiple-transformers/package.json b/e2e/transform/multiple-transformers/package.json index 393763823ac8..47cbbff146f2 100644 --- a/e2e/transform/multiple-transformers/package.json +++ b/e2e/transform/multiple-transformers/package.json @@ -1,9 +1,9 @@ { "jest": { "transform": { - "^.+\\.css$": "/cssPreprocessor.js", - "^.+\\.js$": "/jsPreprocessor.js", - "^.+\\.svg$": "/filePreprocessor.js" + "\\.css$": "/cssPreprocessor.js", + "\\.js$": "/jsPreprocessor.js", + "\\.svg$": "/filePreprocessor.js" }, "testEnvironment": "node" }, diff --git a/e2e/typescript-coverage/package.json b/e2e/typescript-coverage/package.json index ffe9414a2849..24255a467dd7 100644 --- a/e2e/typescript-coverage/package.json +++ b/e2e/typescript-coverage/package.json @@ -2,7 +2,7 @@ "jest": { "rootDir": "./", "transform": { - "^.+\\.(ts|js)$": "/typescriptPreprocessor.js" + "\\.(ts|js)$": "/typescriptPreprocessor.js" }, "testEnvironment": "node" }, diff --git a/e2e/v8-coverage/no-sourcemap/package.json b/e2e/v8-coverage/no-sourcemap/package.json index 033719f58b9b..e63e40a94614 100644 --- a/e2e/v8-coverage/no-sourcemap/package.json +++ b/e2e/v8-coverage/no-sourcemap/package.json @@ -4,8 +4,8 @@ "jest": { "testEnvironment": "node", "transform": { - "^.+\\.[jt]sx?$": "babel-jest", - "^.+\\.css$": "/cssTransform.js" + "\\.[jt]sx?$": "babel-jest", + "\\.css$": "/cssTransform.js" } } } diff --git a/examples/angular/jest.config.js b/examples/angular/jest.config.js index 4329aeac9dad..e6cbd08cca2f 100644 --- a/examples/angular/jest.config.js +++ b/examples/angular/jest.config.js @@ -2,9 +2,6 @@ module.exports = { moduleFileExtensions: ['ts', 'html', 'js', 'json'], setupFilesAfterEnv: ['/setupJest.js'], transform: { - '^.+\\.[t|j]s$': [ - 'babel-jest', - {configFile: require.resolve('./.babelrc')}, - ], + '\\.[tj]s$': ['babel-jest', {configFile: require.resolve('./.babelrc')}], }, }; diff --git a/examples/react-native/jest.config.js b/examples/react-native/jest.config.js index ec9160a9797c..802106b0009d 100644 --- a/examples/react-native/jest.config.js +++ b/examples/react-native/jest.config.js @@ -1,6 +1,6 @@ module.exports = { preset: 'react-native', transform: { - '^.+\\.(js|ts|tsx)$': require.resolve('react-native/jest/preprocessor.js'), + '\\.(js|ts|tsx)$': require.resolve('react-native/jest/preprocessor.js'), }, }; diff --git a/jest.config.js b/jest.config.js index 18ad91a82b6d..0cee59f3e3b2 100644 --- a/jest.config.js +++ b/jest.config.js @@ -61,7 +61,7 @@ module.exports = { '/e2e/__tests__/iterator-to-null-test.ts', ], transform: { - '^.+\\.[jt]sx?$': '/packages/babel-jest', + '\\.[jt]sx?$': '/packages/babel-jest', }, watchPathIgnorePatterns: ['coverage'], watchPlugins: [ diff --git a/packages/jest-config/src/ValidConfig.ts b/packages/jest-config/src/ValidConfig.ts index 4fa4022acc8c..7c9a12be22e7 100644 --- a/packages/jest-config/src/ValidConfig.ts +++ b/packages/jest-config/src/ValidConfig.ts @@ -117,7 +117,7 @@ const initialOptions: Config.InitialOptions = { testURL: 'http://localhost', timers: 'real', transform: { - '^.+\\.js$': '/preprocessor.js', + '\\.js$': '/preprocessor.js', }, transformIgnorePatterns: [NODE_MODULES_REGEXP], unmockedModulePathPatterns: ['mock'], diff --git a/packages/jest-config/src/__tests__/normalize.test.js b/packages/jest-config/src/__tests__/normalize.test.js index eb7ba42ad4a5..89ee1bdb2daa 100644 --- a/packages/jest-config/src/__tests__/normalize.test.js +++ b/packages/jest-config/src/__tests__/normalize.test.js @@ -14,7 +14,7 @@ import Defaults from '../Defaults'; import {DEFAULT_JS_PATTERN} from '../constants'; -const DEFAULT_CSS_PATTERN = '^.+\\.(css)$'; +const DEFAULT_CSS_PATTERN = '\\.(css)$'; jest .mock('jest-resolve') @@ -779,7 +779,7 @@ describe('babel-jest', () => { }); it('uses babel-jest if babel-jest is explicitly specified in a custom transform options', () => { - const customJSPattern = '^.+\\.js$'; + const customJSPattern = '\\.js$'; const {options} = normalize( { rootDir: '/root', diff --git a/packages/jest-config/src/constants.ts b/packages/jest-config/src/constants.ts index 3ae6c9701ece..c48012c4a3ba 100644 --- a/packages/jest-config/src/constants.ts +++ b/packages/jest-config/src/constants.ts @@ -8,7 +8,7 @@ import * as path from 'path'; export const NODE_MODULES = path.sep + 'node_modules' + path.sep; -export const DEFAULT_JS_PATTERN = '^.+\\.[jt]sx?$'; +export const DEFAULT_JS_PATTERN = '\\.[jt]sx?$'; export const DEFAULT_REPORTER_LABEL = 'default'; export const PACKAGE_JSON = 'package.json'; export const JEST_CONFIG_BASE_NAME = 'jest.config'; diff --git a/packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js b/packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js index fc8a081c4aaf..d9ff39a95b2b 100644 --- a/packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js +++ b/packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js @@ -51,7 +51,7 @@ describe('generateEmptyCoverage', () => { cacheDirectory: os.tmpdir(), cwd: rootDir, rootDir, - transform: [['^.+\\.js$', require.resolve('babel-jest')]], + transform: [['\\.js$', require.resolve('babel-jest')]], }), ); @@ -95,7 +95,7 @@ describe('generateEmptyCoverage', () => { cacheDirectory: os.tmpdir(), cwd: rootDir, rootDir, - transform: [['^.+\\.js$', require.resolve('babel-jest')]], + transform: [['\\.js$', require.resolve('babel-jest')]], }), ); @@ -124,7 +124,7 @@ describe('generateEmptyCoverage', () => { cacheDirectory: os.tmpdir(), cwd: rootDir, rootDir, - transform: [['^.+\\.js$', require.resolve('babel-jest')]], + transform: [['\\.js$', require.resolve('babel-jest')]], }), ); diff --git a/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js b/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js index 7ed833b9f4a9..543242d2d013 100644 --- a/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js +++ b/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js @@ -17,12 +17,12 @@ describe('Runtime', () => { jest.resetModules(); createRuntime = require('createRuntime'); - }); + }) describe('internalModule', () => { it('loads modules and applies transforms', () => createRuntime(__filename, { - transform: {'^.+\\.js$': './test_preprocessor'}, + transform: {'\\.js$': './test_preprocessor'}, }).then(runtime => { const modulePath = path.resolve( path.dirname(runtime.__mockRootPath), @@ -35,7 +35,7 @@ describe('Runtime', () => { it('loads internal modules without applying transforms', () => createRuntime(__filename, { - transform: {'^.+\\.js$': './test_preprocessor'}, + transform: {'\\.js$': './test_preprocessor'}, }).then(runtime => { const modulePath = path.resolve( path.dirname(runtime.__mockRootPath), @@ -47,7 +47,7 @@ describe('Runtime', () => { it('loads JSON modules and applies transforms', () => createRuntime(__filename, { - transform: {'^.+\\.json$': './test_json_preprocessor'}, + transform: {'\\.json$': './test_json_preprocessor'}, }).then(runtime => { const modulePath = path.resolve( path.dirname(runtime.__mockRootPath), @@ -59,7 +59,7 @@ describe('Runtime', () => { it('loads internal JSON modules without applying transforms', () => createRuntime(__filename, { - transform: {'^.+\\.json$': './test_json_preprocessor'}, + transform: {'\\.json$': './test_json_preprocessor'}, }).then(runtime => { const modulePath = path.resolve( path.dirname(runtime.__mockRootPath), diff --git a/packages/jest-transform/src/__tests__/__snapshots__/script_transformer.test.js.snap b/packages/jest-transform/src/__tests__/__snapshots__/script_transformer.test.js.snap index 6114987506eb..c66106a468af 100644 --- a/packages/jest-transform/src/__tests__/__snapshots__/script_transformer.test.js.snap +++ b/packages/jest-transform/src/__tests__/__snapshots__/script_transformer.test.js.snap @@ -56,7 +56,7 @@ Object { "timers": "real", "transform": Array [ Array [ - "^.+\\\\.js$", + "\\\\.js$", "test_preprocessor", ], ], @@ -229,7 +229,7 @@ exports[`ScriptTransformer uses multiple preprocessors 1`] = ` const TRANSFORMED = { filename: '/fruits/banana.js', script: 'module.exports = "banana";', - config: '{"automock":false,"cache":true,"cacheDirectory":"/cache/","clearMocks":false,"coveragePathIgnorePatterns":[],"cwd":"/test_root_dir/","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{},"moduleDirectories":[],"moduleFileExtensions":["js"],"moduleLoader":"/test_module_loader_path","moduleNameMapper":[],"modulePathIgnorePatterns":[],"modulePaths":[],"name":"test","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/","roots":[],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"skipNodeResolution":false,"snapshotSerializers":[],"testEnvironment":"node","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":[],"testRegex":["\\\\.test\\\\.js$"],"testRunner":"jest-jasmine2","testURL":"http://localhost","timers":"real","transform":[["^.+\\\\.js$","test_preprocessor"],["^.+\\\\.css$","css-preprocessor"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]}', + config: '{"automock":false,"cache":true,"cacheDirectory":"/cache/","clearMocks":false,"coveragePathIgnorePatterns":[],"cwd":"/test_root_dir/","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{},"moduleDirectories":[],"moduleFileExtensions":["js"],"moduleLoader":"/test_module_loader_path","moduleNameMapper":[],"modulePathIgnorePatterns":[],"modulePaths":[],"name":"test","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/","roots":[],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"skipNodeResolution":false,"snapshotSerializers":[],"testEnvironment":"node","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":[],"testRegex":["\\\\.test\\\\.js$"],"testRunner":"jest-jasmine2","testURL":"http://localhost","timers":"real","transform":[["\\\\.js$","test_preprocessor"],["\\\\.css$","css-preprocessor"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]}', }; `; @@ -246,7 +246,7 @@ exports[`ScriptTransformer uses the supplied preprocessor 1`] = ` const TRANSFORMED = { filename: '/fruits/banana.js', script: 'module.exports = "banana";', - config: '{"automock":false,"cache":true,"cacheDirectory":"/cache/","clearMocks":false,"coveragePathIgnorePatterns":[],"cwd":"/test_root_dir/","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{},"moduleDirectories":[],"moduleFileExtensions":["js"],"moduleLoader":"/test_module_loader_path","moduleNameMapper":[],"modulePathIgnorePatterns":[],"modulePaths":[],"name":"test","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/","roots":[],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"skipNodeResolution":false,"snapshotSerializers":[],"testEnvironment":"node","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":[],"testRegex":["\\\\.test\\\\.js$"],"testRunner":"jest-jasmine2","testURL":"http://localhost","timers":"real","transform":[["^.+\\\\.js$","test_preprocessor"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]}', + config: '{"automock":false,"cache":true,"cacheDirectory":"/cache/","clearMocks":false,"coveragePathIgnorePatterns":[],"cwd":"/test_root_dir/","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{},"moduleDirectories":[],"moduleFileExtensions":["js"],"moduleLoader":"/test_module_loader_path","moduleNameMapper":[],"modulePathIgnorePatterns":[],"modulePaths":[],"name":"test","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/","roots":[],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"skipNodeResolution":false,"snapshotSerializers":[],"testEnvironment":"node","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":[],"testRegex":["\\\\.test\\\\.js$"],"testRunner":"jest-jasmine2","testURL":"http://localhost","timers":"real","transform":[["\\\\.js$","test_preprocessor"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]}', }; `; diff --git a/packages/jest-transform/src/__tests__/script_transformer.test.js b/packages/jest-transform/src/__tests__/script_transformer.test.js index fd8c31d2b007..31f2e94e233f 100644 --- a/packages/jest-transform/src/__tests__/script_transformer.test.js +++ b/packages/jest-transform/src/__tests__/script_transformer.test.js @@ -281,7 +281,7 @@ describe('ScriptTransformer', () => { () => { config = { ...config, - transform: [['^.+\\.js$', 'passthrough-preprocessor']], + transform: [['\\.js$', 'passthrough-preprocessor']], }; const scriptTransformer = new ScriptTransformer(config); @@ -317,7 +317,7 @@ describe('ScriptTransformer', () => { it("throws an error if `process` doesn't defined", () => { config = { ...config, - transform: [['^.+\\.js$', 'skipped-required-props-preprocessor']], + transform: [['\\.js$', 'skipped-required-props-preprocessor']], }; const scriptTransformer = new ScriptTransformer(config); expect(() => @@ -329,7 +329,7 @@ describe('ScriptTransformer', () => { config = { ...config, transform: [ - ['^.+\\.js$', 'skipped-required-create-transformer-props-preprocessor'], + ['\\.js$', 'skipped-required-create-transformer-props-preprocessor'], ], }; const scriptTransformer = new ScriptTransformer(config); @@ -341,7 +341,7 @@ describe('ScriptTransformer', () => { it("shouldn't throw error without process method. But with corrent createTransformer method", () => { config = { ...config, - transform: [['^.+\\.js$', 'skipped-process-method-preprocessor']], + transform: [['\\.js$', 'skipped-process-method-preprocessor']], }; const scriptTransformer = new ScriptTransformer(config); expect(() => @@ -350,7 +350,7 @@ describe('ScriptTransformer', () => { }); it('uses the supplied preprocessor', () => { - config = {...config, transform: [['^.+\\.js$', 'test_preprocessor']]}; + config = {...config, transform: [['\\.js$', 'test_preprocessor']]}; const scriptTransformer = new ScriptTransformer(config); const res1 = scriptTransformer.transform('/fruits/banana.js', {}); @@ -367,8 +367,8 @@ describe('ScriptTransformer', () => { config = { ...config, transform: [ - ['^.+\\.js$', 'test_preprocessor'], - ['^.+\\.css$', 'css-preprocessor'], + ['\\.js$', 'test_preprocessor'], + ['\\.css$', 'css-preprocessor'], ], }; const scriptTransformer = new ScriptTransformer(config); @@ -389,7 +389,7 @@ describe('ScriptTransformer', () => { it('writes source map if preprocessor supplies it', () => { config = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(config); @@ -419,7 +419,7 @@ describe('ScriptTransformer', () => { it('writes source map if preprocessor inlines it', () => { config = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(config); @@ -454,7 +454,7 @@ describe('ScriptTransformer', () => { config = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(config); @@ -488,7 +488,7 @@ describe('ScriptTransformer', () => { it('writes source maps if given by the transformer', () => { config = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(config); @@ -521,7 +521,7 @@ describe('ScriptTransformer', () => { it('does not write source map if not given by the transformer', () => { config = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(config); @@ -543,7 +543,7 @@ describe('ScriptTransformer', () => { it('should write a source map for the instrumented file when transformed', () => { const transformerConfig = { ...config, - transform: [['^.+\\.js$', 'preprocessor-with-sourcemaps']], + transform: [['\\.js$', 'preprocessor-with-sourcemaps']], }; const scriptTransformer = new ScriptTransformer(transformerConfig); @@ -626,7 +626,7 @@ describe('ScriptTransformer', () => { }); it('passes expected transform options to getCacheKey', () => { - config = {...config, transform: [['^.+\\.js$', 'test_preprocessor']]}; + config = {...config, transform: [['\\.js$', 'test_preprocessor']]}; const scriptTransformer = new ScriptTransformer(config); scriptTransformer.transform( @@ -644,7 +644,7 @@ describe('ScriptTransformer', () => { const transformerConfig = {}; config = Object.assign(config, { transform: [ - ['^.+\\.js$', 'configureable-preprocessor', transformerConfig], + ['\\.js$', 'configureable-preprocessor', transformerConfig], ], }); @@ -658,7 +658,7 @@ describe('ScriptTransformer', () => { it('reads values from the cache', () => { const transformConfig = { ...config, - transform: [['^.+\\.js$', 'test_preprocessor']], + transform: [['\\.js$', 'test_preprocessor']], }; let scriptTransformer = new ScriptTransformer(transformConfig); scriptTransformer.transform('/fruits/banana.js', {}); @@ -699,7 +699,7 @@ describe('ScriptTransformer', () => { it('reads values from the cache when the file contains colons', () => { const transformConfig = { ...config, - transform: [['^.+\\.js$', 'test_preprocessor']], + transform: [['\\.js$', 'test_preprocessor']], }; let scriptTransformer = new ScriptTransformer(transformConfig); scriptTransformer.transform('/fruits/banana:colon.js', {}); @@ -727,14 +727,14 @@ describe('ScriptTransformer', () => { it('does not reuse the in-memory cache between different projects', () => { const scriptTransformer = new ScriptTransformer({ ...config, - transform: [['^.+\\.js$', 'test_preprocessor']], + transform: [['\\.js$', 'test_preprocessor']], }); scriptTransformer.transform('/fruits/banana.js', {}); const anotherScriptTransformer = new ScriptTransformer({ ...config, - transform: [['^.+\\.js$', 'css-preprocessor']], + transform: [['\\.js$', 'css-preprocessor']], }); anotherScriptTransformer.transform('/fruits/banana.js', {}); @@ -746,7 +746,7 @@ describe('ScriptTransformer', () => { it('preload transformer when using `preloadTransformer`', () => { const scriptTransformer = new ScriptTransformer({ ...config, - transform: [['^.+\\.js$', 'test_preprocessor']], + transform: [['\\.js$', 'test_preprocessor']], }); expect(Array.from(scriptTransformer._transformCache.entries())).toEqual([]); diff --git a/packages/jest-validate/README.md b/packages/jest-validate/README.md index efe749a25838..ebf791d6075d 100644 --- a/packages/jest-validate/README.md +++ b/packages/jest-validate/README.md @@ -131,7 +131,7 @@ This will output: Example: { "transform": { - "^.+\\.js$": "/preprocessor.js" + "\\.js$": "/preprocessor.js" } } diff --git a/packages/jest-validate/src/__tests__/fixtures/jestConfig.ts b/packages/jest-validate/src/__tests__/fixtures/jestConfig.ts index 8e1438a5e810..da7a4c201017 100644 --- a/packages/jest-validate/src/__tests__/fixtures/jestConfig.ts +++ b/packages/jest-validate/src/__tests__/fixtures/jestConfig.ts @@ -115,7 +115,7 @@ const validConfig = { testURL: 'http://localhost', timers: 'real', transform: { - '^.+\\.js$': '/preprocessor.js', + '\\.js$': '/preprocessor.js', }, transformIgnorePatterns: [NODE_MODULES_REGEXP], unmockedModulePathPatterns: ['mock'], diff --git a/website/versioned_docs/version-26.0/Configuration.md b/website/versioned_docs/version-26.0/Configuration.md index 46bc1f3517c5..ae465e434401 100644 --- a/website/versioned_docs/version-26.0/Configuration.md +++ b/website/versioned_docs/version-26.0/Configuration.md @@ -1131,7 +1131,7 @@ If the value is `modern`, [`@sinonjs/fake-timers`](https://github.com/sinonjs/fa ### `transform` [object\] -Default: `{"^.+\\.[jt]sx?$": "babel-jest"}` +Default: `{"\\.[jt]sx?$": "babel-jest"}` A map from regular expressions to paths to transformers. A transformer is a module that provides a synchronous function for transforming source files. For example, if you wanted to be able to use a new language feature in your modules or tests that isn't yet supported by node, you might plug in one of many compilers that compile a future version of JavaScript to a current one. Example: see the [examples/typescript](https://github.com/facebook/jest/blob/master/examples/typescript/package.json#L16) example or the [webpack tutorial](Webpack.md). @@ -1146,7 +1146,7 @@ You can pass configuration to a transformer like `{filePattern: ['path-to-transf _Note: a transformer is only run once per file unless the file has changed. During development of a transformer it can be useful to run Jest with `--no-cache` to frequently [delete Jest's cache](Troubleshooting.md#caching-issues)._ -_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"^.+\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ +_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ ### `transformIgnorePatterns` [array\] From 3744eaa25df3a98cbe19368a351f5b16429c5965 Mon Sep 17 00:00:00 2001 From: Elad Ossadon Date: Sun, 5 Jul 2020 16:03:27 -0700 Subject: [PATCH 3/6] ; --- .../jest-runtime/src/__tests__/runtime_internal_module.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js b/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js index 543242d2d013..3c6653f3cebe 100644 --- a/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js +++ b/packages/jest-runtime/src/__tests__/runtime_internal_module.test.js @@ -17,7 +17,7 @@ describe('Runtime', () => { jest.resetModules(); createRuntime = require('createRuntime'); - }) + }); describe('internalModule', () => { it('loads modules and applies transforms', () => From bd5bd634b77267356c2f0392ec8f8eb2652bd64d Mon Sep 17 00:00:00 2001 From: Elad Ossadon Date: Sun, 5 Jul 2020 16:58:30 -0700 Subject: [PATCH 4/6] lint --- .../jest-transform/src/__tests__/script_transformer.test.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/jest-transform/src/__tests__/script_transformer.test.js b/packages/jest-transform/src/__tests__/script_transformer.test.js index 31f2e94e233f..f81c63f0453c 100644 --- a/packages/jest-transform/src/__tests__/script_transformer.test.js +++ b/packages/jest-transform/src/__tests__/script_transformer.test.js @@ -643,9 +643,7 @@ describe('ScriptTransformer', () => { it('creates transformer with config', () => { const transformerConfig = {}; config = Object.assign(config, { - transform: [ - ['\\.js$', 'configureable-preprocessor', transformerConfig], - ], + transform: [['\\.js$', 'configureable-preprocessor', transformerConfig]], }); const scriptTransformer = new ScriptTransformer(config); From e5472a147b601ddaacfafc2f0f73f4fd6e2686b9 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 19 Oct 2020 12:58:24 +0200 Subject: [PATCH 5/6] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59327bcc66b9..252c39edb60e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Fixes +- `[jest-config]` Simplify transform RegExp ([#10207](https://github.com/facebook/jest/pull/10207)) - `[jest-runtime]` `require.main` is no longer `undefined` when using `jest.resetModules` ([#10626](https://github.com/facebook/jest/pull/10626)) - `[@jest/types]` Add missing values for `timers` ([#10632](https://github.com/facebook/jest/pull/10632)) From 442e137ed65560d3772121919c1fce25b850e0be Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 19 Oct 2020 13:02:33 +0200 Subject: [PATCH 6/6] rollback change in versioned docs --- website/versioned_docs/version-26.0/Configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/versioned_docs/version-26.0/Configuration.md b/website/versioned_docs/version-26.0/Configuration.md index 34bdf32b8069..9963ab3274c8 100644 --- a/website/versioned_docs/version-26.0/Configuration.md +++ b/website/versioned_docs/version-26.0/Configuration.md @@ -1139,7 +1139,7 @@ If the value is `modern`, [`@sinonjs/fake-timers`](https://github.com/sinonjs/fa ### `transform` [object\] -Default: `{"\\.[jt]sx?$": "babel-jest"}` +Default: `{"^.+\\.[jt]sx?$": "babel-jest"}` A map from regular expressions to paths to transformers. A transformer is a module that provides a synchronous function for transforming source files. For example, if you wanted to be able to use a new language feature in your modules or tests that aren't yet supported by node, you might plug in one of many compilers that compile a future version of JavaScript to a current one. Example: see the [examples/typescript](https://github.com/facebook/jest/blob/master/examples/typescript/package.json#L16) example or the [webpack tutorial](Webpack.md). @@ -1154,7 +1154,7 @@ You can pass configuration to a transformer like `{filePattern: ['path-to-transf _Note: a transformer is only run once per file unless the file has changed. During the development of a transformer it can be useful to run Jest with `--no-cache` to frequently [delete Jest's cache](Troubleshooting.md#caching-issues)._ -_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ +_Note: when adding additional code transformers, this will overwrite the default config and `babel-jest` is no longer automatically loaded. If you want to use it to compile JavaScript or Typescript, it has to be explicitly defined by adding `{"^.+\\.[jt]sx?$": "babel-jest"}` to the transform property. See [babel-jest plugin](https://github.com/facebook/jest/tree/master/packages/babel-jest#setup)_ ### `transformIgnorePatterns` [array\]