@gnuechtel/nx-cucumber 0.0.41 → 0.0.54
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/README.md +23 -5
- package/generators.json +7 -1
- package/package.json +6 -4
- package/src/generators/cucumber-js/files/.env.template +2 -0
- package/src/generators/cucumber-js/files/.eslintrc.json.template +18 -0
- package/src/generators/cucumber-js/files/features/homepage.feature.template +12 -0
- package/src/generators/cucumber-js/files/project.json.template +39 -0
- package/src/generators/cucumber-js/files/src/shared.ts.template +1 -0
- package/src/generators/cucumber-js/files/src/steps/common.steps.ts.template +10 -0
- package/src/generators/cucumber-js/files/src/steps/homepage.steps.ts.template +33 -0
- package/src/generators/cucumber-js/files/tsconfig.json.template +11 -0
- package/src/generators/cucumber-js/generator.d.ts +4 -0
- package/src/generators/cucumber-js/generator.js +29 -0
- package/src/generators/cucumber-js/generator.js.map +1 -0
- package/src/generators/cucumber-js/schema.d.ts +6 -0
- package/src/generators/cucumber-js/schema.json +32 -0
- package/src/playwright/playwright-hooks.js +1 -1
- package/src/playwright/playwright-hooks.js.map +1 -1
- package/src/playwright/playwright-world.d.ts +7 -1
- package/src/playwright/playwright-world.js +17 -6
- package/src/playwright/playwright-world.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
# nx-cucumber
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Nx plugin to create and run Cucumber.js end-to-end test projects
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
ℹ This software is still pre-alpha, but it is working in real-world projects
|
|
6
|
+
⚠️ This is a work-in-progress and semantic versioning is yet not applied
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## quick start
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
```bash
|
|
11
|
+
# create a new monorepo with a 'gnu-app' and change to its directory
|
|
12
|
+
npx create-nx-workspace gnu-repo --preset=react-monorepo --e2eTestRunner=none --appName=gnu-app --bundler=vite --style=css --nxCloud=false
|
|
13
|
+
cd gnu-repo
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
# install nx-cucumber plugin
|
|
16
|
+
npm i -D @gnuechtel/nx-cucumber
|
|
17
|
+
|
|
18
|
+
# create Cucumber.js end-to-end test project for gnu-app
|
|
19
|
+
npx nx g @gnuechtel/nx-cucumber:cucumber-js --project=gnu-app
|
|
20
|
+
|
|
21
|
+
# install additional required npm packages
|
|
22
|
+
npm i -D wait-on @playwright/test nyc
|
|
23
|
+
|
|
24
|
+
# run Cucumber.js end-to-end tests (implicitly starts gnu-app)
|
|
25
|
+
npx nx e2e gnu-app-e2e
|
|
26
|
+
|
|
27
|
+
# display generated Cucumber HTML report
|
|
28
|
+
open ./dist/cucumber-js/apps/gnu-app-e2e/reports/html/cucumber-test-report.html
|
|
29
|
+
```
|
package/generators.json
CHANGED
|
@@ -2,5 +2,11 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
|
3
3
|
"name": "nx-cucumber",
|
|
4
4
|
"version": "0.0.1",
|
|
5
|
-
"generators": {
|
|
5
|
+
"generators": {
|
|
6
|
+
"cucumber-js": {
|
|
7
|
+
"factory": "./src/generators/cucumber-js/generator",
|
|
8
|
+
"schema": "./src/generators/cucumber-js/schema.json",
|
|
9
|
+
"description": "cucumber-js generator"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
6
12
|
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gnuechtel/nx-cucumber",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://gitlab.com/gnuechtel.com/open-source.git",
|
|
7
7
|
"directory": "libs/nx-cucumber"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
+
"@nx/devkit": "^16.0.0",
|
|
10
11
|
"tslib": "^2.3.0",
|
|
12
|
+
"@gnuechtel/shared-nx": "^0.0.36",
|
|
13
|
+
"@gnuechtel/shared-coverage": "^0.0.36"
|
|
14
|
+
},
|
|
15
|
+
"peerDependencies": {
|
|
11
16
|
"cucumber-html-reporter": "^7.1.0",
|
|
12
17
|
"@cucumber/messages": "^22.0.0",
|
|
13
|
-
"@nx/devkit": "^16.0.0",
|
|
14
|
-
"@gnuechtel/shared-nx": "^0.0.36",
|
|
15
|
-
"@gnuechtel/shared-coverage": "^0.0.36",
|
|
16
18
|
"@cucumber/cucumber": "^9.3.0",
|
|
17
19
|
"playwright": "^1.21.1"
|
|
18
20
|
},
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": ["<%= workspaceRootRelative %>/.eslintrc.json"],
|
|
3
|
+
"ignorePatterns": ["!**/*"],
|
|
4
|
+
"overrides": [
|
|
5
|
+
{
|
|
6
|
+
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
|
7
|
+
"rules": {}
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"files": ["*.ts", "*.tsx"],
|
|
11
|
+
"rules": {}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"files": ["*.js", "*.jsx"],
|
|
15
|
+
"rules": {}
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: homepage
|
|
2
|
+
|
|
3
|
+
Scenario: a user visits the home page
|
|
4
|
+
|
|
5
|
+
When any user finds our project home page
|
|
6
|
+
Then a welcome message will be shown
|
|
7
|
+
|
|
8
|
+
Scenario: a user wants to get project information
|
|
9
|
+
|
|
10
|
+
Given any user has found our project home page
|
|
11
|
+
When the user requests project information
|
|
12
|
+
Then some advices will be shown
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= name %>",
|
|
3
|
+
"$schema": "{workspaceRoot}/node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "apps/<%= directory %>/src",
|
|
5
|
+
"projectType": "application",
|
|
6
|
+
"targets": {
|
|
7
|
+
"e2e": {
|
|
8
|
+
"executor": "@gnuechtel/nx-cucumber:cucumber-js",
|
|
9
|
+
"outputs": [
|
|
10
|
+
"{workspaceRoot}/dist/cucumber-js/apps/<%= directory %>",
|
|
11
|
+
"{workspaceRoot}/dist/coverage/apps/<%= directory %>"
|
|
12
|
+
],
|
|
13
|
+
"options": {
|
|
14
|
+
"baseUrl": "http://localhost:4200",
|
|
15
|
+
"devServerTarget": "<%= project %>:serve",
|
|
16
|
+
"featuresDirectory": "apps/<%= directory %>/features",
|
|
17
|
+
"tags": "not @ignore",
|
|
18
|
+
"testRunner": "<%= testRunner %>",
|
|
19
|
+
"disableVideoFiles": true,
|
|
20
|
+
"disableVideoAttachments": true
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"lint": {
|
|
24
|
+
"executor": "@nx/linter:eslint",
|
|
25
|
+
"outputs": [
|
|
26
|
+
"{options.outputFile}"
|
|
27
|
+
],
|
|
28
|
+
"options": {
|
|
29
|
+
"lintFilePatterns": [
|
|
30
|
+
"apps/<%= directory %>/**/*.ts"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"tags": [],
|
|
36
|
+
"implicitDependencies": [
|
|
37
|
+
"<%= project %>"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const maskColor = '#d700ff80'; // violet
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { When } from '@cucumber/cucumber';
|
|
2
|
+
import { PlaywrightWorld } from '@gnuechtel/nx-cucumber';
|
|
3
|
+
|
|
4
|
+
// Given + When
|
|
5
|
+
When(
|
|
6
|
+
/^(?:\w+.*?) (?:has found|finds) our project home page$/,
|
|
7
|
+
async function (this: PlaywrightWorld) {
|
|
8
|
+
await this.visit('/');
|
|
9
|
+
}
|
|
10
|
+
);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Then, When } from '@cucumber/cucumber';
|
|
2
|
+
import { expect } from '@playwright/test';
|
|
3
|
+
import { PlaywrightWorld } from '@gnuechtel/nx-cucumber';
|
|
4
|
+
import { maskColor } from '../shared';
|
|
5
|
+
|
|
6
|
+
When(
|
|
7
|
+
'the user requests project information',
|
|
8
|
+
async function (this: PlaywrightWorld) {
|
|
9
|
+
const whatsNextButton = this.page.getByRole('link', {
|
|
10
|
+
name: "What's next?",
|
|
11
|
+
});
|
|
12
|
+
this.setScreenshotOptions({ mask: [whatsNextButton], maskColor }); // highlight what-is-next link
|
|
13
|
+
await whatsNextButton.click();
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
Then(/^some advices will be shown$/, async function (this: PlaywrightWorld) {
|
|
18
|
+
const nextSteps = this.page.locator('h2').getByText('Next steps');
|
|
19
|
+
this.setScreenshotOptions({ mask: [nextSteps], maskColor }); // highlight next-steps headline
|
|
20
|
+
await nextSteps.scrollIntoViewIfNeeded();
|
|
21
|
+
await expect(nextSteps).toBeVisible();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
Then(
|
|
25
|
+
/^a welcome message will be shown$/,
|
|
26
|
+
async function (this: PlaywrightWorld) {
|
|
27
|
+
const welcome = this.page
|
|
28
|
+
.locator('h1')
|
|
29
|
+
.getByText('Hello there, Welcome test-app 👋');
|
|
30
|
+
this.setScreenshotOptions({ mask: [welcome], maskColor }); // highlight welcome headline
|
|
31
|
+
await expect(welcome).toBeVisible();
|
|
32
|
+
}
|
|
33
|
+
);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "<%= workspaceRootRelative %>/tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "<%= workspaceRootRelative %>/dist/out-tsc",
|
|
5
|
+
"esModuleInterop": true,
|
|
6
|
+
"module": "commonjs",
|
|
7
|
+
"types": ["node"]
|
|
8
|
+
},
|
|
9
|
+
"files": [],
|
|
10
|
+
"include": ["src/**/*.ts"]
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cucumberJsGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const path = tslib_1.__importStar(require("path"));
|
|
7
|
+
function cucumberJsGenerator(tree, options) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
if (!options.name)
|
|
10
|
+
options.name = `${options.project}-e2e`;
|
|
11
|
+
if (!options.directory)
|
|
12
|
+
options.directory = options.name;
|
|
13
|
+
if (!options.testRunner)
|
|
14
|
+
options.testRunner = 'playwright';
|
|
15
|
+
const projectRoot = `apps/${options.directory}`;
|
|
16
|
+
const workspaceRootRelative = path.relative(path.join(devkit_1.workspaceRoot, projectRoot), devkit_1.workspaceRoot);
|
|
17
|
+
(0, devkit_1.addProjectConfiguration)(tree, options.name, {
|
|
18
|
+
root: projectRoot,
|
|
19
|
+
projectType: 'application',
|
|
20
|
+
sourceRoot: `${projectRoot}/src`,
|
|
21
|
+
targets: {},
|
|
22
|
+
});
|
|
23
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), projectRoot, Object.assign(Object.assign({}, options), { workspaceRootRelative }));
|
|
24
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.cucumberJsGenerator = cucumberJsGenerator;
|
|
28
|
+
exports.default = cucumberJsGenerator;
|
|
29
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/nx-cucumber/src/generators/cucumber-js/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAMoB;AACpB,mDAA6B;AAG7B,SAAsB,mBAAmB,CACvC,IAAU,EACV,OAAkC;;QAElC,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;QAC3D,MAAM,WAAW,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAChD,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CACzC,IAAI,CAAC,IAAI,CAAC,sBAAa,EAAE,WAAW,CAAC,EACrC,sBAAa,CACd,CAAC;QACF,IAAA,gCAAuB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;YAC1C,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,GAAG,WAAW,MAAM;YAChC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QACH,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,kCACzD,OAAO,KACV,qBAAqB,IACrB,CAAC;QACH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAvBD,kDAuBC;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "CucumberJs",
|
|
4
|
+
"title": "Cucumber.js generator",
|
|
5
|
+
"description": "Creates a new Cucumber.js end-to-end test project",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"project": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "The required name of the project under test",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
},
|
|
15
|
+
"x-prompt": "Which is the name of the project which will be tested?",
|
|
16
|
+
"x-dropdown": "projects"
|
|
17
|
+
},
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The optional name of the end-to-end test project, default: [project]-e2e"
|
|
21
|
+
},
|
|
22
|
+
"directory": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "The optional directory for the end-to-end test project, default: [project]"
|
|
25
|
+
},
|
|
26
|
+
"testRunner": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "The optional test runner, default: playwright"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["project"]
|
|
32
|
+
}
|
|
@@ -134,7 +134,7 @@ function launchBrowserIfRequired(label, launchHeadless) {
|
|
|
134
134
|
if (!this.parameters.disableScreenshotAttachments || !this.parameters.disableScreenshotFiles) {
|
|
135
135
|
try {
|
|
136
136
|
debug('AfterStep - Creating screenshots');
|
|
137
|
-
yield this.createScreenshots(
|
|
137
|
+
yield this.createScreenshots(result);
|
|
138
138
|
debug('AfterStep - Screenshots created');
|
|
139
139
|
}
|
|
140
140
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-hooks.js","sourceRoot":"","sources":["../../../../../libs/nx-cucumber/src/playwright/playwright-hooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"playwright-hooks.js","sourceRoot":"","sources":["../../../../../libs/nx-cucumber/src/playwright/playwright-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ export declare class PlaywrightWorld extends World<TestRunOptions> {
|
|
|
64
64
|
* Invoked in `playwright-hooks.ts`.
|
|
65
65
|
* @param result the test result of the current scenario
|
|
66
66
|
*/
|
|
67
|
-
createScreenshots(
|
|
67
|
+
createScreenshots(result?: TestStepResult): Promise<void>;
|
|
68
68
|
/**
|
|
69
69
|
* Helper function to disable screenshots temporarily for the current step.
|
|
70
70
|
* This avoids intermediate screenshots from other shared test code
|
|
@@ -74,6 +74,12 @@ export declare class PlaywrightWorld extends World<TestRunOptions> {
|
|
|
74
74
|
* The counterpart of {@link disableScreenshots}.
|
|
75
75
|
*/
|
|
76
76
|
restoreScreenshots(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Sets the screenshot options for the current cucumber step
|
|
79
|
+
* @param screenshotOptions the screenshot options (which will be reset in the next step)
|
|
80
|
+
*/
|
|
81
|
+
setScreenshotOptions(screenshotOptions?: PageScreenshotOptions): void;
|
|
82
|
+
private getScreenshotOptions;
|
|
77
83
|
private getScenarioFileName;
|
|
78
84
|
/**
|
|
79
85
|
* Renames the playwright generated videos and them to the reports.
|
|
@@ -42,6 +42,10 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
42
42
|
const { videosDirectory } = (0, cucumber_runner_1.getOutputDirectories)(this.parameters.outputDirectory);
|
|
43
43
|
const options = {
|
|
44
44
|
acceptDownloads: true,
|
|
45
|
+
viewport: {
|
|
46
|
+
width: 1920,
|
|
47
|
+
height: 1080,
|
|
48
|
+
},
|
|
45
49
|
locale,
|
|
46
50
|
};
|
|
47
51
|
if (!this.parameters.disableVideoAttachments || !this.parameters.disableVideoFiles) {
|
|
@@ -52,10 +56,6 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
52
56
|
height: 1080,
|
|
53
57
|
},
|
|
54
58
|
};
|
|
55
|
-
options.viewport = {
|
|
56
|
-
width: 1920,
|
|
57
|
-
height: 1080,
|
|
58
|
-
};
|
|
59
59
|
}
|
|
60
60
|
if (this.parameters.disableJavaScript) {
|
|
61
61
|
options.javaScriptEnabled = false;
|
|
@@ -143,6 +143,7 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
143
143
|
*/
|
|
144
144
|
prepareStep() {
|
|
145
145
|
this._attachedScreenshots = 0;
|
|
146
|
+
this.setScreenshotOptions(undefined);
|
|
146
147
|
}
|
|
147
148
|
/**
|
|
148
149
|
* Creates screenshots and attaches them to this world instance.
|
|
@@ -151,7 +152,7 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
151
152
|
* Invoked in `playwright-hooks.ts`.
|
|
152
153
|
* @param result the test result of the current scenario
|
|
153
154
|
*/
|
|
154
|
-
createScreenshots(
|
|
155
|
+
createScreenshots(result) {
|
|
155
156
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
156
157
|
if (this.parameters.disableScreenshotAttachments && this.parameters.disableScreenshotFiles) {
|
|
157
158
|
debug('Screenshots are disabled');
|
|
@@ -163,7 +164,7 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
163
164
|
if (this._pages.length > 0) {
|
|
164
165
|
debug('Storing screenshots');
|
|
165
166
|
for (let i = 0; i < this._pages.length; i++) {
|
|
166
|
-
const image = yield this._pages[i].screenshot(
|
|
167
|
+
const image = yield this._pages[i].screenshot(this.getScreenshotOptions());
|
|
167
168
|
if (image) {
|
|
168
169
|
if (!this.parameters.disableScreenshotAttachments) {
|
|
169
170
|
debug('Attaching image to current step');
|
|
@@ -212,6 +213,16 @@ class PlaywrightWorld extends cucumber_1.World {
|
|
|
212
213
|
this.parameters.disableScreenshotAttachments = disableScreenshotAttachmentsBefore;
|
|
213
214
|
this.parameters.disableScreenshotFiles = disableScreenshotFilesBefore;
|
|
214
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Sets the screenshot options for the current cucumber step
|
|
218
|
+
* @param screenshotOptions the screenshot options (which will be reset in the next step)
|
|
219
|
+
*/
|
|
220
|
+
setScreenshotOptions(screenshotOptions) {
|
|
221
|
+
this.setItem('screenshotOptions', screenshotOptions); // use a world item to store the screenshot options
|
|
222
|
+
}
|
|
223
|
+
getScreenshotOptions() {
|
|
224
|
+
return this.getItem('screenshotOptions');
|
|
225
|
+
}
|
|
215
226
|
getScenarioFileName() {
|
|
216
227
|
// Use encoded scenario name in image and video file names, only the * characters will be removed
|
|
217
228
|
return encodeURIComponent(this.getItem(exports.scenarioName)).replace(/\*/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-world.js","sourceRoot":"","sources":["../../../../../libs/nx-cucumber/src/playwright/playwright-world.ts"],"names":[],"mappings":";;;;AAAA,iDAAkE;AAElE,gEAAkH;AAClH,6DAA+D;AAE/D,oDAAoB;AACpB,wDAAwB;AAGxB,8DAA8D;AAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;AAY5C;;;GAGG;AACH,MAAa,eAAgB,SAAQ,gBAAqB;IACxD,YAAY,OAAsB;;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"playwright-world.js","sourceRoot":"","sources":["../../../../../libs/nx-cucumber/src/playwright/playwright-world.ts"],"names":[],"mappings":"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"}
|