@serenity-js/playwright-test 3.0.0-rc.37 → 3.0.0-rc.39

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/api/PlaywrightTestConfig.d.ts +41 -0
  3. package/lib/api/PlaywrightTestConfig.d.ts.map +1 -0
  4. package/lib/{PlaywrightTestConfig.js → api/PlaywrightTestConfig.js} +0 -0
  5. package/lib/api/PlaywrightTestConfig.js.map +1 -0
  6. package/lib/api/SerenityFixtures.d.ts +128 -0
  7. package/lib/api/SerenityFixtures.d.ts.map +1 -0
  8. package/lib/api/SerenityFixtures.js +3 -0
  9. package/lib/api/SerenityFixtures.js.map +1 -0
  10. package/lib/api/SerenityOptions.d.ts +256 -0
  11. package/lib/api/SerenityOptions.d.ts.map +1 -0
  12. package/lib/api/SerenityOptions.js +3 -0
  13. package/lib/api/SerenityOptions.js.map +1 -0
  14. package/lib/api/SerenityTestType.d.ts +5 -0
  15. package/lib/api/SerenityTestType.d.ts.map +1 -0
  16. package/lib/api/SerenityTestType.js +4 -0
  17. package/lib/api/SerenityTestType.js.map +1 -0
  18. package/lib/api/index.d.ts +6 -0
  19. package/lib/api/index.d.ts.map +1 -0
  20. package/lib/api/index.js +22 -0
  21. package/lib/api/index.js.map +1 -0
  22. package/lib/api/test-api.d.ts +115 -0
  23. package/lib/api/test-api.d.ts.map +1 -0
  24. package/lib/api/test-api.js +229 -0
  25. package/lib/api/test-api.js.map +1 -0
  26. package/lib/index.d.ts +1 -2
  27. package/lib/index.d.ts.map +1 -1
  28. package/lib/index.js +0 -1
  29. package/lib/index.js.map +1 -1
  30. package/lib/reporter/PlaywrightStepReporter.d.ts +3 -0
  31. package/lib/reporter/PlaywrightStepReporter.d.ts.map +1 -1
  32. package/lib/reporter/PlaywrightStepReporter.js +57 -13
  33. package/lib/reporter/PlaywrightStepReporter.js.map +1 -1
  34. package/lib/reporter/SerenityReporterForPlaywrightTest.d.ts +22 -9
  35. package/lib/reporter/SerenityReporterForPlaywrightTest.d.ts.map +1 -1
  36. package/lib/reporter/SerenityReporterForPlaywrightTest.js +4 -8
  37. package/lib/reporter/SerenityReporterForPlaywrightTest.js.map +1 -1
  38. package/package.json +7 -8
  39. package/src/api/PlaywrightTestConfig.ts +42 -0
  40. package/src/api/SerenityFixtures.ts +130 -0
  41. package/src/api/SerenityOptions.ts +261 -0
  42. package/src/api/SerenityTestType.ts +12 -0
  43. package/src/api/index.ts +5 -0
  44. package/src/api/test-api.ts +252 -0
  45. package/src/index.ts +1 -2
  46. package/src/reporter/PlaywrightStepReporter.ts +95 -22
  47. package/src/reporter/SerenityReporterForPlaywrightTest.ts +23 -10
  48. package/lib/PlaywrightTestConfig.d.ts +0 -8
  49. package/lib/PlaywrightTestConfig.d.ts.map +0 -1
  50. package/lib/PlaywrightTestConfig.js.map +0 -1
  51. package/lib/api.d.ts +0 -25
  52. package/lib/api.d.ts.map +0 -1
  53. package/lib/api.js +0 -97
  54. package/lib/api.js.map +0 -1
  55. package/src/PlaywrightTestConfig.ts +0 -6
  56. package/src/api.ts +0 -121
