@serenity-js/playwright-test 3.25.0 → 3.25.2
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 +22 -0
- package/README.md +2 -2
- package/lib/api/PlaywrightTestConfig.d.ts +4 -4
- package/lib/api/SerenityFixtures.d.ts +15 -15
- package/lib/api/SerenityOptions.d.ts +33 -30
- package/lib/api/SerenityOptions.d.ts.map +1 -1
- package/lib/api/test-api.d.ts +11 -11
- package/lib/api/test-api.d.ts.map +1 -1
- package/lib/api/test-api.js +7 -7
- package/lib/api/test-api.js.map +1 -1
- package/lib/reporter/SerenityReporterForPlaywrightTest.d.ts +11 -11
- package/lib/reporter/SerenityReporterForPlaywrightTest.js +3 -3
- package/package.json +8 -8
- package/src/api/PlaywrightTestConfig.ts +4 -4
- package/src/api/SerenityFixtures.ts +15 -15
- package/src/api/SerenityOptions.ts +33 -30
- package/src/api/test-api.ts +11 -10
- package/src/reporter/SerenityReporterForPlaywrightTest.ts +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.25.2](https://github.com/serenity-js/serenity-js/compare/v3.25.1...v3.25.2) (2024-07-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **deps:** update playwright dependencies to v1.45.2 ([bf1d934](https://github.com/serenity-js/serenity-js/commit/bf1d934f5b9feca2b59192d4524d55e130b7bb80))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [3.25.1](https://github.com/serenity-js/serenity-js/compare/v3.25.0...v3.25.1) (2024-07-10)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **core:** all the API docs now link to the online Serenity/JS API documentation ([f8f451d](https://github.com/serenity-js/serenity-js/commit/f8f451dffdb4caaa2e31a860f59d59470f4856ad))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [3.25.0](https://github.com/serenity-js/serenity-js/compare/v3.24.1...v3.25.0) (2024-07-03)
|
|
7
29
|
|
|
8
30
|
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ of complex software systems faster, more collaborative and easier to scale.
|
|
|
17
17
|
👋 Join the Serenity/JS Community!
|
|
18
18
|
- Meet other Serenity/JS developers and maintainers on the [Serenity/JS Community chat channel](https://matrix.to/#/#serenity-js:gitter.im),
|
|
19
19
|
- Find answers to your Serenity/JS questions on the [Serenity/JS Forum](https://github.com/orgs/serenity-js/discussions/categories/how-do-i),
|
|
20
|
-
- Learn how to [contribute to Serenity/JS](https://serenity-js.org/contributing),
|
|
20
|
+
- Learn how to [contribute to Serenity/JS](https://serenity-js.org/community/contributing/),
|
|
21
21
|
- Support the project and gain access to [Serenity/JS Playbooks](https://github.com/serenity-js/playbooks) by becoming a [Serenity/JS GitHub Sponsor](https://github.com/sponsors/serenity-js)!
|
|
22
22
|
|
|
23
23
|
## Serenity/JS Playwright Test
|
|
@@ -163,7 +163,7 @@ describe('Serenity Screenplay with Playwright', () => {
|
|
|
163
163
|
#### Customising Actors
|
|
164
164
|
|
|
165
165
|
The default [cast](https://serenity-js.org/api/core/class/Cast) of actors is limited to using a single ability
|
|
166
|
-
to [`BrowseTheWebWithPlaywright`](/api/playwright/class/BrowseTheWebWithPlaywright).
|
|
166
|
+
to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright).
|
|
167
167
|
|
|
168
168
|
If you'd like to give your actors additional abilities, like to [`TakeNotes`](https://serenity-js.org/api/core/class/TakeNotes),
|
|
169
169
|
[`CallAnApi`](https://serenity-js.org/api/rest/class/CallAnApi),
|
|
@@ -2,7 +2,7 @@ import type { PlaywrightTestConfig as BasePlaywrightTestConfig } from '@playwrig
|
|
|
2
2
|
import type { SerenityOptions } from './SerenityOptions';
|
|
3
3
|
/**
|
|
4
4
|
* Convenience alias for [PlaywrightTestConfig](https://playwright.dev/docs/test-configuration) object
|
|
5
|
-
* that includes
|
|
5
|
+
* that includes [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/) and allows for any other custom options when needed.
|
|
6
6
|
*
|
|
7
7
|
* #### Example
|
|
8
8
|
* Configuring Playwright Test using the standard `PlaywrightTestConfig` from `@playwright/test`:
|
|
@@ -32,9 +32,9 @@ import type { SerenityOptions } from './SerenityOptions';
|
|
|
32
32
|
* ```
|
|
33
33
|
*
|
|
34
34
|
* #### Learn more
|
|
35
|
-
* -
|
|
36
|
-
* -
|
|
37
|
-
* -
|
|
35
|
+
* - [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/)
|
|
36
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
37
|
+
* - [`SerenityReporterForPlaywrightTestConfig`](https://serenity-js.org/api/playwright-test/interface/SerenityReporterForPlaywrightTestConfig/)
|
|
38
38
|
* - [Playwright Test configuration](https://playwright.dev/docs/test-configuration)
|
|
39
39
|
*/
|
|
40
40
|
export type PlaywrightTestConfig<TestArgs = object, WorkerArgs = object> = BasePlaywrightTestConfig<SerenityOptions & TestArgs, WorkerArgs>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Actor, Cast, Serenity } from '@serenity-js/core';
|
|
2
2
|
/**
|
|
3
3
|
* Serenity/JS-specific [Playwright Test fixtures](https://playwright.dev/docs/test-fixtures)
|
|
4
|
-
* injected into your
|
|
4
|
+
* injected into your [test scenarios](https://serenity-js.org/api/playwright-test/function/it/).
|
|
5
5
|
*
|
|
6
6
|
* ## Example test scenario
|
|
7
7
|
*
|
|
@@ -37,8 +37,8 @@ import type { Actor, Cast, Serenity } from '@serenity-js/core';
|
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
39
|
* ## Learn more
|
|
40
|
-
* - Declaring a Serenity/JS
|
|
41
|
-
* -
|
|
40
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
41
|
+
* - [Grouping test scenarios](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
42
42
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
43
43
|
*/
|
|
44
44
|
export interface SerenityFixtures {
|
|
@@ -55,8 +55,8 @@ export interface SerenityFixtures {
|
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* A cast of Serenity/JS actors to be used instead of the default cast
|
|
58
|
-
* when instantiating
|
|
59
|
-
* and invoking
|
|
58
|
+
* when instantiating [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
59
|
+
* and invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled).
|
|
60
60
|
*
|
|
61
61
|
* #### Overriding the default cast of Serenity/JS actors
|
|
62
62
|
*
|
|
@@ -102,28 +102,28 @@ export interface SerenityFixtures {
|
|
|
102
102
|
*/
|
|
103
103
|
actors: Cast;
|
|
104
104
|
/**
|
|
105
|
-
* Uses the provided
|
|
106
|
-
* and inject it into a
|
|
105
|
+
* Uses the provided [cast](https://serenity-js.org/api/core/class/Cast/) of [`actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors) to instantiate an [`Actor`](https://serenity-js.org/api/core/class/Actor/) called `name`
|
|
106
|
+
* and inject it into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
107
107
|
*
|
|
108
108
|
* Retrieves an existing actor if one has already been instantiated.
|
|
109
109
|
*
|
|
110
110
|
* #### Learn more
|
|
111
|
-
* - Declaring a Serenity/JS
|
|
112
|
-
* -
|
|
113
|
-
* -
|
|
111
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
112
|
+
* - [`SerenityOptions.actors`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#actors)
|
|
113
|
+
* - [`SerenityFixtures.actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors)
|
|
114
114
|
*
|
|
115
115
|
* @param name
|
|
116
116
|
*/
|
|
117
117
|
actorCalled: (name: string) => Actor;
|
|
118
118
|
/**
|
|
119
|
-
* Default
|
|
119
|
+
* Default [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor) injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
120
120
|
*
|
|
121
|
-
* Using `actor` fixture is equivalent to invoking
|
|
121
|
+
* Using `actor` fixture is equivalent to invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled) with [`defaultActorName`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#defaultActorName).
|
|
122
122
|
*
|
|
123
123
|
* #### Learn more
|
|
124
|
-
* -
|
|
125
|
-
* -
|
|
126
|
-
* - Declaring a Serenity/JS
|
|
124
|
+
* - [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled)
|
|
125
|
+
* - [`SerenityOptions.defaultActorName`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#defaultActorName)
|
|
126
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
127
127
|
*/
|
|
128
128
|
actor: Actor;
|
|
129
129
|
}
|
|
@@ -73,22 +73,24 @@ import type { PlaywrightOptions } from '@serenity-js/playwright';
|
|
|
73
73
|
* ```
|
|
74
74
|
*
|
|
75
75
|
* ## Learn more
|
|
76
|
-
* -
|
|
77
|
-
* -
|
|
78
|
-
* -
|
|
76
|
+
* - [`PlaywrightTestConfig`](https://serenity-js.org/api/playwright-test/#PlaywrightTestConfig)
|
|
77
|
+
* - [`Cast`](https://serenity-js.org/api/core/class/Cast/)
|
|
78
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
79
79
|
*/
|
|
80
80
|
export interface SerenityOptions {
|
|
81
81
|
/**
|
|
82
|
-
* Configures the
|
|
83
|
-
* or invoking
|
|
82
|
+
* Configures the [`Cast`](https://serenity-js.org/api/core/class/Cast/) of [`SerenityConfig.actors|actors`](https://serenity-js.org/api/core/class/SerenityConfig/#actors) to be used when injecting an [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
83
|
+
* or invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled) in a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
84
84
|
*
|
|
85
85
|
* :::info Did you know?
|
|
86
|
-
* When you use `@serenity-js/playwright-test`
|
|
87
|
-
* Each one of the default actors receives
|
|
86
|
+
* When you use `@serenity-js/playwright-test` [test APIs](https://serenity-js.org/api/playwright-test/function/it/), Serenity/JS already provides a default cast of actors for you.
|
|
87
|
+
* Each one of the default actors receives [abilities](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/) and [`TakeNotes.usingAnEmptyNotepad`](https://serenity-js.org/api/core/class/TakeNotes/#usingAnEmptyNotepad).
|
|
88
88
|
*
|
|
89
89
|
* The default abilities should be sufficient in most web testing scenarios. However, you might want to override this default configuration
|
|
90
|
-
* when you need your actors to
|
|
91
|
-
*
|
|
90
|
+
* when you need your actors to [interact with REST APIs](https://serenity-js.org/api/rest/class/CallAnApi/),
|
|
91
|
+
* [manage local servers](https://serenity-js.org/api/local-server/class/ManageALocalServer/),
|
|
92
|
+
* start with a notepad that has some [initial state](https://serenity-js.org/api/core/class/TakeNotes/#using),
|
|
93
|
+
* or receive [custom abilities](https://serenity-js.org/api/core/class/Ability/).
|
|
92
94
|
* :::
|
|
93
95
|
*
|
|
94
96
|
* #### Using a custom crew of Serenity/JS actors
|
|
@@ -136,29 +138,29 @@ export interface SerenityOptions {
|
|
|
136
138
|
* ```
|
|
137
139
|
*
|
|
138
140
|
* #### Learn more
|
|
139
|
-
* - Declaring a Serenity/JS
|
|
140
|
-
* -
|
|
141
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
142
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
141
143
|
*/
|
|
142
144
|
actors: TestFixture<Cast, PlaywrightTestOptions & PlaywrightWorkerArgs>;
|
|
143
145
|
/**
|
|
144
|
-
* Configures the name given to the default Serenity/JS
|
|
145
|
-
* injected into a
|
|
146
|
+
* Configures the name given to the default Serenity/JS [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
147
|
+
* injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
146
148
|
*
|
|
147
149
|
* #### Learn more
|
|
148
|
-
* - Declaring a Serenity/JS
|
|
149
|
-
* -
|
|
150
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
151
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
150
152
|
*/
|
|
151
153
|
defaultActorName: string;
|
|
152
154
|
/**
|
|
153
|
-
* Configures the
|
|
155
|
+
* Configures the [`SerenityConfig.crew|stage crew members`](https://serenity-js.org/api/core/class/SerenityConfig/#crew|stage crew members)
|
|
154
156
|
* to be instantiated in Playwright Test worker processes.
|
|
155
157
|
*
|
|
156
158
|
* :::info Did you know?
|
|
157
|
-
* By default, Serenity/JS registers a
|
|
159
|
+
* By default, Serenity/JS registers a [`Photographer`](https://serenity-js.org/api/web/class/Photographer/).whoWill([`TakePhotosOfFailures`](https://serenity-js.org/api/web/class/TakePhotosOfFailures/)),
|
|
158
160
|
* so that any test failures are automatically accompanied by a screenshot.
|
|
159
161
|
*
|
|
160
162
|
* If you prefer a different behaviour, you can configure the `crew` with an empty array to disable taking screenshots altogether (`crew: []`),
|
|
161
|
-
* or with a
|
|
163
|
+
* or with a [`Photographer`](https://serenity-js.org/api/web/class/Photographer/) who uses a different [`PhotoTakingStrategy`](https://serenity-js.org/api/web/class/PhotoTakingStrategy/), like to [`TakePhotosOfInteractions`](https://serenity-js.org/api/web/class/TakePhotosOfInteractions/).
|
|
162
164
|
* :::
|
|
163
165
|
*
|
|
164
166
|
* #### Example
|
|
@@ -178,37 +180,38 @@ export interface SerenityOptions {
|
|
|
178
180
|
* ```
|
|
179
181
|
*
|
|
180
182
|
* #### Learn more
|
|
181
|
-
* -
|
|
183
|
+
* - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
|
|
182
184
|
*/
|
|
183
185
|
crew: Array<ClassDescription | StageCrewMember | StageCrewMemberBuilder>;
|
|
184
186
|
/**
|
|
185
|
-
* Sets the
|
|
187
|
+
* Sets the [`SerenityConfig.cueTimeout|cueTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#cueTimeout) to a given [duration](https://serenity-js.org/api/core/class/Duration/) or a numeric value in milliseconds.
|
|
186
188
|
* Defaults to **5 seconds**.
|
|
187
189
|
*
|
|
188
190
|
* #### Learn more
|
|
189
|
-
* -
|
|
190
|
-
* -
|
|
191
|
-
* -
|
|
191
|
+
* - [`SerenityConfig.cueTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#cueTimeout)
|
|
192
|
+
* - [`Discardable`](https://serenity-js.org/api/core/interface/Discardable/)
|
|
193
|
+
* - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
|
|
192
194
|
*/
|
|
193
195
|
cueTimeout: number | Duration;
|
|
194
196
|
/**
|
|
195
|
-
* The maximum default amount of time allowed for interactions such as
|
|
197
|
+
* The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
|
|
196
198
|
* to complete.
|
|
197
199
|
*
|
|
198
200
|
* Defaults to **5 seconds**, can be overridden per interaction.
|
|
199
201
|
*
|
|
200
202
|
* #### Learn more
|
|
201
|
-
* -
|
|
203
|
+
* - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
|
|
202
204
|
*/
|
|
203
205
|
interactionTimeout?: Duration;
|
|
204
206
|
/**
|
|
205
207
|
* Playwright [BrowserContextOptions](https://playwright.dev/docs/api/class-testoptions#test-options-context-options),
|
|
206
|
-
* augmented with several convenience properties to be used with the
|
|
208
|
+
* augmented with several convenience properties to be used with the [ability](https://serenity-js.org/api/core/class/Ability/)
|
|
209
|
+
* to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/).
|
|
207
210
|
*
|
|
208
211
|
* Additional convenience properties include:
|
|
209
|
-
* -
|
|
210
|
-
* -
|
|
211
|
-
* -
|
|
212
|
+
* - [`PlaywrightOptions.defaultNavigationTimeout`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultNavigationTimeout)
|
|
213
|
+
* - [`PlaywrightOptions.defaultNavigationWaitUntil`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultNavigationWaitUntil)
|
|
214
|
+
* - [`PlaywrightOptions.defaultTimeout`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultTimeout)
|
|
212
215
|
*
|
|
213
216
|
* #### Using `contextOptions` with the default cast of Serenity/JS actors
|
|
214
217
|
*
|
|
@@ -259,7 +262,7 @@ export interface SerenityOptions {
|
|
|
259
262
|
* ```
|
|
260
263
|
*
|
|
261
264
|
* #### Learn more
|
|
262
|
-
* -
|
|
265
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
263
266
|
* - [Playwright Browser Context options](https://playwright.dev/docs/api/class-testoptions#test-options-context-options)
|
|
264
267
|
* - [Playwright Test fixtures](https://playwright.dev/docs/test-fixtures)
|
|
265
268
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerenityOptions.d.ts","sourceRoot":"","sources":["../../src/api/SerenityOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,MAAM,WAAW,eAAe;IAE5B
|
|
1
|
+
{"version":3,"file":"SerenityOptions.d.ts","sourceRoot":"","sources":["../../src/api/SerenityOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,MAAM,WAAW,eAAe;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACH,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,CAAC,CAAA;IAEvE;;;;;;;OAOG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,IAAI,EAAE,KAAK,CAAC,gBAAgB,GAAG,eAAe,GAAG,sBAAsB,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE9B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACH,cAAc,EAAE,iBAAiB,CAAC;CACrC"}
|
package/lib/api/test-api.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Fixtures, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo, TestType } from '@playwright/test';
|
|
1
|
+
import type { Expect, Fixtures, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo, TestType } from '@playwright/test';
|
|
2
2
|
import type { DescribeFunction } from './DescribeFunction';
|
|
3
3
|
import type { SerenityFixtures } from './SerenityFixtures';
|
|
4
4
|
import type { SerenityOptions } from './SerenityOptions';
|
|
5
5
|
export declare const fixtures: Fixtures<Omit<SerenityOptions, 'actors'> & SerenityFixtures, object, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
|
|
6
6
|
/**
|
|
7
|
-
* Serenity/JS BDD-style test API created by
|
|
7
|
+
* Serenity/JS BDD-style test API created by [`useBase`](https://serenity-js.org/api/playwright-test/function/useBase/).
|
|
8
8
|
*/
|
|
9
9
|
export type TestApi<TestArgs extends Record<string, any>, WorkerArgs extends Record<string, any>> = Pick<TestType<TestArgs, WorkerArgs>, 'beforeAll' | 'beforeEach' | 'afterEach' | 'afterAll' | 'expect'> & {
|
|
10
10
|
/**
|
|
@@ -29,7 +29,7 @@ export type TestApi<TestArgs extends Record<string, any>, WorkerArgs extends Rec
|
|
|
29
29
|
* })
|
|
30
30
|
* ```
|
|
31
31
|
*
|
|
32
|
-
* Shorthand for [`useBase`](/api/playwright-test/function/useBase/)
|
|
32
|
+
* Shorthand for [`useBase`](https://serenity-js.org/api/playwright-test/function/useBase/)
|
|
33
33
|
*/
|
|
34
34
|
useFixtures: <T extends Record<string, any>, W extends Record<string, any> = object>(customFixtures: Fixtures<T, W, TestArgs, WorkerArgs>) => TestApi<TestArgs & T, WorkerArgs & W>;
|
|
35
35
|
it: TestType<TestArgs, WorkerArgs>;
|
|
@@ -88,14 +88,14 @@ export type TestApi<TestArgs extends Record<string, any>, WorkerArgs extends Rec
|
|
|
88
88
|
* ```
|
|
89
89
|
*
|
|
90
90
|
* ## Learn more
|
|
91
|
-
* - [Grouping test scenarios](/api/playwright-test/function/describe/)
|
|
92
|
-
* -
|
|
91
|
+
* - [Grouping test scenarios](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
92
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
93
93
|
* - [Playwright Test `test` function](https://playwright.dev/docs/api/class-test#test-call)
|
|
94
94
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
95
95
|
*/
|
|
96
96
|
export declare const it: TestType<PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures, PlaywrightWorkerArgs & PlaywrightWorkerOptions & object>;
|
|
97
97
|
/**
|
|
98
|
-
* Declares a single test scenario. Alias for [`it`](/api/playwright-test/function/it/).
|
|
98
|
+
* Declares a single test scenario. Alias for [`it`](https://serenity-js.org/api/playwright-test/function/it/).
|
|
99
99
|
*/
|
|
100
100
|
export declare const test: TestType<PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures, PlaywrightWorkerArgs & PlaywrightWorkerOptions & object>;
|
|
101
101
|
/**
|
|
@@ -142,7 +142,7 @@ export declare const test: TestType<PlaywrightTestArgs & PlaywrightTestOptions &
|
|
|
142
142
|
* ```
|
|
143
143
|
*
|
|
144
144
|
* ## Learn more
|
|
145
|
-
* - Declaring a Serenity/JS [test scenario](/api/playwright-test/function/it/)
|
|
145
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
146
146
|
* - [Playwright Test `describe` function](https://playwright.dev/docs/api/class-test#test-describe-1)
|
|
147
147
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
148
148
|
*/
|
|
@@ -163,7 +163,7 @@ export declare const afterAll: {
|
|
|
163
163
|
(inner: (args: PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures & PlaywrightWorkerArgs & PlaywrightWorkerOptions & object, testInfo: TestInfo) => any): void;
|
|
164
164
|
(title: string, inner: (args: PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures & PlaywrightWorkerArgs & PlaywrightWorkerOptions & object, testInfo: TestInfo) => any): void;
|
|
165
165
|
};
|
|
166
|
-
export declare const expect:
|
|
166
|
+
export declare const expect: Expect;
|
|
167
167
|
export declare const useFixtures: <T extends Record<string, any>, W extends Record<string, any> = object>(customFixtures: Fixtures<T, W, PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures, PlaywrightWorkerArgs & PlaywrightWorkerOptions & object>) => TestApi<PlaywrightTestArgs & PlaywrightTestOptions & Omit<SerenityOptions, "actors"> & SerenityFixtures & T, PlaywrightWorkerArgs & PlaywrightWorkerOptions & object & W>;
|
|
168
168
|
/**
|
|
169
169
|
* Creates a Serenity/JS BDD-style test API around the given Playwright [base test](https://playwright.dev/docs/test-fixtures).
|
|
@@ -172,7 +172,7 @@ export declare const useFixtures: <T extends Record<string, any>, W extends Reco
|
|
|
172
172
|
*
|
|
173
173
|
* When your test scenario doesn't require [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
174
174
|
* and you're happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
175
|
-
* you can import test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
175
|
+
* you can import test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
176
176
|
*
|
|
177
177
|
* ```typescript
|
|
178
178
|
* import { describe, it, test } from '@serenity-js/playwright-test'
|
|
@@ -206,8 +206,8 @@ export declare const useFixtures: <T extends Record<string, any>, W extends Reco
|
|
|
206
206
|
*
|
|
207
207
|
* When your test scenario requires [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
208
208
|
* but you're still happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
209
|
-
* you can create fixture-aware test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/)
|
|
210
|
-
* by calling [`useFixtures`](/api/playwright-test/function/useFixtures/).
|
|
209
|
+
* you can create fixture-aware test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
210
|
+
* by calling [`useFixtures`](https://serenity-js.org/api/playwright-test/function/useFixtures/).
|
|
211
211
|
*
|
|
212
212
|
* For example, you can create a test scenario using a static `message` fixture as follows:
|
|
213
213
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACX,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,EAAE,oBAAoB,GAAG,uBAAuB,CAiIrL,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC,GACtG;IACI;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACpL,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,CAAA;AAoBL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,EAAE,oKAAS,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,IAAI,oKAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ,kBAAe,CAAC;AAErC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,UAAU;;;CAAiB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,QAAQ;;;CAAe,CAAC;AAErC,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACX,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,EAAE,oBAAoB,GAAG,uBAAuB,CAiIrL,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC,GACtG;IACI;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACpL,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,CAAA;AAoBL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,EAAE,oKAAS,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,IAAI,oKAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ,kBAAe,CAAC;AAErC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,UAAU;;;CAAiB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,QAAQ;;;CAAe,CAAC;AAErC,eAAO,MAAM,MAAM,EAAE,MAAmB,CAAC;AAEzC,eAAO,MAAM,WAAW,gbAAkB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EACzG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,gBAAgB,GAAG,QAAQ,EAAE,UAAU,CAAC,CAGpF"}
|
package/lib/api/test-api.js
CHANGED
|
@@ -194,14 +194,14 @@ const api = createTestApi(test_1.test).useFixtures(exports.fixtures);
|
|
|
194
194
|
* ```
|
|
195
195
|
*
|
|
196
196
|
* ## Learn more
|
|
197
|
-
* - [Grouping test scenarios](/api/playwright-test/function/describe/)
|
|
198
|
-
* -
|
|
197
|
+
* - [Grouping test scenarios](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
198
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
199
199
|
* - [Playwright Test `test` function](https://playwright.dev/docs/api/class-test#test-call)
|
|
200
200
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
201
201
|
*/
|
|
202
202
|
exports.it = api.it;
|
|
203
203
|
/**
|
|
204
|
-
* Declares a single test scenario. Alias for [`it`](/api/playwright-test/function/it/).
|
|
204
|
+
* Declares a single test scenario. Alias for [`it`](https://serenity-js.org/api/playwright-test/function/it/).
|
|
205
205
|
*/
|
|
206
206
|
exports.test = api.test;
|
|
207
207
|
/**
|
|
@@ -248,7 +248,7 @@ exports.test = api.test;
|
|
|
248
248
|
* ```
|
|
249
249
|
*
|
|
250
250
|
* ## Learn more
|
|
251
|
-
* - Declaring a Serenity/JS [test scenario](/api/playwright-test/function/it/)
|
|
251
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
252
252
|
* - [Playwright Test `describe` function](https://playwright.dev/docs/api/class-test#test-describe-1)
|
|
253
253
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
254
254
|
*/
|
|
@@ -266,7 +266,7 @@ exports.useFixtures = api.useFixtures;
|
|
|
266
266
|
*
|
|
267
267
|
* When your test scenario doesn't require [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
268
268
|
* and you're happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
269
|
-
* you can import test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
269
|
+
* you can import test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
270
270
|
*
|
|
271
271
|
* ```typescript
|
|
272
272
|
* import { describe, it, test } from '@serenity-js/playwright-test'
|
|
@@ -300,8 +300,8 @@ exports.useFixtures = api.useFixtures;
|
|
|
300
300
|
*
|
|
301
301
|
* When your test scenario requires [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
302
302
|
* but you're still happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
303
|
-
* you can create fixture-aware test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/)
|
|
304
|
-
* by calling [`useFixtures`](/api/playwright-test/function/useFixtures/).
|
|
303
|
+
* you can create fixture-aware test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
304
|
+
* by calling [`useFixtures`](https://serenity-js.org/api/playwright-test/function/useFixtures/).
|
|
305
305
|
*
|
|
306
306
|
* For example, you can create a test scenario using a static `message` fixture as follows:
|
|
307
307
|
*
|
package/lib/api/test-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,33 +6,33 @@ import { RequirementsHierarchy } from '@serenity-js/core/lib/io';
|
|
|
6
6
|
/**
|
|
7
7
|
* Configuration object accepted by `@serenity-js/playwright-test` reporter.
|
|
8
8
|
*
|
|
9
|
-
* See
|
|
9
|
+
* See [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/) for usage examples.
|
|
10
10
|
*/
|
|
11
11
|
export interface SerenityReporterForPlaywrightTestConfig {
|
|
12
12
|
/**
|
|
13
|
-
* A list of
|
|
14
|
-
* to be instantiated in Playwright Test reporter process and notified of
|
|
15
|
-
* Note that the `crew` can also be configured using
|
|
13
|
+
* A list of [stage crew member builders](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/) or [stage crew members](https://serenity-js.org/api/core/interface/StageCrewMember/)
|
|
14
|
+
* to be instantiated in Playwright Test reporter process and notified of [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/) that occur during the scenario execution.
|
|
15
|
+
* Note that the `crew` can also be configured using [class descriptions](https://serenity-js.org/api/core/#ClassDescription).
|
|
16
16
|
*
|
|
17
17
|
* #### Learn more
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
18
|
+
* - [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/)
|
|
19
|
+
* - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
|
|
20
20
|
*/
|
|
21
21
|
crew?: Array<StageCrewMember | StageCrewMemberBuilder | ClassDescription>;
|
|
22
22
|
/**
|
|
23
|
-
* An output stream to be injected into
|
|
23
|
+
* An output stream to be injected into [stage crew member builders](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/)
|
|
24
24
|
*
|
|
25
25
|
* Defaults to [`process.stdout`](https://nodejs.org/api/process.html#process_process_stdout).
|
|
26
26
|
*
|
|
27
27
|
* #### Learn more
|
|
28
|
-
* -
|
|
28
|
+
* - [`SerenityConfig.outputStream`](https://serenity-js.org/api/core/class/SerenityConfig/#outputStream)
|
|
29
29
|
*/
|
|
30
30
|
outputStream?: OutputStream;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Serenity/JS reporter that receives notifications from Playwright Test and emits them as
|
|
34
|
-
* Serenity/JS
|
|
35
|
-
* Serenity/JS
|
|
34
|
+
* Serenity/JS [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/) which can be used by
|
|
35
|
+
* Serenity/JS [stage crew members](https://serenity-js.org/api/core/interface/StageCrewMember/).
|
|
36
36
|
*/
|
|
37
37
|
export declare class SerenityReporterForPlaywrightTest implements Reporter {
|
|
38
38
|
private readonly serenity;
|
|
@@ -43,7 +43,7 @@ export declare class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
43
43
|
/**
|
|
44
44
|
* @param config
|
|
45
45
|
* @param serenity
|
|
46
|
-
* Instance of
|
|
46
|
+
* Instance of [`Serenity`](https://serenity-js.org/api/core/class/Serenity/), specific to the Node process running this Serenity reporter.
|
|
47
47
|
* Note that Playwright runs test workers and reporters in separate processes.
|
|
48
48
|
* @param requirementsHierarchy
|
|
49
49
|
* Root directory of the requirements hierarchy, used to determine capabilities and themes.
|
|
@@ -32,8 +32,8 @@ const model_1 = require("@serenity-js/core/lib/model");
|
|
|
32
32
|
const PlaywrightAttachments_1 = require("./PlaywrightAttachments");
|
|
33
33
|
/**
|
|
34
34
|
* Serenity/JS reporter that receives notifications from Playwright Test and emits them as
|
|
35
|
-
* Serenity/JS
|
|
36
|
-
* Serenity/JS
|
|
35
|
+
* Serenity/JS [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/) which can be used by
|
|
36
|
+
* Serenity/JS [stage crew members](https://serenity-js.org/api/core/interface/StageCrewMember/).
|
|
37
37
|
*/
|
|
38
38
|
class SerenityReporterForPlaywrightTest {
|
|
39
39
|
serenity;
|
|
@@ -44,7 +44,7 @@ class SerenityReporterForPlaywrightTest {
|
|
|
44
44
|
/**
|
|
45
45
|
* @param config
|
|
46
46
|
* @param serenity
|
|
47
|
-
* Instance of
|
|
47
|
+
* Instance of [`Serenity`](https://serenity-js.org/api/core/class/Serenity/), specific to the Node process running this Serenity reporter.
|
|
48
48
|
* Note that Playwright runs test workers and reporters in separate processes.
|
|
49
49
|
* @param requirementsHierarchy
|
|
50
50
|
* Root directory of the requirements hierarchy, used to determine capabilities and themes.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serenity-js/playwright-test",
|
|
3
|
-
"version": "3.25.
|
|
4
|
-
"description": "Serenity/JS
|
|
3
|
+
"version": "3.25.2",
|
|
4
|
+
"description": "Serenity/JS test runner adapter for Playwright Test, combining Playwright's developer experience with the advanced reporting and automation capabilities of Serenity/JS",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jan Molak",
|
|
7
7
|
"email": "jan.molak@smartcodeltd.co.uk",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"node": "^16.13 || ^18.12 || ^20"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@playwright/test": "1.45.
|
|
49
|
-
"@serenity-js/core": "3.25.
|
|
50
|
-
"@serenity-js/playwright": "3.25.
|
|
51
|
-
"@serenity-js/rest": "3.25.
|
|
52
|
-
"@serenity-js/web": "3.25.
|
|
48
|
+
"@playwright/test": "1.45.2",
|
|
49
|
+
"@serenity-js/core": "3.25.2",
|
|
50
|
+
"@serenity-js/playwright": "3.25.2",
|
|
51
|
+
"@serenity-js/rest": "3.25.2",
|
|
52
|
+
"@serenity-js/web": "3.25.2",
|
|
53
53
|
"deepmerge": "4.3.1",
|
|
54
54
|
"tiny-types": "1.22.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": "98b68da1e04a8fcbb255dca509b7bc9c322a3b6b"
|
|
67
67
|
}
|
|
@@ -4,7 +4,7 @@ import type { SerenityOptions } from './SerenityOptions';
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Convenience alias for [PlaywrightTestConfig](https://playwright.dev/docs/test-configuration) object
|
|
7
|
-
* that includes
|
|
7
|
+
* that includes [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/) and allows for any other custom options when needed.
|
|
8
8
|
*
|
|
9
9
|
* #### Example
|
|
10
10
|
* Configuring Playwright Test using the standard `PlaywrightTestConfig` from `@playwright/test`:
|
|
@@ -34,9 +34,9 @@ import type { SerenityOptions } from './SerenityOptions';
|
|
|
34
34
|
* ```
|
|
35
35
|
*
|
|
36
36
|
* #### Learn more
|
|
37
|
-
* -
|
|
38
|
-
* -
|
|
39
|
-
* -
|
|
37
|
+
* - [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/)
|
|
38
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
39
|
+
* - [`SerenityReporterForPlaywrightTestConfig`](https://serenity-js.org/api/playwright-test/interface/SerenityReporterForPlaywrightTestConfig/)
|
|
40
40
|
* - [Playwright Test configuration](https://playwright.dev/docs/test-configuration)
|
|
41
41
|
*/
|
|
42
42
|
export type PlaywrightTestConfig<TestArgs = object, WorkerArgs = object> = BasePlaywrightTestConfig<SerenityOptions & TestArgs, WorkerArgs>;
|
|
@@ -2,7 +2,7 @@ import type { Actor, Cast, Serenity } from '@serenity-js/core';
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Serenity/JS-specific [Playwright Test fixtures](https://playwright.dev/docs/test-fixtures)
|
|
5
|
-
* injected into your
|
|
5
|
+
* injected into your [test scenarios](https://serenity-js.org/api/playwright-test/function/it/).
|
|
6
6
|
*
|
|
7
7
|
* ## Example test scenario
|
|
8
8
|
*
|
|
@@ -38,8 +38,8 @@ import type { Actor, Cast, Serenity } from '@serenity-js/core';
|
|
|
38
38
|
* ```
|
|
39
39
|
*
|
|
40
40
|
* ## Learn more
|
|
41
|
-
* - Declaring a Serenity/JS
|
|
42
|
-
* -
|
|
41
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
42
|
+
* - [Grouping test scenarios](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
43
43
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
44
44
|
*/
|
|
45
45
|
export interface SerenityFixtures {
|
|
@@ -56,8 +56,8 @@ export interface SerenityFixtures {
|
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* A cast of Serenity/JS actors to be used instead of the default cast
|
|
59
|
-
* when instantiating
|
|
60
|
-
* and invoking
|
|
59
|
+
* when instantiating [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
60
|
+
* and invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled).
|
|
61
61
|
*
|
|
62
62
|
* #### Overriding the default cast of Serenity/JS actors
|
|
63
63
|
*
|
|
@@ -104,29 +104,29 @@ export interface SerenityFixtures {
|
|
|
104
104
|
actors: Cast;
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
|
-
* Uses the provided
|
|
108
|
-
* and inject it into a
|
|
107
|
+
* Uses the provided [cast](https://serenity-js.org/api/core/class/Cast/) of [`actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors) to instantiate an [`Actor`](https://serenity-js.org/api/core/class/Actor/) called `name`
|
|
108
|
+
* and inject it into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
109
109
|
*
|
|
110
110
|
* Retrieves an existing actor if one has already been instantiated.
|
|
111
111
|
*
|
|
112
112
|
* #### Learn more
|
|
113
|
-
* - Declaring a Serenity/JS
|
|
114
|
-
* -
|
|
115
|
-
* -
|
|
113
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
114
|
+
* - [`SerenityOptions.actors`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#actors)
|
|
115
|
+
* - [`SerenityFixtures.actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors)
|
|
116
116
|
*
|
|
117
117
|
* @param name
|
|
118
118
|
*/
|
|
119
119
|
actorCalled: (name: string) => Actor;
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* Default
|
|
122
|
+
* Default [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor) injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
123
123
|
*
|
|
124
|
-
* Using `actor` fixture is equivalent to invoking
|
|
124
|
+
* Using `actor` fixture is equivalent to invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled) with [`defaultActorName`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#defaultActorName).
|
|
125
125
|
*
|
|
126
126
|
* #### Learn more
|
|
127
|
-
* -
|
|
128
|
-
* -
|
|
129
|
-
* - Declaring a Serenity/JS
|
|
127
|
+
* - [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled)
|
|
128
|
+
* - [`SerenityOptions.defaultActorName`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/#defaultActorName)
|
|
129
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
130
130
|
*/
|
|
131
131
|
actor: Actor;
|
|
132
132
|
}
|
|
@@ -74,23 +74,25 @@ import type { PlaywrightOptions } from '@serenity-js/playwright';
|
|
|
74
74
|
* ```
|
|
75
75
|
*
|
|
76
76
|
* ## Learn more
|
|
77
|
-
* -
|
|
78
|
-
* -
|
|
79
|
-
* -
|
|
77
|
+
* - [`PlaywrightTestConfig`](https://serenity-js.org/api/playwright-test/#PlaywrightTestConfig)
|
|
78
|
+
* - [`Cast`](https://serenity-js.org/api/core/class/Cast/)
|
|
79
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
80
80
|
*/
|
|
81
81
|
export interface SerenityOptions {
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
|
-
* Configures the
|
|
85
|
-
* or invoking
|
|
84
|
+
* Configures the [`Cast`](https://serenity-js.org/api/core/class/Cast/) of [`SerenityConfig.actors|actors`](https://serenity-js.org/api/core/class/SerenityConfig/#actors) to be used when injecting an [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
85
|
+
* or invoking [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actorCalled) in a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
86
86
|
*
|
|
87
87
|
* :::info Did you know?
|
|
88
|
-
* When you use `@serenity-js/playwright-test`
|
|
89
|
-
* Each one of the default actors receives
|
|
88
|
+
* When you use `@serenity-js/playwright-test` [test APIs](https://serenity-js.org/api/playwright-test/function/it/), Serenity/JS already provides a default cast of actors for you.
|
|
89
|
+
* Each one of the default actors receives [abilities](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/) and [`TakeNotes.usingAnEmptyNotepad`](https://serenity-js.org/api/core/class/TakeNotes/#usingAnEmptyNotepad).
|
|
90
90
|
*
|
|
91
91
|
* The default abilities should be sufficient in most web testing scenarios. However, you might want to override this default configuration
|
|
92
|
-
* when you need your actors to
|
|
93
|
-
*
|
|
92
|
+
* when you need your actors to [interact with REST APIs](https://serenity-js.org/api/rest/class/CallAnApi/),
|
|
93
|
+
* [manage local servers](https://serenity-js.org/api/local-server/class/ManageALocalServer/),
|
|
94
|
+
* start with a notepad that has some [initial state](https://serenity-js.org/api/core/class/TakeNotes/#using),
|
|
95
|
+
* or receive [custom abilities](https://serenity-js.org/api/core/class/Ability/).
|
|
94
96
|
* :::
|
|
95
97
|
*
|
|
96
98
|
* #### Using a custom crew of Serenity/JS actors
|
|
@@ -138,31 +140,31 @@ export interface SerenityOptions {
|
|
|
138
140
|
* ```
|
|
139
141
|
*
|
|
140
142
|
* #### Learn more
|
|
141
|
-
* - Declaring a Serenity/JS
|
|
142
|
-
* -
|
|
143
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
144
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
143
145
|
*/
|
|
144
146
|
actors: TestFixture<Cast, PlaywrightTestOptions & PlaywrightWorkerArgs>
|
|
145
147
|
|
|
146
148
|
/**
|
|
147
|
-
* Configures the name given to the default Serenity/JS
|
|
148
|
-
* injected into a
|
|
149
|
+
* Configures the name given to the default Serenity/JS [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
|
|
150
|
+
* injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
|
|
149
151
|
*
|
|
150
152
|
* #### Learn more
|
|
151
|
-
* - Declaring a Serenity/JS
|
|
152
|
-
* -
|
|
153
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
154
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
153
155
|
*/
|
|
154
156
|
defaultActorName: string;
|
|
155
157
|
|
|
156
158
|
/**
|
|
157
|
-
* Configures the
|
|
159
|
+
* Configures the [`SerenityConfig.crew|stage crew members`](https://serenity-js.org/api/core/class/SerenityConfig/#crew|stage crew members)
|
|
158
160
|
* to be instantiated in Playwright Test worker processes.
|
|
159
161
|
*
|
|
160
162
|
* :::info Did you know?
|
|
161
|
-
* By default, Serenity/JS registers a
|
|
163
|
+
* By default, Serenity/JS registers a [`Photographer`](https://serenity-js.org/api/web/class/Photographer/).whoWill([`TakePhotosOfFailures`](https://serenity-js.org/api/web/class/TakePhotosOfFailures/)),
|
|
162
164
|
* so that any test failures are automatically accompanied by a screenshot.
|
|
163
165
|
*
|
|
164
166
|
* If you prefer a different behaviour, you can configure the `crew` with an empty array to disable taking screenshots altogether (`crew: []`),
|
|
165
|
-
* or with a
|
|
167
|
+
* or with a [`Photographer`](https://serenity-js.org/api/web/class/Photographer/) who uses a different [`PhotoTakingStrategy`](https://serenity-js.org/api/web/class/PhotoTakingStrategy/), like to [`TakePhotosOfInteractions`](https://serenity-js.org/api/web/class/TakePhotosOfInteractions/).
|
|
166
168
|
* :::
|
|
167
169
|
*
|
|
168
170
|
* #### Example
|
|
@@ -182,40 +184,41 @@ export interface SerenityOptions {
|
|
|
182
184
|
* ```
|
|
183
185
|
*
|
|
184
186
|
* #### Learn more
|
|
185
|
-
* -
|
|
187
|
+
* - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
|
|
186
188
|
*/
|
|
187
189
|
crew: Array<ClassDescription | StageCrewMember | StageCrewMemberBuilder>;
|
|
188
190
|
|
|
189
191
|
/**
|
|
190
|
-
* Sets the
|
|
192
|
+
* Sets the [`SerenityConfig.cueTimeout|cueTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#cueTimeout) to a given [duration](https://serenity-js.org/api/core/class/Duration/) or a numeric value in milliseconds.
|
|
191
193
|
* Defaults to **5 seconds**.
|
|
192
194
|
*
|
|
193
195
|
* #### Learn more
|
|
194
|
-
* -
|
|
195
|
-
* -
|
|
196
|
-
* -
|
|
196
|
+
* - [`SerenityConfig.cueTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#cueTimeout)
|
|
197
|
+
* - [`Discardable`](https://serenity-js.org/api/core/interface/Discardable/)
|
|
198
|
+
* - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
|
|
197
199
|
*/
|
|
198
200
|
cueTimeout: number | Duration;
|
|
199
201
|
|
|
200
202
|
/**
|
|
201
|
-
* The maximum default amount of time allowed for interactions such as
|
|
203
|
+
* The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
|
|
202
204
|
* to complete.
|
|
203
205
|
*
|
|
204
206
|
* Defaults to **5 seconds**, can be overridden per interaction.
|
|
205
207
|
*
|
|
206
208
|
* #### Learn more
|
|
207
|
-
* -
|
|
209
|
+
* - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
|
|
208
210
|
*/
|
|
209
211
|
interactionTimeout?: Duration;
|
|
210
212
|
|
|
211
213
|
/**
|
|
212
214
|
* Playwright [BrowserContextOptions](https://playwright.dev/docs/api/class-testoptions#test-options-context-options),
|
|
213
|
-
* augmented with several convenience properties to be used with the
|
|
215
|
+
* augmented with several convenience properties to be used with the [ability](https://serenity-js.org/api/core/class/Ability/)
|
|
216
|
+
* to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/).
|
|
214
217
|
*
|
|
215
218
|
* Additional convenience properties include:
|
|
216
|
-
* -
|
|
217
|
-
* -
|
|
218
|
-
* -
|
|
219
|
+
* - [`PlaywrightOptions.defaultNavigationTimeout`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultNavigationTimeout)
|
|
220
|
+
* - [`PlaywrightOptions.defaultNavigationWaitUntil`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultNavigationWaitUntil)
|
|
221
|
+
* - [`PlaywrightOptions.defaultTimeout`](https://serenity-js.org/api/playwright/interface/PlaywrightOptions/#defaultTimeout)
|
|
219
222
|
*
|
|
220
223
|
* #### Using `contextOptions` with the default cast of Serenity/JS actors
|
|
221
224
|
*
|
|
@@ -266,7 +269,7 @@ export interface SerenityOptions {
|
|
|
266
269
|
* ```
|
|
267
270
|
*
|
|
268
271
|
* #### Learn more
|
|
269
|
-
* -
|
|
272
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
270
273
|
* - [Playwright Browser Context options](https://playwright.dev/docs/api/class-testoptions#test-options-context-options)
|
|
271
274
|
* - [Playwright Test fixtures](https://playwright.dev/docs/test-fixtures)
|
|
272
275
|
*/
|
package/src/api/test-api.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
Expect,
|
|
2
3
|
Fixtures,
|
|
3
4
|
PlaywrightTestArgs,
|
|
4
5
|
PlaywrightTestOptions,
|
|
@@ -162,7 +163,7 @@ export const fixtures: Fixtures<Omit<SerenityOptions, 'actors'> & SerenityFixtur
|
|
|
162
163
|
};
|
|
163
164
|
|
|
164
165
|
/**
|
|
165
|
-
* Serenity/JS BDD-style test API created by
|
|
166
|
+
* Serenity/JS BDD-style test API created by [`useBase`](https://serenity-js.org/api/playwright-test/function/useBase/).
|
|
166
167
|
*/
|
|
167
168
|
export type TestApi<TestArgs extends Record<string, any>, WorkerArgs extends Record<string, any>> =
|
|
168
169
|
Pick<TestType<TestArgs, WorkerArgs>, 'beforeAll' | 'beforeEach' | 'afterEach' | 'afterAll' | 'expect'> &
|
|
@@ -189,7 +190,7 @@ export type TestApi<TestArgs extends Record<string, any>, WorkerArgs extends Rec
|
|
|
189
190
|
* })
|
|
190
191
|
* ```
|
|
191
192
|
*
|
|
192
|
-
* Shorthand for [`useBase`](/api/playwright-test/function/useBase/)
|
|
193
|
+
* Shorthand for [`useBase`](https://serenity-js.org/api/playwright-test/function/useBase/)
|
|
193
194
|
*/
|
|
194
195
|
useFixtures: <T extends Record<string, any>, W extends Record<string, any> = object>(customFixtures: Fixtures<T, W, TestArgs, WorkerArgs>) => TestApi<TestArgs & T, WorkerArgs & W>,
|
|
195
196
|
it: TestType<TestArgs, WorkerArgs>,
|
|
@@ -267,15 +268,15 @@ const api = createTestApi(playwrightBaseTest).useFixtures(fixtures);
|
|
|
267
268
|
* ```
|
|
268
269
|
*
|
|
269
270
|
* ## Learn more
|
|
270
|
-
* - [Grouping test scenarios](/api/playwright-test/function/describe/)
|
|
271
|
-
* -
|
|
271
|
+
* - [Grouping test scenarios](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
272
|
+
* - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
|
|
272
273
|
* - [Playwright Test `test` function](https://playwright.dev/docs/api/class-test#test-call)
|
|
273
274
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
274
275
|
*/
|
|
275
276
|
export const it = api.it;
|
|
276
277
|
|
|
277
278
|
/**
|
|
278
|
-
* Declares a single test scenario. Alias for [`it`](/api/playwright-test/function/it/).
|
|
279
|
+
* Declares a single test scenario. Alias for [`it`](https://serenity-js.org/api/playwright-test/function/it/).
|
|
279
280
|
*/
|
|
280
281
|
export const test = api.test;
|
|
281
282
|
|
|
@@ -323,7 +324,7 @@ export const test = api.test;
|
|
|
323
324
|
* ```
|
|
324
325
|
*
|
|
325
326
|
* ## Learn more
|
|
326
|
-
* - Declaring a Serenity/JS [test scenario](/api/playwright-test/function/it/)
|
|
327
|
+
* - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
|
|
327
328
|
* - [Playwright Test `describe` function](https://playwright.dev/docs/api/class-test#test-describe-1)
|
|
328
329
|
* - [Serenity/JS + Playwright Test project template](https://github.com/serenity-js/serenity-js-playwright-test-template/)
|
|
329
330
|
*/
|
|
@@ -337,7 +338,7 @@ export const afterEach = api.afterEach;
|
|
|
337
338
|
|
|
338
339
|
export const afterAll = api.afterAll;
|
|
339
340
|
|
|
340
|
-
export const expect = api.expect;
|
|
341
|
+
export const expect: Expect = api.expect;
|
|
341
342
|
|
|
342
343
|
export const useFixtures = api.useFixtures;
|
|
343
344
|
|
|
@@ -348,7 +349,7 @@ export const useFixtures = api.useFixtures;
|
|
|
348
349
|
*
|
|
349
350
|
* When your test scenario doesn't require [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
350
351
|
* and you're happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
351
|
-
* you can import test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
352
|
+
* you can import test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/) directly from `@serenity-js/playwright-test`.
|
|
352
353
|
*
|
|
353
354
|
* ```typescript
|
|
354
355
|
* import { describe, it, test } from '@serenity-js/playwright-test'
|
|
@@ -382,8 +383,8 @@ export const useFixtures = api.useFixtures;
|
|
|
382
383
|
*
|
|
383
384
|
* When your test scenario requires [custom test fixtures](https://playwright.dev/docs/test-fixtures),
|
|
384
385
|
* but you're still happy with the default [base test](https://playwright.dev/docs/api/class-test#test-call) offered by Playwright,
|
|
385
|
-
* you can create fixture-aware test API functions such as [`describe`](/api/playwright-test/function/describe/) and [`it`](/api/playwright-test/function/describe/)
|
|
386
|
-
* by calling [`useFixtures`](/api/playwright-test/function/useFixtures/).
|
|
386
|
+
* you can create fixture-aware test API functions such as [`describe`](https://serenity-js.org/api/playwright-test/function/describe/) and [`it`](https://serenity-js.org/api/playwright-test/function/describe/)
|
|
387
|
+
* by calling [`useFixtures`](https://serenity-js.org/api/playwright-test/function/useFixtures/).
|
|
387
388
|
*
|
|
388
389
|
* For example, you can create a test scenario using a static `message` fixture as follows:
|
|
389
390
|
*
|
|
@@ -43,35 +43,35 @@ import { SERENITY_JS_DOMAIN_EVENTS_ATTACHMENT_CONTENT_TYPE } from './PlaywrightA
|
|
|
43
43
|
/**
|
|
44
44
|
* Configuration object accepted by `@serenity-js/playwright-test` reporter.
|
|
45
45
|
*
|
|
46
|
-
* See
|
|
46
|
+
* See [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/) for usage examples.
|
|
47
47
|
*/
|
|
48
48
|
export interface SerenityReporterForPlaywrightTestConfig {
|
|
49
49
|
/**
|
|
50
|
-
* A list of
|
|
51
|
-
* to be instantiated in Playwright Test reporter process and notified of
|
|
52
|
-
* Note that the `crew` can also be configured using
|
|
50
|
+
* A list of [stage crew member builders](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/) or [stage crew members](https://serenity-js.org/api/core/interface/StageCrewMember/)
|
|
51
|
+
* to be instantiated in Playwright Test reporter process and notified of [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/) that occur during the scenario execution.
|
|
52
|
+
* Note that the `crew` can also be configured using [class descriptions](https://serenity-js.org/api/core/#ClassDescription).
|
|
53
53
|
*
|
|
54
54
|
* #### Learn more
|
|
55
|
-
* -
|
|
56
|
-
* -
|
|
55
|
+
* - [`SerenityOptions`](https://serenity-js.org/api/playwright-test/interface/SerenityOptions/)
|
|
56
|
+
* - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
|
|
57
57
|
*/
|
|
58
58
|
crew?: Array<StageCrewMember | StageCrewMemberBuilder | ClassDescription>;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
|
-
* An output stream to be injected into
|
|
61
|
+
* An output stream to be injected into [stage crew member builders](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/)
|
|
62
62
|
*
|
|
63
63
|
* Defaults to [`process.stdout`](https://nodejs.org/api/process.html#process_process_stdout).
|
|
64
64
|
*
|
|
65
65
|
* #### Learn more
|
|
66
|
-
* -
|
|
66
|
+
* - [`SerenityConfig.outputStream`](https://serenity-js.org/api/core/class/SerenityConfig/#outputStream)
|
|
67
67
|
*/
|
|
68
68
|
outputStream?: OutputStream;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* Serenity/JS reporter that receives notifications from Playwright Test and emits them as
|
|
73
|
-
* Serenity/JS
|
|
74
|
-
* Serenity/JS
|
|
73
|
+
* Serenity/JS [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/) which can be used by
|
|
74
|
+
* Serenity/JS [stage crew members](https://serenity-js.org/api/core/interface/StageCrewMember/).
|
|
75
75
|
*/
|
|
76
76
|
export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
77
77
|
private errorParser = new PlaywrightErrorParser();
|
|
@@ -81,7 +81,7 @@ export class SerenityReporterForPlaywrightTest implements Reporter {
|
|
|
81
81
|
/**
|
|
82
82
|
* @param config
|
|
83
83
|
* @param serenity
|
|
84
|
-
* Instance of
|
|
84
|
+
* Instance of [`Serenity`](https://serenity-js.org/api/core/class/Serenity/), specific to the Node process running this Serenity reporter.
|
|
85
85
|
* Note that Playwright runs test workers and reporters in separate processes.
|
|
86
86
|
* @param requirementsHierarchy
|
|
87
87
|
* Root directory of the requirements hierarchy, used to determine capabilities and themes.
|