@qavajs/playwright-runner-adapter 1.7.1 → 1.8.0
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/CHANGELOG.md +3 -0
- package/README.md +4 -3
- package/adapter/cucumber.spec.js +9 -2
- package/adapter/cucumber.spec.js.map +1 -1
- package/adapter/loader.d.ts +2 -0
- package/adapter/loader.js +1 -0
- package/adapter/loader.js.map +1 -1
- package/package.json +2 -2
- package/src/cucumber.spec.ts +15 -7
- package/src/loader.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,9 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
|
|
|
14
14
|
|
|
15
15
|
:microscope: - experimental
|
|
16
16
|
|
|
17
|
+
## [1.8.0]
|
|
18
|
+
- :rocket: added `gherkinDocument` to hooks parameter
|
|
19
|
+
|
|
17
20
|
## [1.7.1]
|
|
18
21
|
- :beetle: fixed `result` property in `After` and `AfterStep` hooks
|
|
19
22
|
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ npm install @qavajs/playwright-runner-adapter
|
|
|
12
12
|
## Basic Configuration
|
|
13
13
|
|
|
14
14
|
### Create cucumber config file
|
|
15
|
-
Set
|
|
15
|
+
Set `paths` and `require` properties
|
|
16
16
|
```typescript
|
|
17
17
|
export default {
|
|
18
18
|
paths: ['test/features/*.feature'],
|
|
@@ -34,8 +34,8 @@ export default defineConfig({
|
|
|
34
34
|
|
|
35
35
|
## Advanced Configuration
|
|
36
36
|
### Customizing test instance
|
|
37
|
-
Custom test instance can be passed to world constructor as
|
|
38
|
-
And then fixtures can be connected with world instance via
|
|
37
|
+
Custom test instance can be passed to world constructor as `test` property.
|
|
38
|
+
And then fixtures can be connected with world instance via `init` function-property.
|
|
39
39
|
```typescript
|
|
40
40
|
import { test as base, expect as baseExpect } from '@playwright/test';
|
|
41
41
|
import { SettingsPage } from './settings-page';
|
|
@@ -97,5 +97,6 @@ export default defineConfig({
|
|
|
97
97
|
## Limitation
|
|
98
98
|
- ES modules are not supported (at least for node <= 22, where experimental ESM require is introduced)
|
|
99
99
|
- `setParallelCanAssign` is not supported (use playwright projects and `fullyParallel` property)
|
|
100
|
+
- `CUCUMBER_PARALLEL`, `CUCUMBER_TOTAL_WORKERS` and `CUCUMBER_WORKER_ID` env vars are not supported. Use built-in `info()` method of world property `test`
|
|
100
101
|
|
|
101
102
|
|
package/adapter/cucumber.spec.js
CHANGED
|
@@ -9,7 +9,7 @@ function getResult(testInfo) {
|
|
|
9
9
|
return {
|
|
10
10
|
duration: testInfo.duration,
|
|
11
11
|
message,
|
|
12
|
-
status: testInfo.status,
|
|
12
|
+
status: testInfo.status?.toUpperCase(),
|
|
13
13
|
exception: testInfo.error
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -53,6 +53,7 @@ for (const feature of features) {
|
|
|
53
53
|
const hookName = beforeHook.name ?? 'Before';
|
|
54
54
|
const location = getLine(beforeHook);
|
|
55
55
|
await test.step(hookName, () => beforeHook.code.apply(world, [{
|
|
56
|
+
gherkinDocument: feature.gherkinDocument,
|
|
56
57
|
pickle: testCase
|
|
57
58
|
}]), location);
|
|
58
59
|
}
|
|
@@ -85,6 +86,7 @@ for (const feature of features) {
|
|
|
85
86
|
if (beforeStep.appliesToTestCase(testCase)) {
|
|
86
87
|
const location = getLine(beforeStep);
|
|
87
88
|
await test.step('Before Step', () => beforeStep.code.apply(world, [{
|
|
89
|
+
gherkinDocument: feature.gherkinDocument,
|
|
88
90
|
pickle: testCase,
|
|
89
91
|
pickleStep
|
|
90
92
|
}]), location);
|
|
@@ -110,12 +112,15 @@ for (const feature of features) {
|
|
|
110
112
|
if (afterStep.appliesToTestCase(testCase)) {
|
|
111
113
|
const location = getLine(afterStep);
|
|
112
114
|
await test.step('After Step', () => afterStep.code.apply(world, [{
|
|
115
|
+
gherkinDocument: feature.gherkinDocument,
|
|
116
|
+
testCaseStartedId: '0',
|
|
117
|
+
testStepId: '0',
|
|
113
118
|
pickle: testCase,
|
|
114
119
|
pickleStep,
|
|
115
120
|
result: {
|
|
116
121
|
duration: 0,
|
|
117
122
|
message: result.error?.message,
|
|
118
|
-
status: result.status,
|
|
123
|
+
status: result.status.toUpperCase(),
|
|
119
124
|
exception: result.error
|
|
120
125
|
}
|
|
121
126
|
}]), location);
|
|
@@ -138,6 +143,8 @@ for (const feature of features) {
|
|
|
138
143
|
const hookName = afterHook.name ?? 'After';
|
|
139
144
|
const location = getLine(afterHook);
|
|
140
145
|
await test.step(hookName, () => afterHook.code.apply(world, [{
|
|
146
|
+
gherkinDocument: feature.gherkinDocument,
|
|
147
|
+
testCaseStartedId: '0',
|
|
141
148
|
pickle: testCase,
|
|
142
149
|
result: getResult(testInfo)
|
|
143
150
|
}]), location);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cucumber.spec.js","sourceRoot":"","sources":["../src/cucumber.spec.ts"],"names":[],"mappings":";;AAAA,qCAAgC;
|
|
1
|
+
{"version":3,"file":"cucumber.spec.js","sourceRoot":"","sources":["../src/cucumber.spec.ts"],"names":[],"mappings":"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"}
|
package/adapter/loader.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export declare function loadFeatures(globPattern: string[]): {
|
|
2
2
|
feature: string | undefined;
|
|
3
|
+
gherkinDocument: import("@cucumber/messages").GherkinDocument;
|
|
3
4
|
tests: any[];
|
|
4
5
|
}[];
|
|
5
6
|
export declare function loadStepDefinitions(globPattern: string[]): import("@cucumber/cucumber/lib/support_code_library_builder/types").SupportCodeLibrary;
|
|
6
7
|
export declare function load(): {
|
|
7
8
|
features: {
|
|
8
9
|
feature: string | undefined;
|
|
10
|
+
gherkinDocument: import("@cucumber/messages").GherkinDocument;
|
|
9
11
|
tests: any[];
|
|
10
12
|
}[];
|
|
11
13
|
supportCodeLibrary: import("@cucumber/cucumber/lib/support_code_library_builder/types").SupportCodeLibrary;
|
package/adapter/loader.js
CHANGED
|
@@ -35,6 +35,7 @@ function loadFeatures(globPattern) {
|
|
|
35
35
|
const gherkinDocument = parser.parse((0, node_fs_1.readFileSync)(filePath, 'utf-8'));
|
|
36
36
|
return {
|
|
37
37
|
feature: gherkinDocument.feature?.name,
|
|
38
|
+
gherkinDocument,
|
|
38
39
|
tests: duplicates((0, gherkin_1.compile)(gherkinDocument, file, uuidFn))
|
|
39
40
|
};
|
|
40
41
|
});
|
package/adapter/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;AA4BA,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qavajs/playwright-runner-adapter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "adapter for playwright test runner",
|
|
5
5
|
"main": "adapter/index.js",
|
|
6
6
|
"types": "adapter/index.d.ts",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"url": "https://github.com/qavajs/playwright-runner-adapter/issues"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@cucumber/gherkin": "^36.
|
|
22
|
+
"@cucumber/gherkin": "^36.1.0",
|
|
23
23
|
"@cucumber/tag-expressions": "^8.0.0",
|
|
24
24
|
"glob": "^11.0.3",
|
|
25
25
|
"@cucumber/cucumber": "^12.2.0"
|
package/src/cucumber.spec.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { load } from './loader';
|
|
2
2
|
import type { TestInfo } from '@playwright/test';
|
|
3
|
+
import type { ITestCaseHookParameter, ITestStepHookParameter } from '@cucumber/cucumber';
|
|
3
4
|
|
|
4
5
|
const { features, supportCodeLibrary } = load();
|
|
5
6
|
|
|
@@ -8,9 +9,9 @@ function getResult(testInfo: TestInfo) {
|
|
|
8
9
|
? testInfo.errors.map((err: any) => err.message).join('\n')
|
|
9
10
|
: undefined;
|
|
10
11
|
return {
|
|
11
|
-
duration: testInfo.duration,
|
|
12
|
+
duration: testInfo.duration as any,
|
|
12
13
|
message,
|
|
13
|
-
status: testInfo.status,
|
|
14
|
+
status: testInfo.status?.toUpperCase(),
|
|
14
15
|
exception: testInfo.error
|
|
15
16
|
};
|
|
16
17
|
}
|
|
@@ -68,8 +69,9 @@ for (const feature of features) {
|
|
|
68
69
|
await test.step(
|
|
69
70
|
hookName,
|
|
70
71
|
() => beforeHook.code.apply(world, [{
|
|
72
|
+
gherkinDocument: feature.gherkinDocument,
|
|
71
73
|
pickle: testCase
|
|
72
|
-
}]),
|
|
74
|
+
} as ITestCaseHookParameter]),
|
|
73
75
|
location
|
|
74
76
|
);
|
|
75
77
|
}
|
|
@@ -103,6 +105,7 @@ for (const feature of features) {
|
|
|
103
105
|
await test.step(
|
|
104
106
|
'Before Step',
|
|
105
107
|
() => beforeStep.code.apply(world, [{
|
|
108
|
+
gherkinDocument: feature.gherkinDocument,
|
|
106
109
|
pickle: testCase,
|
|
107
110
|
pickleStep
|
|
108
111
|
}]),
|
|
@@ -130,15 +133,18 @@ for (const feature of features) {
|
|
|
130
133
|
await test.step(
|
|
131
134
|
'After Step',
|
|
132
135
|
() => afterStep.code.apply(world, [{
|
|
136
|
+
gherkinDocument: feature.gherkinDocument,
|
|
137
|
+
testCaseStartedId: '0',
|
|
138
|
+
testStepId: '0',
|
|
133
139
|
pickle: testCase,
|
|
134
140
|
pickleStep,
|
|
135
141
|
result: {
|
|
136
|
-
duration: 0,
|
|
142
|
+
duration: 0 as any,
|
|
137
143
|
message: result.error?.message,
|
|
138
|
-
status: result.status,
|
|
144
|
+
status: result.status.toUpperCase(),
|
|
139
145
|
exception: result.error
|
|
140
146
|
}
|
|
141
|
-
}]),
|
|
147
|
+
} as ITestStepHookParameter]),
|
|
142
148
|
location
|
|
143
149
|
);
|
|
144
150
|
}
|
|
@@ -163,9 +169,11 @@ for (const feature of features) {
|
|
|
163
169
|
await test.step(
|
|
164
170
|
hookName,
|
|
165
171
|
() => afterHook.code.apply(world, [{
|
|
172
|
+
gherkinDocument: feature.gherkinDocument,
|
|
173
|
+
testCaseStartedId: '0',
|
|
166
174
|
pickle: testCase,
|
|
167
175
|
result: getResult(testInfo)
|
|
168
|
-
}]),
|
|
176
|
+
} as ITestCaseHookParameter]),
|
|
169
177
|
location
|
|
170
178
|
);
|
|
171
179
|
}
|
package/src/loader.ts
CHANGED
|
@@ -33,6 +33,7 @@ export function loadFeatures(globPattern: string[]) {
|
|
|
33
33
|
const gherkinDocument = parser.parse(readFileSync(filePath, 'utf-8'));
|
|
34
34
|
return {
|
|
35
35
|
feature: gherkinDocument.feature?.name,
|
|
36
|
+
gherkinDocument,
|
|
36
37
|
tests: duplicates(compile(gherkinDocument, file, uuidFn) as any)
|
|
37
38
|
}
|
|
38
39
|
});
|