@@ -0,0 +1,115 @@
1
+ import { SerenityTestType } from './SerenityTestType';
2
+ /**
3
+ * Declares a single test scenario.
4
+ *
5
+ * ## Example
6
+ *
7
+ * ```typescript
8
+ * import { Ensure, equals } from '@serenity-js/assertions'
9
+ * import { describe, it } from '@serenity-js/playwright-test'
10
+ *
11
+ * describe(`Todo List App`, () => {
12
+ *
13
+ * it(`should allow me to add a todo item`, async ({ actor }) => {
14
+ * await actor.attemptsTo(
15
+ * startWithAnEmptyList(),
16
+ *
17
+ * recordItem('Buy some milk'),
18
+ *
19
+ * Ensure.that(itemNames(), equals([
20
+ * 'Buy some milk',
21
+ * ])),
22
+ * )
23
+ * })
24
+ *
25
+ * it('supports multiple actors using separate browsers', async ({ actorCalled }) => {
26
+ * await actorCalled('Alice').attemptsTo(
27
+ * startWithAListContaining(
28
+ * 'Feed the cat'
29
+ * ),
30
+ * )
31
+ *
32
+ * await actorCalled('Bob').attemptsTo(
33
+ * startWithAListContaining(
34
+ * 'Walk the dog'
35
+ * ),
36
+ * )
37
+ *
38
+ * await actorCalled('Alice').attemptsTo(
39
+ * Ensure.that(itemNames(), equals([
40
+ * 'Feed the cat'
41
+ * ])),
42
+ * )
43
+ *
44
+ * await actorCalled('Bob').attemptsTo(
45
+ * Ensure.that(itemNames(), equals([
46
+ * 'Walk the dog'
47
+ * ])),
48
+ * )
49
+ * })
50
+ * })
51
+ * ```
52
+ *
53
+ * ## Learn more
54
+ * - {@apilink describe|Grouping test scenarios}
55
+ * - {@apilink SerenityFixtures}
56
+ * - [Playwright Test `test` function](https://playwright.dev/docs/api/class-test#test-call)
57
+ * - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
58
+ */
59
+ export declare const it: SerenityTestType;
60
+ export declare const test: SerenityTestType;
61
+ /**
62
+ * Declares a group of test scenarios.
63
+ *
64
+ * ## Example
65
+ *
66
+ * ```typescript
67
+ * import { Ensure, equals } from '@serenity-js/assertions'
68
+ * import { describe, it, test } from '@serenity-js/playwright-test'
69
+ * import { Photographer, TakePhotosOfFailures, Value } from '@serenity-js/web'
70
+ *
71
+ * describe(`Todo List App`, () => {
72
+ *
73
+ * test.use({
74
+ * defaultActorName: 'Serena',
75
+ * crew: [
76
+ * Photographer.whoWill(TakePhotosOfFailures),
77
+ * ],
78
+ * })
79
+ *
80
+ * it(`should allow me to add a todo item`, async ({ actor }) => {
81
+ * await actor.attemptsTo(
82
+ * startWithAnEmptyList(),
83
+ *
84
+ * recordItem('Buy some milk'),
85
+ *
86
+ * Ensure.that(itemNames(), equals([
87
+ * 'Buy some milk',
88
+ * ])),
89
+ * )
90
+ * })
91
+ *
92
+ * it('should clear text input field when an item is added', async ({ actor }) => {
93
+ * await actor.attemptsTo(
94
+ * startWithAnEmptyList(),
95
+ *
96
+ * recordItem('Buy some milk'),
97
+ *
98
+ * Ensure.that(Value.of(newTodoInput()), equals('')),
99
+ * )
100
+ * })
101
+ * })
102
+ * ```
103
+ *
104
+ * ## Learn more
105
+ * - Declaring a Serenity/JS {@apilink it|test scenario}
106
+ * - [Playwright Test `describe` function](https://playwright.dev/docs/api/class-test#test-describe-1)
107
+ * - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
108
+ */
109
+ export declare const describe: SerenityTestType['describe'];
110
+ export declare const beforeAll: SerenityTestType['beforeAll'];
111
+ export declare const beforeEach: SerenityTestType['beforeEach'];
112
+ export declare const afterEach: SerenityTestType['afterEach'];
113
+ export declare const afterAll: SerenityTestType['afterAll'];
114
+ export declare const expect: SerenityTestType['expect'];
115
+ //# sourceMappingURL=test-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,EAAE,EAAE,gBAiHf,CAAC;AAYH,eAAO,MAAM,IAAI,EAAE,gBAAqB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAe,CAAC;AAClE,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAgB,CAAC;AACrE,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAiB,CAAC;AACxE,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAgB,CAAC;AACrE,eAAO,MAAM,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAe,CAAC;AAClE,eAAO,MAAM,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAa,CAAC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.expect = exports.afterAll = exports.afterEach = exports.beforeEach = exports.beforeAll = exports.describe = exports.test = exports.it = void 0;
27
+ const test_1 = require("@playwright/test");
28
+ const core_1 = require("@serenity-js/core");
29
+ const events_1 = require("@serenity-js/core/lib/events");
30
+ const model_1 = require("@serenity-js/core/lib/model");
31
+ const playwright_1 = require("@serenity-js/playwright");
32
+ const web_1 = require("@serenity-js/web");
33
+ const os = __importStar(require("os"));
34
+ const tiny_types_1 = require("tiny-types");
35
+ const reporter_1 = require("../reporter");
36
+ /**
37
+ * Declares a single test scenario.
38
+ *
39
+ * ## Example
40
+ *
41
+ * ```typescript
42
+ * import { Ensure, equals } from '@serenity-js/assertions'
43
+ * import { describe, it } from '@serenity-js/playwright-test'
44
+ *
45
+ * describe(`Todo List App`, () => {
46
+ *
47
+ * it(`should allow me to add a todo item`, async ({ actor }) => {
48
+ * await actor.attemptsTo(
49
+ * startWithAnEmptyList(),
50
+ *
51
+ * recordItem('Buy some milk'),
52
+ *
53
+ * Ensure.that(itemNames(), equals([
54
+ * 'Buy some milk',
55
+ * ])),
56
+ * )
57
+ * })
58
+ *
59
+ * it('supports multiple actors using separate browsers', async ({ actorCalled }) => {
60
+ * await actorCalled('Alice').attemptsTo(
61
+ * startWithAListContaining(
62
+ * 'Feed the cat'
63
+ * ),
64
+ * )
65
+ *
66
+ * await actorCalled('Bob').attemptsTo(
67
+ * startWithAListContaining(
68
+ * 'Walk the dog'
69
+ * ),
70
+ * )
71
+ *
72
+ * await actorCalled('Alice').attemptsTo(
73
+ * Ensure.that(itemNames(), equals([
74
+ * 'Feed the cat'
75
+ * ])),
76
+ * )
77
+ *
78
+ * await actorCalled('Bob').attemptsTo(
79
+ * Ensure.that(itemNames(), equals([
80
+ * 'Walk the dog'
81
+ * ])),
82
+ * )
83
+ * })
84
+ * })
85
+ * ```
86
+ *
87
+ * ## Learn more
88
+ * - {@apilink describe|Grouping test scenarios}
89
+ * - {@apilink SerenityFixtures}
90
+ * - [Playwright Test `test` function](https://playwright.dev/docs/api/class-test#test-call)
91
+ * - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
92
+ */
93
+ exports.it = test_1.test.extend({
94
+ actors: [
95
+ ({ browser, contextOptions }, use) => use(core_1.Cast.whereEveryoneCan(playwright_1.BrowseTheWebWithPlaywright.using(browser, contextOptions), core_1.TakeNotes.usingAnEmptyNotepad())),
96
+ { option: true },
97
+ ],
98
+ defaultActorName: [
99
+ 'Serena',
100
+ { option: true },
101
+ ],
102
+ cueTimeout: [
103
+ core_1.Duration.ofSeconds(5),
104
+ { option: true },
105
+ ],
106
+ crew: [
107
+ [
108
+ web_1.Photographer.whoWill(web_1.TakePhotosOfFailures)
109
+ ],
110
+ { option: true },
111
+ ],
112
+ // eslint-disable-next-line no-empty-pattern
113
+ platform: ({}, use) => {
114
+ const platform = os.platform();
115
+ // https://nodejs.org/api/process.html#process_process_platform
116
+ const name = platform === 'win32'
117
+ ? 'Windows'
118
+ : (platform === 'darwin' ? 'macOS' : 'Linux');
119
+ use({ name, version: os.release() });
120
+ },
121
+ serenity: async ({ crew, cueTimeout, platform }, use, info) => {
122
+ const domainEventBuffer = new reporter_1.DomainEventBuffer();
123
+ core_1.serenity.configure({
124
+ cueTimeout: asDuration(cueTimeout),
125
+ crew: [
126
+ ...crew,
127
+ domainEventBuffer,
128
+ new reporter_1.PlaywrightStepReporter(info),
129
+ ],
130
+ });
131
+ core_1.serenity.announce(new events_1.SceneTagged(core_1.serenity.currentSceneId(), new model_1.PlatformTag(platform.name, platform.version), core_1.serenity.currentTime()));
132
+ await use(core_1.serenity);
133
+ const serialisedEvents = [];
134
+ for (const event of domainEventBuffer.flush()) {
135
+ serialisedEvents.push({
136
+ type: event.constructor.name,
137
+ value: event.toJSON(),
138
+ });
139
+ if (event instanceof events_1.SceneTagged) {
140
+ exports.test.info().annotations.push({ type: event.tag.type, description: event.tag.name });
141
+ }
142
+ }
143
+ test_1.test.info().attach('serenity-js-events.json', {
144
+ contentType: reporter_1.SERENITY_JS_DOMAIN_EVENTS_ATTACHMENT_CONTENT_TYPE,
145
+ body: Buffer.from(JSON.stringify(serialisedEvents), 'utf8'),
146
+ });
147
+ },
148
+ actorCalled: async ({ serenity, actors, browser, browserName, contextOptions }, use) => {
149
+ const sceneId = serenity.currentSceneId();
150
+ serenity.engage(asCast(actors));
151
+ const actorCalled = serenity.theActorCalled.bind(serenity);
152
+ serenity.announce(new events_1.SceneTagged(sceneId, new model_1.BrowserTag(browserName, browser.version()), serenity.currentTime()));
153
+ await use(actorCalled);
154
+ serenity.announce(new events_1.SceneFinishes(sceneId, serenity.currentTime()));
155
+ await core_1.serenity.waitForNextCue();
156
+ },
157
+ actor: async ({ actorCalled, defaultActorName }, use) => {
158
+ await use(actorCalled(defaultActorName));
159
+ },
160
+ page: async ({ actor }, use) => {
161
+ const page = (await playwright_1.BrowseTheWebWithPlaywright.as(actor).currentPage());
162
+ const nativePage = await page.nativePage();
163
+ await use(nativePage);
164
+ },
165
+ });
166
+ function asDuration(maybeDuration) {
167
+ return maybeDuration instanceof core_1.Duration
168
+ ? maybeDuration
169
+ : core_1.Duration.ofMilliseconds(maybeDuration);
170
+ }
171
+ function asCast(maybeCast) {
172
+ return (0, tiny_types_1.ensure)('actors', maybeCast, (0, tiny_types_1.property)('prepare', (0, tiny_types_1.isFunction)()));
173
+ }
174
+ exports.test = exports.it;
175
+ /**
176
+ * Declares a group of test scenarios.
177
+ *
178
+ * ## Example
179
+ *
180
+ * ```typescript
181
+ * import { Ensure, equals } from '@serenity-js/assertions'
182
+ * import { describe, it, test } from '@serenity-js/playwright-test'
183
+ * import { Photographer, TakePhotosOfFailures, Value } from '@serenity-js/web'
184
+ *
185
+ * describe(`Todo List App`, () => {
186
+ *
187
+ * test.use({
188
+ * defaultActorName: 'Serena',
189
+ * crew: [
190
+ * Photographer.whoWill(TakePhotosOfFailures),
191
+ * ],
192
+ * })
193
+ *
194
+ * it(`should allow me to add a todo item`, async ({ actor }) => {
195
+ * await actor.attemptsTo(
196
+ * startWithAnEmptyList(),
197
+ *
198
+ * recordItem('Buy some milk'),
199
+ *
200
+ * Ensure.that(itemNames(), equals([
201
+ * 'Buy some milk',
202
+ * ])),
203
+ * )
204
+ * })
205
+ *
206
+ * it('should clear text input field when an item is added', async ({ actor }) => {
207
+ * await actor.attemptsTo(
208
+ * startWithAnEmptyList(),
209
+ *
210
+ * recordItem('Buy some milk'),
211
+ *
212
+ * Ensure.that(Value.of(newTodoInput()), equals('')),
213
+ * )
214
+ * })
215
+ * })
216
+ * ```
217
+ *
218
+ * ## Learn more
219
+ * - Declaring a Serenity/JS {@apilink it|test scenario}
220
+ * - [Playwright Test `describe` function](https://playwright.dev/docs/api/class-test#test-describe-1)
221
+ * - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
222
+ */
223
+ exports.describe = exports.it.describe;
224
+ exports.beforeAll = exports.it.beforeAll;
225
+ exports.beforeEach = exports.it.beforeEach;
226
+ exports.afterEach = exports.it.afterEach;
227
+ exports.afterAll = exports.it.afterAll;
228
+ exports.expect = exports.it.expect;
229
+ //# sourceMappingURL=test-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from './api';
2
- export * from './PlaywrightTestConfig';
3
- export { SerenityReporterForPlaywrightTest as default } from './reporter';
2
+ export { SerenityReporterForPlaywrightTest as default, SerenityReporterForPlaywrightTestConfig } from './reporter';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAe,OAAO,CAAC;AACvB,cAAe,wBAAwB,CAAC;AACxC,OAAO,EAAE,iCAAiC,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAe,OAAO,CAAC;AACvB,OAAO,EAAE,iCAAiC,IAAI,OAAO,EAAE,uCAAuC,EAAE,MAAM,YAAY,CAAC"}
package/lib/index.js CHANGED
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.default = void 0;
18
18
  __exportStar(require("./api"), exports);
