@nx/playwright 18.3.0-beta.0 → 18.3.0-beta.2
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +4 -4
- package/src/generators/init/init.js +2 -20
- package/src/plugins/plugin.js +26 -7
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/playwright",
|
3
|
-
"version": "18.3.0-beta.
|
3
|
+
"version": "18.3.0-beta.2",
|
4
4
|
"type": "commonjs",
|
5
5
|
"homepage": "https://nx.dev",
|
6
6
|
"private": false,
|
@@ -33,9 +33,9 @@
|
|
33
33
|
},
|
34
34
|
"dependencies": {
|
35
35
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
36
|
-
"@nx/devkit": "18.3.0-beta.
|
37
|
-
"@nx/eslint": "18.3.0-beta.
|
38
|
-
"@nx/js": "18.3.0-beta.
|
36
|
+
"@nx/devkit": "18.3.0-beta.2",
|
37
|
+
"@nx/eslint": "18.3.0-beta.2",
|
38
|
+
"@nx/js": "18.3.0-beta.2",
|
39
39
|
"tslib": "^2.3.0",
|
40
40
|
"minimatch": "9.0.3"
|
41
41
|
},
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.initGeneratorInternal = exports.initGenerator = void 0;
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
5
|
-
const
|
5
|
+
const add_plugin_1 = require("@nx/devkit/src/utils/add-plugin");
|
6
6
|
const plugin_1 = require("../../plugins/plugin");
|
7
7
|
const versions_1 = require("../../utils/versions");
|
8
8
|
function initGenerator(tree, options) {
|
@@ -22,10 +22,7 @@ async function initGeneratorInternal(tree, options) {
|
|
22
22
|
}, undefined, options.keepExistingVersions));
|
23
23
|
}
|
24
24
|
if (options.addPlugin) {
|
25
|
-
addPlugin(tree);
|
26
|
-
}
|
27
|
-
if (options.updatePackageScripts) {
|
28
|
-
await (0, update_package_scripts_1.updatePackageScripts)(tree, plugin_1.createNodes);
|
25
|
+
await (0, add_plugin_1.addPlugin)(tree, await (0, devkit_1.createProjectGraphAsync)(), '@nx/playwright/plugin', plugin_1.createNodes, { targetName: ['e2e', 'playwright:e2e', 'playwright-e2e'] }, options.updatePackageScripts);
|
29
26
|
}
|
30
27
|
if (!options.skipFormat) {
|
31
28
|
await (0, devkit_1.formatFiles)(tree);
|
@@ -33,19 +30,4 @@ async function initGeneratorInternal(tree, options) {
|
|
33
30
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
34
31
|
}
|
35
32
|
exports.initGeneratorInternal = initGeneratorInternal;
|
36
|
-
function addPlugin(tree) {
|
37
|
-
const nxJson = (0, devkit_1.readNxJson)(tree);
|
38
|
-
nxJson.plugins ??= [];
|
39
|
-
if (!nxJson.plugins.some((p) => typeof p === 'string'
|
40
|
-
? p === '@nx/playwright/plugin'
|
41
|
-
: p.plugin === '@nx/playwright/plugin')) {
|
42
|
-
nxJson.plugins.push({
|
43
|
-
plugin: '@nx/playwright/plugin',
|
44
|
-
options: {
|
45
|
-
targetName: 'e2e',
|
46
|
-
},
|
47
|
-
});
|
48
|
-
(0, devkit_1.updateNxJson)(tree, nxJson);
|
49
|
-
}
|
50
|
-
}
|
51
33
|
exports.default = initGenerator;
|
package/src/plugins/plugin.js
CHANGED
@@ -39,14 +39,15 @@ exports.createNodes = [
|
|
39
39
|
const hash = (0, calculate_hash_for_create_nodes_1.calculateHashForCreateNodes)(projectRoot, options, context, [
|
40
40
|
(0, js_1.getLockFileName)((0, devkit_1.detectPackageManager)(context.workspaceRoot)),
|
41
41
|
]);
|
42
|
-
const targets = targetsCache[hash] ??
|
42
|
+
const { targets, metadata } = targetsCache[hash] ??
|
43
43
|
(await buildPlaywrightTargets(configFilePath, projectRoot, normalizedOptions, context));
|
44
|
-
calculatedTargets[hash] = targets;
|
44
|
+
calculatedTargets[hash] = { targets, metadata };
|
45
45
|
return {
|
46
46
|
projects: {
|
47
47
|
[projectRoot]: {
|
48
48
|
root: projectRoot,
|
49
49
|
targets,
|
50
|
+
metadata,
|
50
51
|
},
|
51
52
|
},
|
52
53
|
};
|
@@ -60,11 +61,16 @@ async function buildPlaywrightTargets(configFilePath, projectRoot, options, cont
|
|
60
61
|
const playwrightConfig = await (0, config_utils_1.loadConfigFile)((0, path_1.join)(context.workspaceRoot, configFilePath));
|
61
62
|
const namedInputs = (0, get_named_inputs_1.getNamedInputs)(projectRoot, context);
|
62
63
|
const targets = {};
|
64
|
+
let metadata;
|
63
65
|
const baseTargetConfig = {
|
64
66
|
command: 'playwright test',
|
65
67
|
options: {
|
66
68
|
cwd: '{projectRoot}',
|
67
69
|
},
|
70
|
+
metadata: {
|
71
|
+
technologies: ['playwright'],
|
72
|
+
description: 'Runs Playwright Tests',
|
73
|
+
},
|
68
74
|
};
|
69
75
|
targets[options.targetName] = {
|
70
76
|
...baseTargetConfig,
|
@@ -83,6 +89,9 @@ async function buildPlaywrightTargets(configFilePath, projectRoot, options, cont
|
|
83
89
|
: ['default', '^default'],
|
84
90
|
outputs: getOutputs(projectRoot, playwrightConfig),
|
85
91
|
};
|
92
|
+
const groupName = 'E2E (CI)';
|
93
|
+
metadata = { targetGroups: { [groupName]: [] } };
|
94
|
+
const ciTargetGroup = metadata.targetGroups[groupName];
|
86
95
|
const testDir = playwrightConfig.testDir
|
87
96
|
? (0, devkit_1.joinPathFragments)(projectRoot, playwrightConfig.testDir)
|
88
97
|
: projectRoot;
|
@@ -90,11 +99,16 @@ async function buildPlaywrightTargets(configFilePath, projectRoot, options, cont
|
|
90
99
|
playwrightConfig.testMatch ??= '**/*.@(spec|test).?(c|m)[jt]s?(x)';
|
91
100
|
const dependsOn = [];
|
92
101
|
forEachTestFile((testFile) => {
|
93
|
-
const
|
94
|
-
const targetName = `${options.ciTargetName}--${
|
102
|
+
const relativeSpecFilePath = (0, devkit_1.normalizePath)((0, path_1.relative)(projectRoot, testFile));
|
103
|
+
const targetName = `${options.ciTargetName}--${relativeSpecFilePath}`;
|
104
|
+
ciTargetGroup.push(targetName);
|
95
105
|
targets[targetName] = {
|
96
106
|
...ciBaseTargetConfig,
|
97
|
-
command: `${baseTargetConfig.command} ${
|
107
|
+
command: `${baseTargetConfig.command} ${relativeSpecFilePath}`,
|
108
|
+
metadata: {
|
109
|
+
technologies: ['playwright'],
|
110
|
+
description: `Runs Playwright Tests in ${relativeSpecFilePath} in CI`,
|
111
|
+
},
|
98
112
|
};
|
99
113
|
dependsOn.push({
|
100
114
|
target: targetName,
|
@@ -113,11 +127,16 @@ async function buildPlaywrightTargets(configFilePath, projectRoot, options, cont
|
|
113
127
|
inputs: ciBaseTargetConfig.inputs,
|
114
128
|
outputs: ciBaseTargetConfig.outputs,
|
115
129
|
dependsOn,
|
130
|
+
metadata: {
|
131
|
+
technologies: ['playwright'],
|
132
|
+
description: 'Runs Playwright Tests in CI',
|
133
|
+
},
|
116
134
|
};
|
135
|
+
ciTargetGroup.push(options.ciTargetName);
|
117
136
|
}
|
118
|
-
return targets;
|
137
|
+
return { targets, metadata };
|
119
138
|
}
|
120
|
-
|
139
|
+
function forEachTestFile(cb, opts) {
|
121
140
|
const files = (0, workspace_context_1.getFilesInDirectoryUsingContext)(opts.context.workspaceRoot, opts.path);
|
122
141
|
const matcher = createMatcher(opts.config.testMatch);
|
123
142
|
const ignoredMatcher = opts.config.testIgnore
|