@nx/vitest 23.1.0-beta.4 → 23.1.0-beta.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.
|
@@ -4,8 +4,9 @@ exports.configurationGenerator = configurationGenerator;
|
|
|
4
4
|
exports.configurationGeneratorInternal = configurationGeneratorInternal;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const internal_1 = require("@nx/devkit/internal");
|
|
7
8
|
const js_1 = require("@nx/js");
|
|
8
|
-
const
|
|
9
|
+
const internal_2 = require("@nx/js/internal");
|
|
9
10
|
const path_1 = require("path");
|
|
10
11
|
const ensure_dependencies_1 = require("../../utils/ensure-dependencies");
|
|
11
12
|
const generator_utils_1 = require("../../utils/generator-utils");
|
|
@@ -125,7 +126,7 @@ getTestBed().initTestEnvironment(
|
|
|
125
126
|
else if (uiFramework === 'react') {
|
|
126
127
|
(0, generator_utils_1.createOrEditViteConfig)(tree, {
|
|
127
128
|
project: schema.project,
|
|
128
|
-
includeLib: (0,
|
|
129
|
+
includeLib: (0, internal_2.getProjectType)(tree, root, projectType) === 'library',
|
|
129
130
|
includeVitest: true,
|
|
130
131
|
inSourceTests: schema.inSourceTests,
|
|
131
132
|
rolldownOptionsExternal: [
|
|
@@ -148,7 +149,7 @@ getTestBed().initTestEnvironment(
|
|
|
148
149
|
(0, generator_utils_1.createOrEditViteConfig)(tree, {
|
|
149
150
|
...schema,
|
|
150
151
|
includeVitest: true,
|
|
151
|
-
includeLib: (0,
|
|
152
|
+
includeLib: (0, internal_2.getProjectType)(tree, root, projectType) === 'library',
|
|
152
153
|
useEsmExtension: true,
|
|
153
154
|
}, true, {
|
|
154
155
|
vitestFileName: useVitestConfig,
|
|
@@ -156,22 +157,21 @@ getTestBed().initTestEnvironment(
|
|
|
156
157
|
});
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
const isTsSolutionSetup = (0,
|
|
160
|
+
const isTsSolutionSetup = (0, internal_2.isUsingTsSolutionSetup)(tree);
|
|
160
161
|
createFiles(tree, schema, root, isTsSolutionSetup);
|
|
161
162
|
updateTsConfig(tree, schema, root, projectType);
|
|
162
163
|
if (isTsSolutionSetup) {
|
|
163
164
|
// in the TS solution setup, the test target depends on the build outputs
|
|
164
165
|
// so we need to setup the task pipeline accordingly
|
|
165
|
-
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
166
|
+
const nxJson = (0, devkit_1.readNxJson)(tree) ?? {};
|
|
166
167
|
const testTarget = schema.testTarget ?? 'test';
|
|
167
|
-
nxJson.targetDefaults
|
|
168
|
-
|
|
169
|
-
nxJson
|
|
170
|
-
nxJson.targetDefaults[testTarget].dependsOn = Array.from(new Set([...nxJson.targetDefaults[testTarget].dependsOn, '^build']));
|
|
168
|
+
const existing = findTestDefault(nxJson.targetDefaults, testTarget);
|
|
169
|
+
const dependsOn = Array.from(new Set([...(existing?.dependsOn ?? []), '^build']));
|
|
170
|
+
(0, internal_1.upsertTargetDefault)(tree, nxJson, { target: testTarget, dependsOn });
|
|
171
171
|
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
172
172
|
}
|
|
173
173
|
const devDependencies = await getCoverageProviderDependency(tree, schema.coverageProvider);
|
|
174
|
-
devDependencies['@types/node'] =
|
|
174
|
+
devDependencies['@types/node'] = internal_2.typesNodeVersion;
|
|
175
175
|
if (!schema.skipPackageJson) {
|
|
176
176
|
const installDependenciesTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, true);
|
|
177
177
|
tasks.push(installDependenciesTask);
|
|
@@ -233,7 +233,7 @@ function updateTsConfig(tree, options, projectRoot, projectType) {
|
|
|
233
233
|
return json;
|
|
234
234
|
});
|
|
235
235
|
}
|
|
236
|
-
let runtimeTsconfigPath = (0, devkit_1.joinPathFragments)(projectRoot, (0,
|
|
236
|
+
let runtimeTsconfigPath = (0, devkit_1.joinPathFragments)(projectRoot, (0, internal_2.getProjectType)(tree, projectRoot, projectType) === 'application'
|
|
237
237
|
? 'tsconfig.app.json'
|
|
238
238
|
: 'tsconfig.lib.json');
|
|
239
239
|
if (options.runtimeTsconfigFileName) {
|
|
@@ -356,4 +356,17 @@ function findBuildTarget(project) {
|
|
|
356
356
|
}
|
|
357
357
|
return project.targets?.build ?? null;
|
|
358
358
|
}
|
|
359
|
+
function findTestDefault(td, target) {
|
|
360
|
+
const value = td?.[target];
|
|
361
|
+
if (value === undefined)
|
|
362
|
+
return undefined;
|
|
363
|
+
if (Array.isArray(value)) {
|
|
364
|
+
const found = value.find((e) => e.filter === undefined);
|
|
365
|
+
if (!found)
|
|
366
|
+
return undefined;
|
|
367
|
+
const { filter: _f, ...rest } = found;
|
|
368
|
+
return rest;
|
|
369
|
+
}
|
|
370
|
+
return value;
|
|
371
|
+
}
|
|
359
372
|
exports.default = configurationGenerator;
|
|
@@ -30,7 +30,7 @@ function updateDependencies(tree, schema) {
|
|
|
30
30
|
}, undefined, schema.keepExistingVersions ?? true);
|
|
31
31
|
}
|
|
32
32
|
function updateNxJsonSettings(tree) {
|
|
33
|
-
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
33
|
+
const nxJson = (0, devkit_1.readNxJson)(tree) ?? {};
|
|
34
34
|
const productionFileSet = nxJson.namedInputs?.production;
|
|
35
35
|
if (productionFileSet) {
|
|
36
36
|
productionFileSet.push('!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)', '!{projectRoot}/tsconfig.spec.json');
|
|
@@ -38,13 +38,17 @@ function updateNxJsonSettings(tree) {
|
|
|
38
38
|
}
|
|
39
39
|
const hasPlugin = nxJson.plugins?.some((p) => typeof p === 'string' ? p === '@nx/vitest' : p.plugin === '@nx/vitest');
|
|
40
40
|
if (!hasPlugin) {
|
|
41
|
-
nxJson.targetDefaults
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
'
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const existing = (0, internal_1.findTargetDefault)(nxJson.targetDefaults, {
|
|
42
|
+
executor: '@nx/vitest:test',
|
|
43
|
+
});
|
|
44
|
+
(0, internal_1.upsertTargetDefault)(tree, nxJson, {
|
|
45
|
+
executor: '@nx/vitest:test',
|
|
46
|
+
cache: existing?.cache ?? true,
|
|
47
|
+
inputs: existing?.inputs ?? [
|
|
48
|
+
'default',
|
|
49
|
+
productionFileSet ? '^production' : '^default',
|
|
50
|
+
],
|
|
51
|
+
});
|
|
48
52
|
}
|
|
49
53
|
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
50
54
|
}
|
|
@@ -60,6 +60,10 @@ function migrateTargetDefaults(tree) {
|
|
|
60
60
|
}
|
|
61
61
|
let hasChanges = false;
|
|
62
62
|
for (const [_key, targetConfig] of Object.entries(nxJson.targetDefaults)) {
|
|
63
|
+
if (Array.isArray(targetConfig)) {
|
|
64
|
+
// This migration predates the filtered array value form; values are plain objects here.
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
63
67
|
if (targetConfig.executor !== '@nx/vitest:test' &&
|
|
64
68
|
targetConfig.executor !== '@nx/vite:test' &&
|
|
65
69
|
_key !== '@nx/vitest:test' &&
|
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": "23.1.0-beta.
|
|
4
|
+
"version": "23.1.0-beta.5",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -73,13 +73,13 @@
|
|
|
73
73
|
"tslib": "^2.3.0",
|
|
74
74
|
"semver": "^7.6.3",
|
|
75
75
|
"@phenomnomnominal/tsquery": "~6.2.0",
|
|
76
|
-
"@nx/devkit": "23.1.0-beta.
|
|
77
|
-
"@nx/js": "23.1.0-beta.
|
|
76
|
+
"@nx/devkit": "23.1.0-beta.5",
|
|
77
|
+
"@nx/js": "23.1.0-beta.5"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
80
|
"vitest": "^3.0.0 || ^4.0.0",
|
|
81
81
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
|
|
82
|
-
"@nx/eslint": "23.1.0-beta.
|
|
82
|
+
"@nx/eslint": "23.1.0-beta.5"
|
|
83
83
|
},
|
|
84
84
|
"peerDependenciesMeta": {
|
|
85
85
|
"@nx/eslint": {
|
|
@@ -93,6 +93,6 @@
|
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
"devDependencies": {
|
|
96
|
-
"nx": "23.1.0-beta.
|
|
96
|
+
"nx": "23.1.0-beta.5"
|
|
97
97
|
}
|
|
98
98
|
}
|