19
- __exportStar(require("./PlaywrightTestConfig"), exports);
20
19
  var reporter_1 = require("./reporter");
21
20
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return reporter_1.SerenityReporterForPlaywrightTest; } });
22
21
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAuB;AACvB,yDAAwC;AACxC,uCAA0E;AAAjE,mGAAA,iCAAiC,OAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAuB;AACvB,uCAAmH;AAA1G,mGAAA,iCAAiC,OAAW"}
@@ -8,6 +8,9 @@ export declare class PlaywrightStepReporter implements StageCrewMember {
8
8
  constructor(testInfo: TestInfo, stage?: Stage);
9
9
  assignedTo(stage: Stage): StageCrewMember;
10
10
  notifyOf(event: DomainEvent): void;
11
+ private isAPhotoAttempt;
12
+ private indicatesCompletionOfAnAsyncOperation;
13
+ private attachPhotoFrom;
11
14
  private createStep;
12
15
  }
13
16
  //# sourceMappingURL=PlaywrightStepReporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightStepReporter.d.ts","sourceRoot":"","sources":["../../src/reporter/PlaywrightStepReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAoE,MAAM,8BAA8B,CAAC;AAgC7H,qBAAa,sBAAuB,YAAW,eAAe;IAKtD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,KAAK,CAAC;IAJlB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBAG7C,QAAQ,EAAE,QAAQ,EAC3B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAMzC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAoBlC,OAAO,CAAC,UAAU;CAYrB"}
