@nx/jest 18.0.3 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/jest",
3
- "version": "18.0.3",
3
+ "version": "18.0.5",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.",
6
6
  "repository": {
@@ -45,9 +45,9 @@
45
45
  "minimatch": "9.0.3",
46
46
  "resolve.exports": "1.1.0",
47
47
  "tslib": "^2.3.0",
48
- "@nx/devkit": "18.0.3",
49
- "@nx/js": "18.0.3",
50
- "@nrwl/jest": "18.0.3"
48
+ "@nx/devkit": "18.0.5",
49
+ "@nx/js": "18.0.5",
50
+ "@nrwl/jest": "18.0.5"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
@@ -11,6 +11,7 @@ const update_vscode_recommended_extensions_1 = require("./lib/update-vscode-reco
11
11
  const update_workspace_1 = require("./lib/update-workspace");
12
12
  const devkit_1 = require("@nx/devkit");
13
13
  const js_1 = require("@nx/js");
14
+ const is_preset_cjs_1 = require("../../utils/config/is-preset-cjs");
14
15
  const schemaDefaults = {
15
16
  setupFile: 'none',
16
17
  babelJest: false,
@@ -57,9 +58,10 @@ async function configurationGeneratorInternal(tree, schema) {
57
58
  if (!schema.skipPackageJson) {
58
59
  tasks.push((0, ensure_dependencies_1.ensureDependencies)(tree, options));
59
60
  }
60
- await (0, create_jest_config_1.createJestConfig)(tree, options);
61
+ const presetExt = (0, is_preset_cjs_1.isPresetCjs)(tree) ? 'cjs' : 'js';
62
+ await (0, create_jest_config_1.createJestConfig)(tree, options, presetExt);
61
63
  (0, check_for_test_target_1.checkForTestTarget)(tree, options);
62
- (0, create_files_1.createFiles)(tree, options);
64
+ (0, create_files_1.createFiles)(tree, options, presetExt);
63
65
  (0, update_tsconfig_1.updateTsConfig)(tree, options);
64
66
  (0, update_vscode_recommended_extensions_1.updateVsCodeRecommendedExtensions)(tree);
65
67
  const nxJson = (0, devkit_1.readNxJson)(tree);
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable */
2
2
  <% if(js){ %>module.exports =<% } else{ %>export default<% } %> {
3
3
  displayName: '<%= project %>',
4
- preset: '<%= offsetFromRoot %>jest.preset.js',<% if(setupFile !== 'none') { %>
4
+ preset: '<%= offsetFromRoot %>jest.preset.<%= presetExt %>',<% if(setupFile !== 'none') { %>
5
5
  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],<% } %><% if(testEnvironment) { %>
6
6
  testEnvironment: '<%= testEnvironment %>',<% } %><% if(skipSerializers){ %>
7
7
  transform: {
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable */
2
2
  <% if(js){ %>module.exports =<% } else{ %>export default<% } %> {
3
3
  displayName: '<%= project %>',
4
- preset: '<%= offsetFromRoot %>jest.preset.js',
4
+ preset: '<%= offsetFromRoot %>jest.preset.<%= presetExt %>',
5
5
  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],<% if(testEnvironment) { %>
6
6
  testEnvironment: '<%= testEnvironment %>',<% } %>
7
7
  coverageDirectory: '<%= offsetFromRoot %>coverage/<%= projectRoot %>',
@@ -1,3 +1,3 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import { NormalizedJestProjectSchema } from '../schema';
3
- export declare function createFiles(tree: Tree, options: NormalizedJestProjectSchema): void;
3
+ export declare function createFiles(tree: Tree, options: NormalizedJestProjectSchema, presetExt: 'cjs' | 'js'): void;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFiles = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const path_1 = require("path");
6
- function createFiles(tree, options) {
6
+ function createFiles(tree, options, presetExt) {
7
7
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
8
8
  const filesFolder = options.setupFile === 'angular' ? '../files-angular' : '../files';
9
9
  let transformer;
@@ -35,6 +35,7 @@ function createFiles(tree, options) {
35
35
  rootProject: options.rootProject,
36
36
  projectRoot: options.rootProject ? options.project : projectConfig.root,
37
37
  offsetFromRoot: (0, devkit_1.offsetFromRoot)(projectConfig.root),
38
+ presetExt,
38
39
  });
39
40
  if (options.setupFile === 'none') {
40
41
  tree.delete((0, path_1.join)(projectConfig.root, './src/test-setup.ts'));
@@ -1,3 +1,3 @@
1
1
  import { type Tree } from '@nx/devkit';
2
2
  import type { NormalizedJestProjectSchema } from '../schema';
3
- export declare function createJestConfig(tree: Tree, options: Partial<NormalizedJestProjectSchema>): Promise<void>;
3
+ export declare function createJestConfig(tree: Tree, options: Partial<NormalizedJestProjectSchema>, presetExt: 'cjs' | 'js'): Promise<void>;
@@ -4,10 +4,10 @@ exports.createJestConfig = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const project_configuration_utils_1 = require("nx/src/project-graph/utils/project-configuration-utils");
6
6
  const find_root_jest_files_1 = require("../../../utils/config/find-root-jest-files");
7
- async function createJestConfig(tree, options) {
8
- if (!tree.exists('jest.preset.js')) {
7
+ async function createJestConfig(tree, options, presetExt) {
8
+ if (!tree.exists(`jest.preset.${presetExt}`)) {
9
9
  // preset is always js file.
10
- tree.write(`jest.preset.js`, `
10
+ tree.write(`jest.preset.${presetExt}`, `
11
11
  const nxPreset = require('@nx/jest/preset').default;
12
12
 
13
13
  module.exports = { ...nxPreset }`);
@@ -44,9 +44,9 @@ async function createJestConfig(tree, options) {
44
44
  const [jestTargetName, jestTargetConfigInGraph] = jestTarget;
45
45
  // if root project doesn't have jest target, there's nothing to migrate
46
46
  const rootProjectConfig = (0, devkit_1.readProjectConfiguration)(tree, rootProject.name);
47
- if (rootProjectConfig.targets['test']?.executor === 'nx:run-commands'
48
- ? rootProjectConfig.targets['test']?.command !== 'jest'
49
- : rootProjectConfig.targets['test']?.options?.jestConfig !==
47
+ if (rootProjectConfig.targets?.['test']?.executor === 'nx:run-commands'
48
+ ? rootProjectConfig.targets?.['test']?.command !== 'jest'
49
+ : rootProjectConfig.targets?.['test']?.options?.jestConfig !==
50
50
  rootJestPath) {
51
51
  // Jest target has already been updated
52
52
  return;
@@ -5,6 +5,7 @@ const devkit_1 = require("@nx/devkit");
5
5
  const update_package_scripts_1 = require("@nx/devkit/src/utils/update-package-scripts");
6
6
  const plugin_1 = require("../../plugins/plugin");
7
7
  const versions_1 = require("../../utils/versions");
8
+ const is_preset_cjs_1 = require("../../utils/config/is-preset-cjs");
8
9
  function addPlugin(tree) {
9
10
  const nxJson = (0, devkit_1.readNxJson)(tree);
10
11
  nxJson.plugins ??= [];
@@ -20,7 +21,7 @@ function addPlugin(tree) {
20
21
  }
21
22
  (0, devkit_1.updateNxJson)(tree, nxJson);
22
23
  }
23
- function updateProductionFileSet(tree) {
24
+ function updateProductionFileSet(tree, presetExt) {
24
25
  const nxJson = (0, devkit_1.readNxJson)(tree);
25
26
  const productionFileSet = nxJson.namedInputs?.production;
26
27
  if (productionFileSet) {
@@ -40,7 +41,7 @@ function updateProductionFileSet(tree) {
40
41
  }
41
42
  (0, devkit_1.updateNxJson)(tree, nxJson);
42
43
  }
43
- function addJestTargetDefaults(tree) {
44
+ function addJestTargetDefaults(tree, presetEnv) {
44
45
  const nxJson = (0, devkit_1.readNxJson)(tree);
45
46
  nxJson.targetDefaults ??= {};
46
47
  nxJson.targetDefaults['@nx/jest:jest'] ??= {};
@@ -50,7 +51,7 @@ function addJestTargetDefaults(tree) {
50
51
  nxJson.targetDefaults['@nx/jest:jest'].inputs ??= [
51
52
  'default',
52
53
  productionFileSet ? '^production' : '^default',
53
- '{workspaceRoot}/jest.preset.js',
54
+ `{workspaceRoot}/jest.preset.${presetEnv}`,
54
55
  ];
55
56
  nxJson.targetDefaults['@nx/jest:jest'].options ??= {
56
57
  passWithNoTests: true,
@@ -75,13 +76,14 @@ function jestInitGenerator(tree, options) {
75
76
  exports.jestInitGenerator = jestInitGenerator;
76
77
  async function jestInitGeneratorInternal(tree, options) {
77
78
  options.addPlugin ??= process.env.NX_ADD_PLUGINS !== 'false';
78
- if (!tree.exists('jest.preset.js')) {
79
- updateProductionFileSet(tree);
79
+ const presetExt = (0, is_preset_cjs_1.isPresetCjs)(tree) ? 'cjs' : 'js';
80
+ if (!tree.exists('jest.preset.js') && !tree.exists('jest.preset.cjs')) {
81
+ updateProductionFileSet(tree, presetExt);
80
82
  if (options.addPlugin) {
81
83
  addPlugin(tree);
82
84
  }
83
85
  else {
84
- addJestTargetDefaults(tree);
86
+ addJestTargetDefaults(tree, presetExt);
85
87
  }
86
88
  }
87
89
  const tasks = [];
@@ -15,6 +15,9 @@ function findRootJestPreset(tree) {
15
15
  if (tree.exists('jest.preset.js')) {
16
16
  return 'jest.preset.js';
17
17
  }
18
+ if (tree.exists('jest.preset.cjs')) {
19
+ return 'jest.preset.cjs';
20
+ }
18
21
  return null;
19
22
  }
20
23
  exports.findRootJestPreset = findRootJestPreset;
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export declare function isPresetCjs(tree: Tree): boolean;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPresetCjs = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ function isPresetCjs(tree) {
6
+ if (tree.exists('jest.preset.cjs')) {
7
+ return true;
8
+ }
9
+ const rootPkgJson = (0, devkit_1.readJson)(tree, 'package.json');
10
+ if (rootPkgJson.type && rootPkgJson.type === 'module') {
11
+ return true;
12
+ }
13
+ return false;
14
+ }
15
+ exports.isPresetCjs = isPresetCjs;