@o3r/testing 13.0.0-prerelease.2 → 13.0.0-prerelease.4
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/collection.json +4 -2
- package/package.json +11 -11
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +20 -29
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/playwright/index.d.ts +2 -3
- package/schematics/ng-add/playwright/index.d.ts.map +1 -1
- package/schematics/ng-add/playwright/index.js +1 -29
- package/schematics/ng-add/playwright/index.js.map +1 -1
- package/schematics/ng-add/playwright/templates/e2e-playwright/empty-test.e2e.ts.template +6 -0
- package/schematics/ng-add/playwright/templates/e2e-playwright/playwright-config.ts.template +5 -4
- package/schematics/ng-add/schema.d.ts +2 -6
- package/schematics/ng-add/schema.d.ts.map +1 -1
- package/schematics/ng-add/templates/workspace/jest.config.ut.js.template +2 -1
- package/schematics/ng-add/templates/workspace/tsconfig.jest.json.template +2 -1
- package/schematics/playwright/sanity/schema.json +1 -1
- package/schematics/playwright/scenario/schema.json +1 -1
- package/schematics/ng-add/playwright/templates/e2e-playwright/playwright-config.sanity.ts.template +0 -12
- package/schematics/ng-add/playwright/templates/e2e-playwright/sanity/__sanity@dasherize__.e2e.ts.template +0 -8
- package/schematics/ng-add/playwright/templates/e2e-playwright/scenarios/__name@dasherize__.e2e-playwright-spec.ts.template +0 -20
- package/schematics/ng-add/playwright/templates/e2e-playwright/utils/base-scenario.ts.template +0 -27
- package/schematics/ng-add/playwright/templates/e2e-playwright/utils/index.ts.template +0 -1
package/collection.json
CHANGED
@@ -8,13 +8,15 @@
|
|
8
8
|
"aliases": ["install", "i"]
|
9
9
|
},
|
10
10
|
"playwright-scenario": {
|
11
|
-
"
|
11
|
+
"hidden": true,
|
12
|
+
"description": "[Deprecated - Removed in v14] Generate a Playwright scenario into the project.",
|
12
13
|
"factory": "./schematics/playwright/scenario/index#ngGeneratePlaywrightScenario",
|
13
14
|
"schema": "./schematics/playwright/scenario/schema.json",
|
14
15
|
"aliases": ["o3r-playwright-scenario"]
|
15
16
|
},
|
16
17
|
"playwright-sanity": {
|
17
|
-
"
|
18
|
+
"hidden": true,
|
19
|
+
"description": "[Deprecated - Removed in v14] Generate a Playwright sanity into the project.",
|
18
20
|
"factory": "./schematics/playwright/sanity/index#ngGeneratePlaywrightSanity",
|
19
21
|
"schema": "./schematics/playwright/sanity/schema.json",
|
20
22
|
"aliases": ["o3r-playwright-sanity"]
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@o3r/testing",
|
3
|
-
"version": "13.0.0-prerelease.
|
3
|
+
"version": "13.0.0-prerelease.4",
|
4
4
|
"publishConfig": {
|
5
5
|
"access": "public"
|
6
6
|
},
|
@@ -100,9 +100,9 @@
|
|
100
100
|
"@material/slider": "^14.0.0",
|
101
101
|
"@ngrx/store": "^20.0.0",
|
102
102
|
"@ngx-translate/core": "^15.0.0 || ~16.0.4",
|
103
|
-
"@o3r/core": "^13.0.0-prerelease.
|
104
|
-
"@o3r/localization": "^13.0.0-prerelease.
|
105
|
-
"@o3r/schematics": "^13.0.0-prerelease.
|
103
|
+
"@o3r/core": "^13.0.0-prerelease.4",
|
104
|
+
"@o3r/localization": "^13.0.0-prerelease.4",
|
105
|
+
"@o3r/schematics": "^13.0.0-prerelease.4",
|
106
106
|
"@playwright/test": "^1.49.0",
|
107
107
|
"@schematics/angular": "^20.0.0",
|
108
108
|
"pixelmatch": "^7.0.0",
|
@@ -167,7 +167,7 @@
|
|
167
167
|
}
|
168
168
|
},
|
169
169
|
"dependencies": {
|
170
|
-
"@o3r/schematics": "^13.0.0-prerelease.
|
170
|
+
"@o3r/schematics": "^13.0.0-prerelease.4",
|
171
171
|
"esbuild": "~0.25.1",
|
172
172
|
"module-from-string": "^3.2.0",
|
173
173
|
"tslib": "^2.6.2"
|
@@ -194,12 +194,12 @@
|
|
194
194
|
"@ngx-translate/core": "~16.0.4",
|
195
195
|
"@nx/eslint-plugin": "~21.3.11",
|
196
196
|
"@nx/jest": "~21.3.11",
|
197
|
-
"@o3r/build-helpers": "^13.0.0-prerelease.
|
198
|
-
"@o3r/core": "^13.0.0-prerelease.
|
199
|
-
"@o3r/eslint-plugin": "^13.0.0-prerelease.
|
200
|
-
"@o3r/localization": "^13.0.0-prerelease.
|
201
|
-
"@o3r/test-helpers": "^13.0.0-prerelease.
|
202
|
-
"@playwright/test": "~1.
|
197
|
+
"@o3r/build-helpers": "^13.0.0-prerelease.4",
|
198
|
+
"@o3r/core": "^13.0.0-prerelease.4",
|
199
|
+
"@o3r/eslint-plugin": "^13.0.0-prerelease.4",
|
200
|
+
"@o3r/localization": "^13.0.0-prerelease.4",
|
201
|
+
"@o3r/test-helpers": "^13.0.0-prerelease.4",
|
202
|
+
"@playwright/test": "~1.55.0",
|
203
203
|
"@schematics/angular": "~20.0.0",
|
204
204
|
"@stylistic/eslint-plugin": "~5.2.0",
|
205
205
|
"@swc/helpers": "~0.5.0",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,IAAI,EAKL,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AA8KpC;;;GAGG;AACH,eAAO,MAAM,KAAK,wBAAgC,CAAC"}
|
@@ -31,10 +31,8 @@ function ngAddFn(options) {
|
|
31
31
|
try {
|
32
32
|
const testPackageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
|
33
33
|
const packageJson = JSON.parse(fs.readFileSync(testPackageJsonPath, { encoding: 'utf8' }));
|
34
|
-
const depsInfo = (0, schematics_2.getO3rPeerDeps)(testPackageJsonPath);
|
35
34
|
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
36
35
|
const workingDirectory = workspaceProject?.root || '.';
|
37
|
-
const projectPackageJson = tree.readJson(path.posix.join(workingDirectory, 'package.json'));
|
38
36
|
const projectType = workspaceProject?.projectType || 'application';
|
39
37
|
let installJest;
|
40
38
|
const testFramework = options.testingFramework || (0, schematics_2.getTestFramework)((0, schematics_2.getWorkspaceConfig)(tree), context);
|
@@ -56,27 +54,6 @@ function ngAddFn(options) {
|
|
56
54
|
break;
|
57
55
|
}
|
58
56
|
}
|
59
|
-
const internalDependenciesInfo = depsInfo.o3rPeerDeps.reduce((acc, dep) => {
|
60
|
-
acc[dep] = {
|
61
|
-
inManifest: [{
|
62
|
-
range: `${options.exactO3rVersion ? '' : '~'}${depsInfo.packageVersion}`,
|
63
|
-
types: (0, schematics_2.getProjectNewDependenciesTypes)(workspaceProject)
|
64
|
-
}],
|
65
|
-
ngAddOptions: { exactO3rVersion: options.exactO3rVersion }
|
66
|
-
};
|
67
|
-
return acc;
|
68
|
-
}, (0, schematics_2.getPackageInstallConfig)(testPackageJsonPath, tree, options.projectName, true, !!options.exactO3rVersion));
|
69
|
-
if (installJest) {
|
70
|
-
devDependenciesToInstall.push('@angular-builders/jest', '@types/jest', 'jest', 'jest-environment-jsdom', 'jest-preset-angular', 'jest-util', 'ts-jest');
|
71
|
-
}
|
72
|
-
const externalDependenciesInfo = (0, schematics_2.getExternalDependenciesInfo)({
|
73
|
-
devDependenciesToInstall,
|
74
|
-
dependenciesToInstall,
|
75
|
-
o3rPackageJsonPath: testPackageJsonPath,
|
76
|
-
projectType: workspaceProject?.projectType,
|
77
|
-
projectPackageJson
|
78
|
-
}, context.logger);
|
79
|
-
const dependencies = { ...internalDependenciesInfo, ...externalDependenciesInfo };
|
80
57
|
let installPlaywright = false;
|
81
58
|
if (projectType === 'application') {
|
82
59
|
installPlaywright = options.enablePlaywright === undefined
|
@@ -90,18 +67,32 @@ function ngAddFn(options) {
|
|
90
67
|
(0, fixture_1.updateFixtureConfig)(options),
|
91
68
|
(0, schematics_2.removePackages)(['@otter/testing']),
|
92
69
|
(0, schematics_2.addVsCodeRecommendations)(['Orta.vscode-jest']),
|
93
|
-
installPlaywright ? (0, playwright_1.updatePlaywright)(options
|
94
|
-
(0, schematics_2.setupDependencies)({
|
95
|
-
projectName: options.projectName,
|
96
|
-
dependencies,
|
97
|
-
ngAddToRun: depsInfo.o3rPeerDeps
|
98
|
-
}),
|
70
|
+
installPlaywright ? (0, playwright_1.updatePlaywright)(options) : schematics_1.noop,
|
99
71
|
(0, schematics_2.registerPackageCollectionSchematics)(packageJson),
|
100
72
|
(0, schematics_2.setupSchematicsParamsForProject)({
|
101
73
|
'@o3r/core:component': schematicsDefaultOptions,
|
102
74
|
'@o3r/core:component-container': schematicsDefaultOptions,
|
103
75
|
'@o3r/core:component-presenter': schematicsDefaultOptions
|
104
76
|
}, options.projectName),
|
77
|
+
(0, schematics_2.ngAddDependenciesRule)(options, testPackageJsonPath, {
|
78
|
+
dependenciesToInstall,
|
79
|
+
devDependenciesToInstall: devDependenciesToInstall.concat(installJest
|
80
|
+
? [
|
81
|
+
'@angular-builders/jest',
|
82
|
+
'@types/jest',
|
83
|
+
'jest',
|
84
|
+
'jest-environment-jsdom',
|
85
|
+
'jest-preset-angular',
|
86
|
+
'jest-util',
|
87
|
+
'ts-jest'
|
88
|
+
]
|
89
|
+
: [], installPlaywright
|
90
|
+
? [
|
91
|
+
'@playwright/test',
|
92
|
+
'rimraf'
|
93
|
+
]
|
94
|
+
: [])
|
95
|
+
}),
|
105
96
|
options.skipLinter ? (0, schematics_1.noop)() : (0, schematics_2.applyEditorConfig)()
|
106
97
|
];
|
107
98
|
if (installJest) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,kCAAkC;AAClC,8DAE2C;AAC3C,2DAaoC;AACpC,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { Rule } from '@angular-devkit/schematics';
|
2
|
-
import {
|
2
|
+
import { NgAddPackageOptions } from '@o3r/schematics';
|
3
3
|
/**
|
4
4
|
* Add Playwright to Otter application
|
5
5
|
* @param options @see RuleFactory.options
|
6
|
-
* @param dependencies
|
7
6
|
*/
|
8
|
-
export declare function updatePlaywright(options: NgAddPackageOptions
|
7
|
+
export declare function updatePlaywright(options: NgAddPackageOptions): Rule;
|
9
8
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,IAAI,EAKL,MAAM,4BAA4B,CAAC;AACpC,OAAO,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,IAAI,EAKL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAKzB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAkDnE"}
|
@@ -5,31 +5,12 @@ const path = require("node:path");
|
|
5
5
|
const core_1 = require("@angular-devkit/core");
|
6
6
|
const schematics_1 = require("@angular-devkit/schematics");
|
7
7
|
const schematics_2 = require("@o3r/schematics");
|
8
|
-
const devDependenciesToInstall = [
|
9
|
-
'@playwright/test',
|
10
|
-
'rimraf'
|
11
|
-
];
|
12
|
-
const dependenciesToInstall = [];
|
13
8
|
/**
|
14
9
|
* Add Playwright to Otter application
|
15
10
|
* @param options @see RuleFactory.options
|
16
|
-
* @param dependencies
|
17
11
|
*/
|
18
|
-
function updatePlaywright(options
|
19
|
-
const corePackageJsonPath = path.resolve(__dirname, '..', '..', '..', 'package.json');
|
12
|
+
function updatePlaywright(options) {
|
20
13
|
return (tree, context) => {
|
21
|
-
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
22
|
-
const projectPackageJson = tree.readJson(path.posix.join(workspaceProject?.root || '.', 'package.json'));
|
23
|
-
const externalDependencies = (0, schematics_2.getExternalDependenciesInfo)({
|
24
|
-
devDependenciesToInstall,
|
25
|
-
dependenciesToInstall,
|
26
|
-
o3rPackageJsonPath: corePackageJsonPath,
|
27
|
-
projectPackageJson,
|
28
|
-
projectType: workspaceProject?.projectType
|
29
|
-
}, context.logger);
|
30
|
-
Object.entries(externalDependencies).forEach(([key, value]) => {
|
31
|
-
dependencies[key] = value;
|
32
|
-
});
|
33
14
|
const workingDirectory = (options?.projectName && (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName]?.root) || '.';
|
34
15
|
// update gitignore
|
35
16
|
const gitignorePath = '.gitignore';
|
@@ -52,25 +33,16 @@ test-results
|
|
52
33
|
const packageJson = tree.readJson(packageJsonPath);
|
53
34
|
packageJson.scripts ||= {};
|
54
35
|
packageJson.scripts['test:playwright'] ||= 'playwright test --config=e2e-playwright/playwright-config.ts';
|
55
|
-
packageJson.scripts['test:playwright:sanity'] ||= 'playwright test --config=e2e-playwright/playwright-config.sanity.ts';
|
56
36
|
tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
57
37
|
}
|
58
38
|
// generate files
|
59
39
|
if (!tree.exists(path.posix.join(workingDirectory, 'e2e-playwright', 'playwright-config.ts'))) {
|
60
|
-
const name = 'my-scenario';
|
61
|
-
const scenarioName = core_1.strings.capitalize(core_1.strings.camelize(name));
|
62
|
-
const sanity = 'my-sanity';
|
63
|
-
const sanityName = core_1.strings.capitalize(core_1.strings.camelize(sanity));
|
64
40
|
const startCommand = `${(0, schematics_2.getPackageManager)()} run start`;
|
65
41
|
const project = options?.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
66
42
|
const serverPort = project?.architect?.serve?.options?.port || '4200';
|
67
43
|
const templateSource = (0, schematics_1.apply)((0, schematics_1.url)('./playwright/templates'), [
|
68
44
|
(0, schematics_1.template)({
|
69
45
|
...core_1.strings,
|
70
|
-
name,
|
71
|
-
scenarioName,
|
72
|
-
sanity,
|
73
|
-
sanityName,
|
74
46
|
serverPort,
|
75
47
|
startCommand
|
76
48
|
}),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":";;AA6BA,4CAkDC;AA/ED,kCAAkC;AAClC,+CAE8B;AAC9B,2DAWoC;AACpC,gDAIyB;AAKzB;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAA4B;IAC3D,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QAExH,mBAAmB;QACnB,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC5H,SAAS;uBACJ;;;;;CAKZ,CAAC;gBACM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAgB,CAAC;YAClE,WAAW,CAAC,OAAO,KAAK,EAAE,CAAC;YAC3B,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,8DAA8D,CAAC;YAC1G,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,GAAG,IAAA,8BAAiB,GAAE,YAAY,CAAC;YACxD,MAAM,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3G,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;YAEtE,MAAM,cAAc,GAAG,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,wBAAwB,CAAC,EAAE;gBAC1D,IAAA,qBAAQ,EAAC;oBACP,GAAG,cAAO;oBACV,UAAU;oBACV,YAAY;iBACb,CAAC;gBACF,IAAA,gCAAmB,GAAE;gBACrB,IAAA,iBAAI,EAAC,gBAAgB,CAAC;aACvB,CAAC,CAAC;YAEH,OAAO,IAAA,sBAAS,EAAC,cAAc,EAAE,0BAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
|
@@ -9,15 +9,16 @@ const FIVE_MINUTES = 1_000 * 60 * 5;
|
|
9
9
|
const reportsFolder = path.join(__dirname, '..', 'playwright-reports');
|
10
10
|
|
11
11
|
const config = defineConfig({
|
12
|
-
testDir:
|
13
|
-
testMatch: /.*\.e2e
|
12
|
+
testDir: '.',
|
13
|
+
testMatch: /.*\.e2e\.ts$/,
|
14
|
+
forbidOnly: !!process.env.CI,
|
15
|
+
retries: process.env.CI ? 3 : 0,
|
16
|
+
workers: process.env.CI ? 1 : undefined,
|
14
17
|
reporter: [
|
15
18
|
['list'],
|
16
19
|
['junit', {outputFile: path.join(reportsFolder, 'junit', 'reporter.xml')}],
|
17
20
|
['html', {open: 'never', outputFolder: path.join(reportsFolder, 'html')}]
|
18
21
|
],
|
19
|
-
retries: process.env.CI ? 3 : 0,
|
20
|
-
forbidOnly: !!process.env.CI,
|
21
22
|
timeout: FIVE_MINUTES,
|
22
23
|
use: {
|
23
24
|
baseURL: process.env.PLAYWRIGHT_TARGET_URL || 'http://localhost:<%= serverPort %>/',
|
@@ -1,12 +1,8 @@
|
|
1
|
-
import type { SchematicOptionObject } from '@o3r/schematics';
|
2
|
-
export interface NgAddSchematicsSchema extends SchematicOptionObject {
|
3
|
-
/** Project name */
|
4
|
-
projectName?: string | undefined;
|
1
|
+
import type { NgAddOptions, SchematicOptionObject } from '@o3r/schematics';
|
2
|
+
export interface NgAddSchematicsSchema extends NgAddOptions, SchematicOptionObject {
|
5
3
|
/** Testing framework */
|
6
4
|
testingFramework?: 'jest' | 'other';
|
7
5
|
/** Enable playwright */
|
8
6
|
enablePlaywright: boolean;
|
9
|
-
/** Use a pinned version for otter packages */
|
10
|
-
exactO3rVersion?: boolean;
|
11
7
|
}
|
12
8
|
//# sourceMappingURL=schema.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,qBAAqB;IAChF,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,wBAAwB;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema",
|
3
3
|
"$id": "ngGeneratePlaywrightSanitySchematicsSchema",
|
4
4
|
"title": "Generate Playwright sanity",
|
5
|
-
"description": "ng generate Playwright sanity",
|
5
|
+
"description": "[Deprecated - Removed in v14] ng generate Playwright sanity",
|
6
6
|
"properties": {
|
7
7
|
"projectName": {
|
8
8
|
"type": "string",
|
@@ -2,7 +2,7 @@
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema",
|
3
3
|
"$id": "ngGeneratePlaywrightScenarioSchematicsSchema",
|
4
4
|
"title": "Generate Playwright scenario",
|
5
|
-
"description": "ng generate Playwright scenario",
|
5
|
+
"description": "[Deprecated - Removed in v14] ng generate Playwright scenario",
|
6
6
|
"properties": {
|
7
7
|
"projectName": {
|
8
8
|
"type": "string",
|
package/schematics/ng-add/playwright/templates/e2e-playwright/playwright-config.sanity.ts.template
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import { defineConfig } from '@playwright/test';
|
2
|
-
import * as path from 'node:path';
|
3
|
-
|
4
|
-
import {default as defaultConfig} from './playwright-config';
|
5
|
-
|
6
|
-
const config = defineConfig({
|
7
|
-
...defaultConfig,
|
8
|
-
testDir: path.join(__dirname, 'sanity'),
|
9
|
-
testMatch: /.*\.e2e\.ts$/
|
10
|
-
});
|
11
|
-
|
12
|
-
export default config;
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { expect, test } from '@playwright/test';
|
2
|
-
import { BaseScenario } from '../utils';
|
3
|
-
|
4
|
-
export class <%= classify(scenarioName) %> extends BaseScenario {
|
5
|
-
protected <%= camelize(scenarioName) %>() {
|
6
|
-
test.describe('Empty <%= classify(scenarioName) %> tests', () => {
|
7
|
-
test('Empty test', async ({ page }) => {
|
8
|
-
await page.goto('/');
|
9
|
-
await expect(page.locator('body')).toBeAttached();
|
10
|
-
});
|
11
|
-
});
|
12
|
-
}
|
13
|
-
|
14
|
-
/** @inheritDoc */
|
15
|
-
public performFlow() {
|
16
|
-
this.<%= camelize(scenarioName) %>();
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
new <%= classify(scenarioName) %>().run();
|
package/schematics/ng-add/playwright/templates/e2e-playwright/utils/base-scenario.ts.template
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
import { test } from '@playwright/test';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Interface to define the interface of a flow test
|
5
|
-
*/
|
6
|
-
export interface Flow {
|
7
|
-
/**
|
8
|
-
* Run the flow
|
9
|
-
*/
|
10
|
-
performFlow(): void;
|
11
|
-
}
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Base scenario for e2e scenarios.
|
15
|
-
* Init the fetch manager and call `performFlow` method.
|
16
|
-
* E2E Booking flows should inherit from this class.
|
17
|
-
*/
|
18
|
-
export abstract class BaseScenario implements Flow {
|
19
|
-
|
20
|
-
public abstract performFlow();
|
21
|
-
|
22
|
-
public run() {
|
23
|
-
test.describe.serial(this.constructor.name, () => {
|
24
|
-
this.performFlow();
|
25
|
-
});
|
26
|
-
}
|
27
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './base-scenario';
|