1
+ {"version":3,"file":"PlaywrightStepReporter.d.ts","sourceRoot":"","sources":["../../src/reporter/PlaywrightStepReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAOH,WAAW,EAId,MAAM,8BAA8B,CAAC;AAuCtC,qBAAa,sBAAuB,YAAW,eAAe;IAKtD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,KAAK,CAAC;IAJlB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBAG7C,QAAQ,EAAE,QAAQ,EAC3B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAMzC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA8ClC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,qCAAqC;IAM7C,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;CAYrB"}
@@ -2,7 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlaywrightStepReporter = void 0;
4
4
  const events_1 = require("@serenity-js/core/lib/events");
5
+ const io_1 = require("@serenity-js/core/lib/io");
5
6
  const model_1 = require("@serenity-js/core/lib/model");
7
+ const model_2 = require("@serenity-js/core/src/model");
8
+ const web_1 = require("@serenity-js/web");
9
+ const tiny_types_1 = require("tiny-types");
10
+ const genericPathToPhotographer = io_1.Path.from(require.resolve('@serenity-js/web'));
6
11
  class PlaywrightStepReporter {
7
12
  constructor(testInfo, stage) {
8
13
  this.testInfo = testInfo;
@@ -14,20 +19,59 @@ class PlaywrightStepReporter {
14
19
  return this;
15
20
  }
16
21
  notifyOf(event) {
17
- if (event instanceof events_1.TaskStarts) {
18
- this.steps.set(event.activityId.value, this.createStep(event.details, 'task'));
19
- }
20
- if (event instanceof events_1.InteractionStarts) {
21
- this.steps.set(event.activityId.value, this.createStep(event.details, 'interaction'));
22
- }
23
- if (event instanceof events_1.InteractionFinished || event instanceof events_1.TaskFinished) {
24
- if (event.outcome instanceof model_1.ProblemIndication) {
25
- this.steps.get(event.activityId.value).complete({ error: event.outcome.error });
22
+ (0, tiny_types_1.match)(event)
23
+ .when(events_1.TaskStarts, (e) => {
24
+ this.steps.set(e.activityId.value, this.createStep(e.details, 'task'));
25
+ })
26
+ .when(events_1.InteractionStarts, (e) => {
27
+ this.steps.set(e.activityId.value, this.createStep(e.details, 'interaction'));
28
+ })
29
+ .when(events_1.AsyncOperationAttempted, (e) => {
30
+ if (this.isAPhotoAttempt(e)) {
31
+ this.steps.set(e.correlationId.value, this.createStep(new model_1.ActivityDetails(new model_1.Name(`${web_1.Photographer.name}: ${e.description.value}`), new io_1.FileSystemLocation(genericPathToPhotographer)), 'crew'));
26
32
  }
27
- else {
28
- this.steps.get(event.activityId.value).complete({});
33
+ })
34
+ .when(events_1.ActivityFinished, (e) => {
35
+ const error = e.outcome instanceof model_1.ProblemIndication
36
+ ? e.outcome.error
37
+ : undefined;
38
+ this.steps.get(e.activityId.value).complete({ error });
39
+ })
40
+ .when(events_1.ActivityRelatedArtifactGenerated, (e) => {
41
+ if (e.artifact instanceof model_1.Photo) {
42
+ this.attachPhotoFrom(e);
29
43
  }
30
- }
44
+ })
45
+ .when(events_1.SceneTagged, (e) => {
46
+ // don't include platform and browser tags as Playwright already includes them
47
+ if (!(e.tag instanceof model_2.PlatformTag || e.tag instanceof model_2.BrowserTag)) {
48
+ this.testInfo.annotations.push({ type: e.tag.type, description: e.tag.name });
49
+ }
50
+ })
51
+ .else(e => {
52
+ if (this.indicatesCompletionOfAnAsyncOperation(e) && this.steps.has(e.correlationId.value)) {
53
+ const error = event instanceof events_1.AsyncOperationFailed
54
+ ? event.error
55
+ : undefined;
56
+ this.steps.get(e.correlationId.value).complete({ error });
57
+ }
58
+ });
59
+ }
60
+ isAPhotoAttempt(event) {
61
+ return event.name.value.startsWith(web_1.Photographer.name);
62
+ }
63
+ indicatesCompletionOfAnAsyncOperation(event) {
64
+ return event instanceof events_1.AsyncOperationCompleted
65
+ || event instanceof events_1.AsyncOperationAborted
66
+ || event instanceof events_1.AsyncOperationFailed;
67
+ }
68
+ attachPhotoFrom(event) {
69
+ const id = model_1.CorrelationId.create();
70
+ this.stage.announce(new events_1.AsyncOperationAttempted(new model_1.Name(this.constructor.name), new model_1.Description(`Attaching screenshot of '${event.name.value}'...`), id, this.stage.currentTime()));
71
+ this.testInfo.attach(event.name.value, { body: Buffer.from(event.artifact.base64EncodedValue, 'base64'), contentType: 'image/png' })
72
+ .then(() => {
73
+ this.stage.announce(new events_1.AsyncOperationCompleted(id, this.stage.currentTime()));
74
+ });
31
75
  }
32
76
  createStep(activityDetails, type) {
33
77
  // https://github.com/microsoft/playwright/blob/04f77f231981780704a3a5e2cea93e3c420809a0/packages/playwright-test/src/expect.ts#L200-L206
@@ -38,7 +82,7 @@ class PlaywrightStepReporter {
38
82
  category: `serenity-js:${type}`,
39
83
  title: activityDetails.name.value,
40
84
  canHaveChildren: true,
41
- forceNoParent: false
85
+ forceNoParent: false,
42
86
  });
43
87
  }
44
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightStepReporter.js","sourceRoot":"","sources":["../../src/reporter/PlaywrightStepReporter.ts"],"names":[],"mappings":";;;AAEA,yDAA6H;AAC7H,uDAAiF;AA+BjF,MAAa,sBAAsB;IAI/B,YACqB,QAAkB,EAC3B,KAAa;QADJ,aAAQ,GAAR,QAAQ,CAAU;QAC3B,UAAK,GAAL,KAAK,CAAQ;QAJR,UAAK,GAAkC,IAAI,GAAG,EAAE,CAAC;IAMlE,CAAC;IAED,UAAU,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAkB;QAEvB,IAAI,KAAK,YAAY,mBAAU,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;SAClF;QAED,IAAI,KAAK,YAAY,0BAAiB,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;SACzF;QAED,IAAI,KAAK,YAAY,4BAAmB,IAAI,KAAK,YAAY,qBAAY,EAAE;YACvE,IAAI,KAAK,CAAC,OAAO,YAAY,yBAAiB,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;aAClF;iBACI;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aACtD;SACJ;IACL,CAAC;IAEO,UAAU,CAAC,eAAgC,EAAE,IAA4B;QAC7E,yIAAyI;QACzI,OAAQ,IAAI,CAAC,QAAgB,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC7H,CAAC,CAAC,SAAS;YACf,QAAQ,EAAE,eAAgB,IAAK,EAAE;YACjC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;YACjC,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;SACvB,CAAqB,CAAC;IAC3B,CAAC;CACJ;AAhDD,wDAgDC"}
1
+ {"version":3,"file":"PlaywrightStepReporter.js","sourceRoot":"","sources":["../../src/reporter/PlaywrightStepReporter.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,43 @@
1
- import { FullConfig } from '@playwright/test';
2
- import { Reporter, Suite, TestCase, TestResult } from '@playwright/test/reporter';
3
- import { Serenity, StageCrewMember, StageCrewMemberBuilder } from '@serenity-js/core';
1
+ import type { FullConfig } from '@playwright/test';
2
+ import type { Reporter, Suite, TestCase, TestResult } from '@playwright/test/reporter';
3
+ import { ClassDescription, Serenity, StageCrewMember, StageCrewMemberBuilder } from '@serenity-js/core';
4
4
  import { OutputStream } from '@serenity-js/core/lib/adapter';
5
- export declare class SerenityReporterForPlaywrightTestConfig {
5
+ /**
6
+ * Configuration object accepted by `@serenity-js/playwright-test` reporter.
7
+ *
8
+ * See {@apilink SerenityOptions} for usage examples.
9
+ */
10
+ export interface SerenityReporterForPlaywrightTestConfig {
6
11
  /**
7
12
  * A list of {@apilink StageCrewMemberBuilder|StageCrewMemberBuilders} or {@apilink StageCrewMember|StageCrewMembers}
8
- * to be notified of {@apilink DomainEvent|DomainEvents} that occur during the scenario execution.
13
+ * to be instantiated in Playwright Test reporter process and notified of {@apilink DomainEvent|DomainEvents} that occur during the scenario execution.
14
+ * Note that the `crew` can also be configured using {@apilink ClassDescription|ClassDescriptions}.
15
+ *
16
+ * #### Learn more
17
+ * - {@apilink SerenityOptions}
18
+ * - {@apilink SerenityConfig.crew}
9
19
  */
10
- crew?: Array<StageCrewMember | StageCrewMemberBuilder>;
20
+ crew?: Array<StageCrewMember | StageCrewMemberBuilder | ClassDescription>;
11
21
  /**
12
22
  * An output stream to be injected into {@apilink StageCrewMemberBuilder|StageCrewMemberBuilders}
13
23
  *
14
24
  * Defaults to [`process.stdout`](https://nodejs.org/api/process.html#process_process_stdout).
25
+ *
26
+ * #### Learn more
27
+ * - {@apilink SerenityConfig.outputStream}
15
28
  */
16
29
  outputStream?: OutputStream;
17
30
  }
18
31
  /**
19
- * Receives notifications from Playwright Test and translates them to Serenity/JS
20
- * {@apilink DomainEvent|domain events}, so that they can be used with Serenity/JS reporters.
32
+ * Serenity/JS reporter that receives notifications from Playwright Test and emits them as
33
+ * Serenity/JS {@apilink DomainEvent|domain events} which can be used by
34
+ * Serenity/JS {@apilink StageCrewMember|stage crew members}.
21
35
  */
22
36
  export declare class SerenityReporterForPlaywrightTest implements Reporter {
23
37
  private readonly serenity;
24
38
  private errorParser;
25
39
  private sceneIds;
26
40
  /**
27
- *
28
41
  * @param config
29
42
  * @param serenity
30
43
  * Instance of {@apilink Serenity}, specific to the Node process running this Serenity reporter.
@@ -1 +1 @@
1
- {"version":3,"file":"SerenityReporterForPlaywrightTest.d.ts","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAc,QAAQ,EAAwC,eAAe,EAAE,sBAAsB,EAAa,MAAM,mBAAmB,CAAC;AACnJ,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkC7D,qBAAa,uCAAuC;IAChD;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,sBAAsB,CAAC,CAAC;IAEvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,iCAAkC,YAAW,QAAQ;IAc1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ7B,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAyC;IAEzD;;;;;;OAMG;gBAEC,MAAM,EAAE,uCAAuC,EAC9B,QAAQ,GAAE,QAAmC;IAKlE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/C,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAwBjC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA0CnD,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,mBAAmB;IAcrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,GAAG;IAIX,aAAa,IAAI,OAAO;CAG3B"}
1
+ {"version":3,"file":"SerenityReporterForPlaywrightTest.d.ts","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAc,QAAQ,EAAwC,eAAe,EAAE,sBAAsB,EAAa,MAAM,mBAAmB,CAAC;AACrK,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiC7D;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IAEpD;;;;;;;;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;IAa1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX7B,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAyC;IAEzD;;;;;OAKG;gBAEC,MAAM,EAAE,uCAAuC,EAC9B,QAAQ,GAAE,QAAmC;IAKlE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/C,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAwBjC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA0CnD,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,mBAAmB;IAcrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,GAAG;IAIX,aAAa,IAAI,OAAO;CAG3B"}
@@ -23,24 +23,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.SerenityReporterForPlaywrightTest = exports.SerenityReporterForPlaywrightTestConfig = void 0;
26
+ exports.SerenityReporterForPlaywrightTest = void 0;
27
27
  const core_1 = require("@serenity-js/core");
28
28
  const events = __importStar(require("@serenity-js/core/lib/events"));
29
29
  const events_1 = require("@serenity-js/core/lib/events");
30
30
  const io_1 = require("@serenity-js/core/lib/io");
31
31
  const model_1 = require("@serenity-js/core/lib/model");
32
32
  const PlaywrightAttachments_1 = require("./PlaywrightAttachments");
33
- // TODO Split SerenityConfig into ActorsConfig and SerenityReportingConfig
34
- class SerenityReporterForPlaywrightTestConfig {
35
- }
36
- exports.SerenityReporterForPlaywrightTestConfig = SerenityReporterForPlaywrightTestConfig;
37
33
  /**
38
- * Receives notifications from Playwright Test and translates them to Serenity/JS
39
- * {@apilink DomainEvent|domain events}, so that they can be used with Serenity/JS reporters.
34
+ * Serenity/JS reporter that receives notifications from Playwright Test and emits them as
35
+ * Serenity/JS {@apilink DomainEvent|domain events} which can be used by
36
+ * Serenity/JS {@apilink StageCrewMember|stage crew members}.
40
37
  */
41
38
  class SerenityReporterForPlaywrightTest {
42
39
  /**
43
- *
44
40
  * @param config
45
41
  * @param serenity
46
42
  * Instance of {@apilink Serenity}, specific to the Node process running this Serenity reporter.
@@ -1 +1 @@
1
- {"version":3,"file":"SerenityReporterForPlaywrightTest.js","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SerenityReporterForPlaywrightTest.js","sourceRoot":"","sources":["../../src/reporter/SerenityReporterForPlaywrightTest.ts"],"names":[],"mappings":"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"}