@serenity-js/playwright-test 3.20.0 → 3.21.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 +11 -0
- package/lib/api/SuiteFunction.d.ts +11 -0
- package/lib/api/SuiteFunction.d.ts.map +1 -1
- package/lib/reporter/SerenityReporterForPlaywrightTest.d.ts.map +1 -1
- package/lib/reporter/SerenityReporterForPlaywrightTest.js +13 -6
- package/lib/reporter/SerenityReporterForPlaywrightTest.js.map +1 -1
- package/package.json +6 -6
- package/src/api/SuiteFunction.ts +14 -0
- package/src/reporter/SerenityReporterForPlaywrightTest.ts +18 -13
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.21.0](https://github.com/serenity-js/serenity-js/compare/v3.20.0...v3.21.0) (2024-03-04)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **playwright-test:** support for reporting tags registered using the new Playwright 1.42 tags API ([9d57157](https://github.com/serenity-js/serenity-js/commit/9d571573cd9d8b52ddcb286f1160c7011dea7590))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [3.20.0](https://github.com/serenity-js/serenity-js/compare/v3.19.0...v3.20.0) (2024-03-02)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TestDetails } from '@playwright/test';
|
|
1
2
|
export interface SuiteFunction {
|
|
2
3
|
/**
|
|
3
4
|
* Declares a group of tests.
|
|
@@ -47,5 +48,15 @@ export interface SuiteFunction {
|
|
|
47
48
|
* callback will belong to the group.
|
|
48
49
|
*/
|
|
49
50
|
(callback: () => void): void;
|
|
51
|
+
/**
|
|
52
|
+
* Declares a group of tests.
|
|
53
|
+
*
|
|
54
|
+
* @param title Group title.
|
|
55
|
+
* @param details Additional details for all tests in the group.
|
|
56
|
+
* @param callback A callback that is run immediately when calling
|
|
57
|
+
* [test.describe(title, callback)](https://playwright.dev/docs/api/class-test#test-describe-1). Any tests added in
|
|
58
|
+
* this callback will belong to the group.
|
|
59
|
+
*/
|
|
60
|
+
(title: string, details: TestDetails, callback: () => void): void;
|
|
50
61
|
}
|
|
51
62
|
//# sourceMappingURL=SuiteFunction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuiteFunction.d.ts","sourceRoot":"","sources":["../../src/api/SuiteFunction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SuiteFunction.d.ts","sourceRoot":"","sources":["../../src/api/SuiteFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,MAAM,WAAW,aAAa;IAC1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC5C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE7B;;;;;;;;OAQG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerenityReporterForPlaywrightTest.d.ts","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAG,MAAM,2BAA2B,CAAC;AACnG,OAAO,KAAK,EACR,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,sBAAsB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAclE,OAAO,EAAwC,qBAAqB,EAAG,MAAM,0BAA0B,CAAC;AAkBxG;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IACpD;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;IAE1E;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED;;;;GAIG;AACH,qBAAa,iCAAkC,YAAW,QAAQ;IAe1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,qBAAqB;IAfjC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,cAAc,CAAC,CAAQ;IAE/B;;;;;;;OAOG;gBAEC,MAAM,EAAE,uCAAuC,EAC9B,QAAQ,GAAE,QAAmC,EACtD,qBAAqB,GAAE,qBAE9B;IAKL,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ/C,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"SerenityReporterForPlaywrightTest.d.ts","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAG,MAAM,2BAA2B,CAAC;AACnG,OAAO,KAAK,EACR,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,sBAAsB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAclE,OAAO,EAAwC,qBAAqB,EAAG,MAAM,0BAA0B,CAAC;AAkBxG;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IACpD;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;IAE1E;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED;;;;GAIG;AACH,qBAAa,iCAAkC,YAAW,QAAQ;IAe1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,qBAAqB;IAfjC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,cAAc,CAAC,CAAQ;IAE/B;;;;;;;OAOG;gBAEC,MAAM,EAAE,uCAAuC,EAC9B,QAAQ,GAAE,QAAmC,EACtD,qBAAqB,GAAE,qBAE9B;IAKL,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ/C,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsCjC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAyCnD,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAM/B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,mBAAmB;IAyBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,GAAG;IAIX,aAAa,IAAI,OAAO;CAG3B"}
|
|
@@ -61,10 +61,13 @@ class SerenityReporterForPlaywrightTest {
|
|
|
61
61
|
onTestBegin(test) {
|
|
62
62
|
const currentSceneId = this.serenity.assignNewSceneId();
|
|
63
63
|
this.sceneIds.set(test.id, currentSceneId);
|
|
64
|
-
const
|
|
65
|
-
const tags =
|
|
66
|
-
|
|
67
|
-
.
|
|
64
|
+
const { scenarioDetails, scenarioTags } = this.scenarioDetailsFrom(test);
|
|
65
|
+
const tags = [
|
|
66
|
+
...scenarioTags,
|
|
67
|
+
...test.tags.flatMap(tag => model_1.Tags.from(tag)),
|
|
68
|
+
];
|
|
69
|
+
this.emit(new events_1.SceneStarts(currentSceneId, scenarioDetails, this.serenity.currentTime()), ...this.requirementsHierarchy
|
|
70
|
+
.requirementTagsFor(scenarioDetails.location.path, scenarioDetails.category.value)
|
|
68
71
|
.map(tag => new events_1.SceneTagged(currentSceneId, tag, this.serenity.currentTime())), new events_1.TestRunnerDetected(currentSceneId, new model_1.Name('Playwright'), this.serenity.currentTime()), ...tags.map(tag => new events_1.SceneTagged(currentSceneId, tag, this.serenity.currentTime())));
|
|
69
72
|
}
|
|
70
73
|
// TODO might be nice to support that by emitting TestStepStarted / Finished
|
|
@@ -95,7 +98,7 @@ class SerenityReporterForPlaywrightTest {
|
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
const scenarioOutcome = this.outcomeFrom(test, result);
|
|
98
|
-
this.serenity.announce(new events_1.SceneFinished(currentSceneId, this.scenarioDetailsFrom(test), this.determineScenarioOutcome(worstInteractionOutcome, scenarioOutcome), this.now()));
|
|
101
|
+
this.serenity.announce(new events_1.SceneFinished(currentSceneId, this.scenarioDetailsFrom(test).scenarioDetails, this.determineScenarioOutcome(worstInteractionOutcome, scenarioOutcome), this.now()));
|
|
99
102
|
}
|
|
100
103
|
onError(error) {
|
|
101
104
|
if (!this.unhandledError) {
|
|
@@ -130,8 +133,12 @@ class SerenityReporterForPlaywrightTest {
|
|
|
130
133
|
const [root_, browserName_, fileName, describeOrItBlockTitle, ...nestedTitles] = test.titlePath();
|
|
131
134
|
const path = new io_1.Path(test.location.file);
|
|
132
135
|
const scenarioName = nestedTitles.join(' ').trim();
|
|
136
|
+
const name = scenarioName || describeOrItBlockTitle;
|
|
133
137
|
const featureName = scenarioName ? describeOrItBlockTitle : fileName;
|
|
134
|
-
return
|
|
138
|
+
return {
|
|
139
|
+
scenarioDetails: new model_1.ScenarioDetails(new model_1.Name(model_1.Tags.stripFrom(name)), new model_1.Category(model_1.Tags.stripFrom(featureName)), new io_1.FileSystemLocation(path, test.location.line, test.location.column)),
|
|
140
|
+
scenarioTags: model_1.Tags.from(`${featureName} ${name}`),
|
|
141
|
+
};
|
|
135
142
|
}
|
|
136
143
|
async onEnd() {
|
|
137
144
|
this.serenity.announce(new events_1.TestRunFinishes(this.serenity.currentTime()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerenityReporterForPlaywrightTest.js","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4CAAsF;AAGtF,qEAAuD;AACvD,yDAUsC;AACtC,iDAAwG;AAExG,uDAYqC;AAErC,mEAA4F;AA8B5F;;;;GAIG;AACH,MAAa,iCAAiC;IAerB;IACT;IAfJ,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1C,QAAQ,GAA+B,IAAI,GAAG,EAAE,CAAC;IACjD,cAAc,CAAS;IAE/B;;;;;;;OAOG;IACH,YACI,MAA+C,EAC9B,WAAqB,eAAwB,EACtD,wBAA+C,IAAI,0BAAqB,CAC5E,IAAI,eAAU,CAAC,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAC3C;QAHgB,aAAQ,GAAR,QAAQ,CAAqC;QACtD,0BAAqB,GAArB,qBAAqB,CAE5B;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,MAAkB,EAAE,KAAY;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,0BAAqB,CAClD,IAAI,eAAU,CAAC,SAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAC5C,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,sBAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,IAAc;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAExD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAE3C,MAAM,
|
|
1
|
+
{"version":3,"file":"SerenityReporterForPlaywrightTest.js","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serenity-js/playwright-test",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.21.0",
|
|
4
4
|
"description": "Serenity/JS reporter and test APIs for Playwright Test",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jan Molak",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@playwright/test": "1.42.1",
|
|
49
|
-
"@serenity-js/core": "3.
|
|
50
|
-
"@serenity-js/playwright": "3.
|
|
51
|
-
"@serenity-js/rest": "3.
|
|
52
|
-
"@serenity-js/web": "3.
|
|
49
|
+
"@serenity-js/core": "3.21.0",
|
|
50
|
+
"@serenity-js/playwright": "3.21.0",
|
|
51
|
+
"@serenity-js/rest": "3.21.0",
|
|
52
|
+
"@serenity-js/web": "3.21.0",
|
|
53
53
|
"deepmerge": "4.3.1",
|
|
54
54
|
"tiny-types": "1.21.0"
|
|
55
55
|
},
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"ts-node": "10.9.2",
|
|
64
64
|
"typescript": "5.2.2"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "98621d99c073223dc40cc3dc836c4e2ee676aa9c"
|
|
67
67
|
}
|
package/src/api/SuiteFunction.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { TestDetails } from '@playwright/test';
|
|
2
|
+
|
|
1
3
|
// Playwright Test doesn't export all its public APIs, hence the need for this workaround
|
|
4
|
+
|
|
2
5
|
// See https://github.com/microsoft/playwright/pull/24146
|
|
3
6
|
export interface SuiteFunction {
|
|
4
7
|
/**
|
|
@@ -49,4 +52,15 @@ export interface SuiteFunction {
|
|
|
49
52
|
* callback will belong to the group.
|
|
50
53
|
*/
|
|
51
54
|
(callback: () => void): void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Declares a group of tests.
|
|
58
|
+
*
|
|
59
|
+
* @param title Group title.
|
|
60
|
+
* @param details Additional details for all tests in the group.
|
|
61
|
+
* @param callback A callback that is run immediately when calling
|
|
62
|
+
* [test.describe(title, callback)](https://playwright.dev/docs/api/class-test#test-describe-1). Any tests added in
|
|
63
|
+
* this callback will belong to the group.
|
|
64
|
+
*/
|
|
65
|
+
(title: string, details: TestDetails, callback: () => void): void;
|
|
52
66
|
}
|
|
@@ -109,17 +109,18 @@ export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
109
109
|
|
|
110
110
|
this.sceneIds.set(test.id, currentSceneId);
|
|
111
111
|
|
|
112
|
-
const
|
|
112
|
+
const { scenarioDetails, scenarioTags } = this.scenarioDetailsFrom(test);
|
|
113
113
|
|
|
114
|
-
const tags: Tag[] =
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
const tags: Tag[] = [
|
|
115
|
+
... scenarioTags,
|
|
116
|
+
... test.tags.flatMap(tag => Tags.from(tag)),
|
|
117
|
+
];
|
|
117
118
|
|
|
118
119
|
this.emit(
|
|
119
|
-
new SceneStarts(currentSceneId,
|
|
120
|
+
new SceneStarts(currentSceneId, scenarioDetails, this.serenity.currentTime()),
|
|
120
121
|
|
|
121
122
|
...this.requirementsHierarchy
|
|
122
|
-
.requirementTagsFor(
|
|
123
|
+
.requirementTagsFor(scenarioDetails.location.path, scenarioDetails.category.value)
|
|
123
124
|
.map(tag => new SceneTagged(currentSceneId, tag, this.serenity.currentTime())),
|
|
124
125
|
|
|
125
126
|
new TestRunnerDetected(
|
|
@@ -175,7 +176,7 @@ export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
175
176
|
this.serenity.announce(
|
|
176
177
|
new SceneFinished(
|
|
177
178
|
currentSceneId,
|
|
178
|
-
this.scenarioDetailsFrom(test),
|
|
179
|
+
this.scenarioDetailsFrom(test).scenarioDetails,
|
|
179
180
|
this.determineScenarioOutcome(worstInteractionOutcome, scenarioOutcome),
|
|
180
181
|
this.now(),
|
|
181
182
|
),
|
|
@@ -227,7 +228,7 @@ export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
227
228
|
return new ExecutionSuccessful();
|
|
228
229
|
}
|
|
229
230
|
|
|
230
|
-
private scenarioDetailsFrom(test: TestCase) {
|
|
231
|
+
private scenarioDetailsFrom(test: TestCase): { scenarioDetails: ScenarioDetails, scenarioTags: Tag[] } {
|
|
231
232
|
const [
|
|
232
233
|
root_,
|
|
233
234
|
browserName_,
|
|
@@ -239,13 +240,17 @@ export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
239
240
|
const path = new Path(test.location.file);
|
|
240
241
|
const scenarioName = nestedTitles.join(' ').trim();
|
|
241
242
|
|
|
243
|
+
const name = scenarioName || describeOrItBlockTitle;
|
|
242
244
|
const featureName = scenarioName ? describeOrItBlockTitle : fileName;
|
|
243
245
|
|
|
244
|
-
return
|
|
245
|
-
new
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
return {
|
|
247
|
+
scenarioDetails: new ScenarioDetails(
|
|
248
|
+
new Name(Tags.stripFrom(name)),
|
|
249
|
+
new Category(Tags.stripFrom(featureName)),
|
|
250
|
+
new FileSystemLocation(path, test.location.line, test.location.column),
|
|
251
|
+
),
|
|
252
|
+
scenarioTags: Tags.from(`${ featureName } ${ name }`),
|
|
253
|
+
};
|
|
249
254
|
}
|
|
250
255
|
|
|
251
256
|
async onEnd(): Promise<void> {
|