@nx/vitest 24.0.0-beta.1 → 24.0.0-beta.2

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.
@@ -194,9 +194,9 @@ getTestBed().initTestEnvironment(
194
194
  (0, internal_1.upsertTargetDefault)(tree, nxJson, { target: testTarget, dependsOn });
195
195
  (0, devkit_1.updateNxJson)(tree, nxJson);
196
196
  }
197
- const devDependencies = await getCoverageProviderDependency(tree, schema.coverageProvider);
198
- devDependencies['@types/node'] = internal_2.typesNodeVersion;
199
197
  if (!schema.skipPackageJson) {
198
+ const devDependencies = await getCoverageProviderDependency(tree, schema.coverageProvider);
199
+ devDependencies['@types/node'] = internal_2.typesNodeVersion;
200
200
  const installDependenciesTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, true);
201
201
  tasks.push(installDependenciesTask);
202
202
  }
@@ -77,13 +77,45 @@ function versions(tree, options) {
77
77
  return (supported ?? VITEST_COMPAT[0]).versions;
78
78
  }
79
79
  /**
80
- * `@analogjs/vitest-angular` at the version Nx installs, and `@angular/build`,
81
- * both peer vitest 4. A workspace carrying either cannot take vitest 5.
80
+ * Packages that peer vitest, with the first version whose peer range takes
81
+ * vitest 5. Older versions peer vitest 4 and below.
82
82
  */
83
+ const VITEST_PEERS = {
84
+ '@angular/build': '22.2.0',
85
+ '@analogjs/vitest-angular': '2.8.0',
86
+ };
83
87
  function highestMajorTheWorkspacePeersAllow(tree) {
84
- return (0, devkit_1.getDependencyVersionFromPackageJson)(tree, '@analogjs/vitest-angular') || (0, devkit_1.getDependencyVersionFromPackageJson)(tree, '@angular/build')
85
- ? 4
86
- : 5;
88
+ let cap = VITEST_COMPAT[0].major;
89
+ for (const [peer, firstVitestV5Version] of Object.entries(VITEST_PEERS)) {
90
+ if ((0, devkit_1.getDependencyVersionFromPackageJson)(tree, peer)) {
91
+ cap = Math.min(cap, highestVitestMajorAllowedBy(tree, peer, firstVitestV5Version));
92
+ }
93
+ }
94
+ return cap;
95
+ }
96
+ function highestVitestMajorAllowedBy(tree, peer, firstVitestV5Version) {
97
+ const installedPeerRange = readInstalledPeerVitestRange(tree, peer);
98
+ if (installedPeerRange) {
99
+ const allowed = VITEST_COMPAT.find((compat) => (0, semver_1.intersects)(`^${compat.major}.0.0`, installedPeerRange));
100
+ if (allowed) {
101
+ return allowed.major;
102
+ }
103
+ }
104
+ const declaredVersion = (0, internal_1.getDeclaredPackageVersion)(tree, peer);
105
+ return declaredVersion && (0, semver_1.gte)(declaredVersion, firstVitestV5Version) ? 5 : 4;
106
+ }
107
+ function readInstalledPeerVitestRange(tree, peer) {
108
+ const packageJsonPath = `node_modules/${peer}/package.json`;
109
+ if (!tree.exists(packageJsonPath)) {
110
+ return null;
111
+ }
112
+ try {
113
+ const range = (0, devkit_1.readJson)(tree, packageJsonPath).peerDependencies?.vitest;
114
+ return typeof range === 'string' && (0, semver_1.validRange)(range) ? range : null;
115
+ }
116
+ catch {
117
+ return null;
118
+ }
87
119
  }
88
120
  function getInstalledVitestVersion(tree) {
89
121
  if (!tree) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nx/vitest",
3
3
  "description": "The Nx Plugin for Vitest to enable fast unit testing with Vitest.",
4
- "version": "24.0.0-beta.1",
4
+ "version": "24.0.0-beta.2",
5
5
  "type": "commonjs",
6
6
  "files": [
7
7
  "dist",
@@ -78,14 +78,14 @@
78
78
  "executors": "./executors.json",
79
79
  "generators": "./generators.json",
80
80
  "dependencies": {
81
- "@nx/devkit": "24.0.0-beta.1",
82
- "@nx/js": "24.0.0-beta.1",
81
+ "@nx/devkit": "24.0.0-beta.2",
82
+ "@nx/js": "24.0.0-beta.2",
83
83
  "tslib": "^2.3.0",
84
84
  "semver": "^7.6.3",
85
85
  "@phenomnomnominal/tsquery": "~6.2.0"
86
86
  },
87
87
  "peerDependencies": {
88
- "@nx/eslint": "24.0.0-beta.1",
88
+ "@nx/eslint": "24.0.0-beta.2",
89
89
  "vitest": "^3.0.0 || ^4.0.0 || ^5.0.0",
90
90
  "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
91
91
  },
@@ -101,6 +101,6 @@
101
101
  }
102
102
  },
103
103
  "devDependencies": {
104
- "nx": "24.0.0-beta.1"
104
+ "nx": "24.0.0-beta.2"
105
105
  }
106
106
  }