@serenity-js/playwright-test 3.42.1 → 3.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
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.43.0](https://github.com/serenity-js/serenity-js/compare/v3.42.2...v3.43.0) (2026-05-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **deps:** update rest dependencies ([a933e10](https://github.com/serenity-js/serenity-js/commit/a933e1060a0298104ac1ab7843c386e06277f070))
12
+ * **playwright-test:** ensure actors are dismissed between tests ([eda4f3a](https://github.com/serenity-js/serenity-js/commit/eda4f3a82a4f06b0cecb7fe981d1128429c3dfaf))
13
+
14
+
15
+
16
+
17
+
18
+ ## [3.42.2](https://github.com/serenity-js/serenity-js/compare/v3.42.1...v3.42.2) (2026-04-26)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **deps:** update rest dependencies ([525abcb](https://github.com/serenity-js/serenity-js/commit/525abcb26ad45e1963f883e86ccf650bd2229c20))
24
+ * **playwright:** aligned package.json exports to use conditional import/require types ([a8966e9](https://github.com/serenity-js/serenity-js/commit/a8966e94d74c24b3d2821e99e51bf3b24121b55e))
25
+
26
+
27
+
28
+
29
+
6
30
  ## [3.42.1](https://github.com/serenity-js/serenity-js/compare/v3.42.0...v3.42.1) (2026-04-08)
7
31
 
8
32
 
@@ -108,6 +108,8 @@ export interface SerenityFixtures {
108
108
  * Configures the name given to the default Serenity/JS [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
109
109
  * injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
110
110
  *
111
+ * Defaults to `'Serena'`.
112
+ *
111
113
  * #### Learn more
112
114
  * - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
113
115
  * - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
@@ -155,16 +157,6 @@ export interface SerenityFixtures {
155
157
  * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
156
158
  */
157
159
  cueTimeout: number | Duration;
158
- /**
159
- * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
160
- * to complete.
161
- *
162
- * Defaults to **5 seconds**, can be overridden per interaction.
163
- *
164
- * #### Learn more
165
- * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
166
- */
167
- interactionTimeout: number | Duration;
168
160
  /**
169
161
  * Convenience properties to be used with the [ability](https://serenity-js.org/api/core/class/Ability/)
170
162
  * to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/),
@@ -423,14 +415,35 @@ export interface SerenityFixtures {
423
415
  */
424
416
  export interface SerenityWorkerFixtures {
425
417
  /**
426
- * Name and version of the operating system that Playwright Test worker process runs on.
418
+ * Information about the operating system platform where the Playwright Test worker process runs.
419
+ *
420
+ * Returns an object with:
421
+ * - `name` - The platform name: `'Windows'`, `'macOS'`, or `'Linux'`
422
+ * - `version` - The OS version string from `os.release()`
423
+ *
424
+ * This information is used to tag test scenarios with platform metadata
425
+ * for reporting purposes.
427
426
  */
428
427
  platform: {
429
428
  name: string;
430
429
  version: string;
431
430
  };
432
431
  /**
433
- * Retrieves the root object of the Serenity/JS framework.
432
+ * The root [`Serenity`](https://serenity-js.org/api/core/class/Serenity/) instance for this worker.
433
+ *
434
+ * Provides access to the Serenity/JS framework for advanced use cases, such as:
435
+ * - Announcing custom [domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
436
+ * - Accessing the current time via [`serenity.currentTime()`](https://serenity-js.org/api/core/class/Serenity/#currentTime)
437
+ * - Configuring the framework programmatically
438
+ *
439
+ * :::tip
440
+ * In most test scenarios, you won't need to interact with the `serenity` fixture directly.
441
+ * Instead, use the [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
442
+ * or [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityWorkerFixtures/#actorCalled) fixtures.
443
+ * :::
444
+ *
445
+ * #### Learn more
446
+ * - [`Serenity`](https://serenity-js.org/api/core/class/Serenity/)
434
447
  */
435
448
  serenity: Serenity;
436
449
  /**
@@ -448,5 +461,68 @@ export interface SerenityWorkerFixtures {
448
461
  * @param name
449
462
  */
450
463
  actorCalled: (name: string) => Actor;
464
+ /**
465
+ * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
466
+ * to complete.
467
+ *
468
+ * Defaults to **5 seconds**, can be overridden per interaction.
469
+ *
470
+ * #### Learn more
471
+ * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
472
+ */
473
+ interactionTimeout: number | Duration;
474
+ /**
475
+ * Extra abilities given to actors at the worker scope, on top of the default ones
476
+ * provided by the [`actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors) fixture.
477
+ *
478
+ * Unlike [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities),
479
+ * which are test-scoped, `extraWorkerAbilities` persist across all tests within the same worker process.
480
+ * This is useful for abilities that are expensive to create or that maintain state across tests.
481
+ *
482
+ * #### Extra abilities for all actors
483
+ *
484
+ * To give the same set of extra abilities to all the actors, provide an array of
485
+ * [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
486
+ *
487
+ * ```typescript
488
+ * // playwright.config.ts
489
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
490
+ * import { defineConfig } from '@playwright/test'
491
+ * import { MySharedAbility } from './MySharedAbility'
492
+ *
493
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
494
+ * use: {
495
+ * extraWorkerAbilities: [ new MySharedAbility() ],
496
+ * },
497
+ * })
498
+ * ```
499
+ *
500
+ * #### Extra abilities for selected actors
501
+ *
502
+ * To give extra abilities only to selected actors, provide a function that maps
503
+ * the actor name to an array of [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
504
+ *
505
+ * ```typescript
506
+ * // playwright.config.ts
507
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
508
+ * import { defineConfig } from '@playwright/test'
509
+ * import { MySharedAbility } from './MySharedAbility'
510
+ *
511
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
512
+ * use: {
513
+ * extraWorkerAbilities: (actorName: string) => {
514
+ * return actorName === 'Admin'
515
+ * ? [ new MySharedAbility() ]
516
+ * : [];
517
+ * },
518
+ * },
519
+ * })
520
+ * ```
521
+ *
522
+ * #### Learn more
523
+ * - [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities) - test-scoped extra abilities
524
+ * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
525
+ */
526
+ extraWorkerAbilities: ((actorName: string) => Ability[]) | Ability[];
451
527
  }
452
528
  //# sourceMappingURL=serenity-fixtures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serenity-fixtures.d.ts","sourceRoot":"","sources":["../../src/api/serenity-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;;;;;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,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;;;;;;;;;OAUG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;;;;;;;OASG;IACH,KAAK,EAAE,aAAa,GAAG,0BAA0B,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACxC"}
1
+ {"version":3,"file":"serenity-fixtures.d.ts","sourceRoot":"","sources":["../../src/api/serenity-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;;;;;;;OASG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;;;;;;;;;OAUG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;;;;;;;OASG;IACH,KAAK,EAAE,aAAa,GAAG,0BAA0B,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,sBAAsB;IACnC;;;;;;;;;OASG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IAErC;;;;;;;;OAQG;IACH,kBAAkB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,oBAAoB,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;CACxE"}
@@ -1,5 +1,7 @@
1
1
  import type { Expect, Fixtures, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo, TestType } from '@playwright/test';
2
2
  import type { DiffFormatter } from '@serenity-js/core';
3
+ import { Cast, Clock } from '@serenity-js/core';
4
+ import { ActorLifecycleManager } from '@serenity-js/core/stage';
3
5
  import { PlaywrightTestSceneIdFactory } from '../reporter/PlaywrightTestSceneIdFactory.js';
4
6
  import type { SerenityFixtures, SerenityWorkerFixtures } from './serenity-fixtures.js';
5
7
  import { WorkerEventStreamWriter } from './WorkerEventStreamWriter.js';
@@ -7,10 +9,13 @@ interface SerenityInternalFixtures {
7
9
  configureScenarioInternal: void;
8
10
  }
9
11
  interface SerenityInternalWorkerFixtures {
12
+ clockInternal: Clock;
10
13
  configureWorkerInternal: void;
11
14
  sceneIdFactoryInternal: PlaywrightTestSceneIdFactory;
12
15
  diffFormatterInternal: DiffFormatter;
13
16
  eventStreamWriterInternal: WorkerEventStreamWriter;
17
+ workerCastInternal: Cast;
18
+ actorLifecycleManagerInternal: ActorLifecycleManager;
14
19
  }
15
20
  export declare const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, SerenityWorkerFixtures & SerenityInternalWorkerFixtures, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
16
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { mergeTests, test as playwrightBaseTest } from '@playwright/test';
5
5
  import { AnsiDiffFormatter, Cast, Clock, Duration, Serenity, TakeNotes } from '@serenity-js/core';
6
6
  import { SceneFinishes, SceneTagged } from '@serenity-js/core/events';
7
7
  import { BrowserTag, ExecutionSuccessful, PlatformTag } from '@serenity-js/core/model';
8
+ import { ActorLifecycleManager } from '@serenity-js/core/stage';
8
9
  import { BrowseTheWebWithPlaywright, SerenitySelectorEngines } from '@serenity-js/playwright';
9
10
  import { CallAnApi } from '@serenity-js/rest';
10
11
  import { Photographer, TakePhotosOfFailures } from '@serenity-js/web';
@@ -29,7 +30,7 @@ export const fixtures = {
29
30
  ],
30
31
  interactionTimeout: [
31
32
  Duration.ofSeconds(5),
32
- { option: true },
33
+ { scope: 'worker', option: true },
33
34
  ],
34
35
  crew: [
35
36
  [Photographer.whoWill(TakePhotosOfFailures)],
@@ -46,12 +47,15 @@ export const fixtures = {
46
47
  },
47
48
  actors: [
48
49
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
49
- async ({ axios, extraAbilities, extraContextOptions, page }, use) => {
50
+ async ({ axios, extraAbilities, extraContextOptions, extraWorkerAbilities, page }, use) => {
50
51
  await use(Cast.where(actor => {
51
- const abilities = Array.isArray(extraAbilities)
52
+ const extraTestScopeAbilities = Array.isArray(extraAbilities)
52
53
  ? extraAbilities
53
54
  : extraAbilities(actor.name);
54
- return actor.whoCan(BrowseTheWebWithPlaywright.usingPage(page, extraContextOptions), TakeNotes.usingAnEmptyNotepad(), CallAnApi.using(axios), ...abilities);
55
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
56
+ ? extraWorkerAbilities
57
+ : extraWorkerAbilities(actor.name);
58
+ return actor.whoCan(BrowseTheWebWithPlaywright.usingPage(page, extraContextOptions), TakeNotes.usingAnEmptyNotepad(), CallAnApi.using(axios), ...extraWorkerScopeAbilities, ...extraTestScopeAbilities);
55
59
  }));
56
60
  },
57
61
  { option: true },
@@ -80,12 +84,40 @@ export const fixtures = {
80
84
  },
81
85
  { scope: 'worker', box: true },
82
86
  ],
87
+ workerCastInternal: [
88
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
89
+ async ({ extraWorkerAbilities, browser }, use) => {
90
+ const cast = Cast.where(actor => {
91
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
92
+ ? extraWorkerAbilities
93
+ : extraWorkerAbilities(actor.name);
94
+ return actor.whoCan(BrowseTheWebWithPlaywright.using(browser), TakeNotes.usingAnEmptyNotepad(), ...extraWorkerScopeAbilities);
95
+ });
96
+ await use(cast);
97
+ },
98
+ { scope: 'worker', box: true },
99
+ ],
100
+ clockInternal: [
101
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
102
+ async ({}, use) => {
103
+ await use(new Clock());
104
+ },
105
+ { scope: 'worker', box: true },
106
+ ],
107
+ actorLifecycleManagerInternal: [
108
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
109
+ async ({ clockInternal, workerCastInternal, interactionTimeout }, use) => {
110
+ const actorLifecycleManager = new ActorLifecycleManager(workerCastInternal, clockInternal, asDuration(interactionTimeout));
111
+ await use(actorLifecycleManager);
112
+ },
113
+ { scope: 'worker', box: true },
114
+ ],
83
115
  serenity: [
84
116
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
85
- async ({ playwright, sceneIdFactoryInternal }, use, workerInfo) => {
117
+ async ({ actorLifecycleManagerInternal, playwright, sceneIdFactoryInternal }, use, workerInfo) => {
86
118
  const clock = new Clock();
87
119
  const cwd = process.cwd();
88
- const serenity = new Serenity(clock, cwd, sceneIdFactoryInternal);
120
+ const serenity = new Serenity(clock, cwd, sceneIdFactoryInternal, actorLifecycleManagerInternal);
89
121
  const serenitySelectorEngines = new SerenitySelectorEngines();
90
122
  await serenitySelectorEngines.ensureRegisteredWith(playwright.selectors);
91
123
  await use(serenity);
@@ -103,9 +135,14 @@ export const fixtures = {
103
135
  ],
104
136
  configureWorkerInternal: [
105
137
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
106
- async ({ diffFormatterInternal, eventStreamWriterInternal, sceneIdFactoryInternal, serenity, browser }, use, info) => {
138
+ async ({ diffFormatterInternal, eventStreamWriterInternal, extraWorkerAbilities, sceneIdFactoryInternal, serenity, browser }, use, info) => {
107
139
  serenity.configure({
108
- actors: Cast.where(actor => actor.whoCan(BrowseTheWebWithPlaywright.using(browser), TakeNotes.usingAnEmptyNotepad())),
140
+ actors: Cast.where(actor => {
141
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
142
+ ? extraWorkerAbilities
143
+ : extraWorkerAbilities(actor.name);
144
+ return actor.whoCan(BrowseTheWebWithPlaywright.using(browser), TakeNotes.usingAnEmptyNotepad(), ...extraWorkerScopeAbilities);
145
+ }),
109
146
  crew: [
110
147
  eventStreamWriterInternal,
111
148
  ],
@@ -120,7 +157,7 @@ export const fixtures = {
120
157
  ],
121
158
  configureScenarioInternal: [
122
159
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
123
- async ({ actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info) => {
160
+ async ({ actorLifecycleManagerInternal, actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info) => {
124
161
  serenity.configure({
125
162
  actors: asCast(actors),
126
163
  diffFormatter: diffFormatterInternal,
@@ -134,9 +171,13 @@ export const fixtures = {
134
171
  const playwrightSceneId = PlaywrightSceneId.from(info.project.name, { id: info.testId, repeatEachIndex: info.repeatEachIndex }, { retry: info.retry });
135
172
  sceneIdFactoryInternal.setTestId(playwrightSceneId.value);
136
173
  const sceneId = serenity.assignNewSceneId();
174
+ // Switch focus to foreground at the start of each test
175
+ // This ensures actors created during the test are added to the foreground
176
+ actorLifecycleManagerInternal.switchFocus('foreground');
137
177
  serenity.announce(new SceneTagged(sceneId, new PlatformTag(platform.name, platform.version), serenity.currentTime()), new SceneTagged(sceneId, new BrowserTag(browserName, browser.version()), serenity.currentTime()));
138
178
  await use(void 0);
139
179
  try {
180
+ // SceneFinishes will trigger dismissActorsIn('foreground') and switchFocus('background')
140
181
  serenity.announce(new SceneFinishes(sceneId, new ExecutionSuccessful(), serenity.currentTime()));
141
182
  await serenity.waitForNextCue();
142
183
  }
@@ -148,7 +189,11 @@ export const fixtures = {
148
189
  ],
149
190
  extraAbilities: [
150
191
  [],
151
- { option: true },
192
+ { option: true, scope: 'test' },
193
+ ],
194
+ extraWorkerAbilities: [
195
+ [],
196
+ { option: true, scope: 'worker' },
152
197
  ],
153
198
  actorCalled: [
154
199
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
@@ -1 +1 @@
1
- {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,8 @@ export interface SerenityFixtures {
108
108
  * Configures the name given to the default Serenity/JS [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
109
109
  * injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
110
110
  *
111
+ * Defaults to `'Serena'`.
112
+ *
111
113
  * #### Learn more
112
114
  * - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
113
115
  * - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
@@ -155,16 +157,6 @@ export interface SerenityFixtures {
155
157
  * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
156
158
  */
157
159
  cueTimeout: number | Duration;
158
- /**
159
- * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
160
- * to complete.
161
- *
162
- * Defaults to **5 seconds**, can be overridden per interaction.
163
- *
164
- * #### Learn more
165
- * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
166
- */
167
- interactionTimeout: number | Duration;
168
160
  /**
169
161
  * Convenience properties to be used with the [ability](https://serenity-js.org/api/core/class/Ability/)
170
162
  * to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/),
@@ -423,14 +415,35 @@ export interface SerenityFixtures {
423
415
  */
424
416
  export interface SerenityWorkerFixtures {
425
417
  /**
426
- * Name and version of the operating system that Playwright Test worker process runs on.
418
+ * Information about the operating system platform where the Playwright Test worker process runs.
419
+ *
420
+ * Returns an object with:
421
+ * - `name` - The platform name: `'Windows'`, `'macOS'`, or `'Linux'`
422
+ * - `version` - The OS version string from `os.release()`
423
+ *
424
+ * This information is used to tag test scenarios with platform metadata
425
+ * for reporting purposes.
427
426
  */
428
427
  platform: {
429
428
  name: string;
430
429
  version: string;
431
430
  };
432
431
  /**
433
- * Retrieves the root object of the Serenity/JS framework.
432
+ * The root [`Serenity`](https://serenity-js.org/api/core/class/Serenity/) instance for this worker.
433
+ *
434
+ * Provides access to the Serenity/JS framework for advanced use cases, such as:
435
+ * - Announcing custom [domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
436
+ * - Accessing the current time via [`serenity.currentTime()`](https://serenity-js.org/api/core/class/Serenity/#currentTime)
437
+ * - Configuring the framework programmatically
438
+ *
439
+ * :::tip
440
+ * In most test scenarios, you won't need to interact with the `serenity` fixture directly.
441
+ * Instead, use the [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
442
+ * or [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityWorkerFixtures/#actorCalled) fixtures.
443
+ * :::
444
+ *
445
+ * #### Learn more
446
+ * - [`Serenity`](https://serenity-js.org/api/core/class/Serenity/)
434
447
  */
435
448
  serenity: Serenity;
436
449
  /**
@@ -448,5 +461,68 @@ export interface SerenityWorkerFixtures {
448
461
  * @param name
449
462
  */
450
463
  actorCalled: (name: string) => Actor;
464
+ /**
465
+ * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
466
+ * to complete.
467
+ *
468
+ * Defaults to **5 seconds**, can be overridden per interaction.
469
+ *
470
+ * #### Learn more
471
+ * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
472
+ */
473
+ interactionTimeout: number | Duration;
474
+ /**
475
+ * Extra abilities given to actors at the worker scope, on top of the default ones
476
+ * provided by the [`actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors) fixture.
477
+ *
478
+ * Unlike [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities),
479
+ * which are test-scoped, `extraWorkerAbilities` persist across all tests within the same worker process.
480
+ * This is useful for abilities that are expensive to create or that maintain state across tests.
481
+ *
482
+ * #### Extra abilities for all actors
483
+ *
484
+ * To give the same set of extra abilities to all the actors, provide an array of
485
+ * [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
486
+ *
487
+ * ```typescript
488
+ * // playwright.config.ts
489
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
490
+ * import { defineConfig } from '@playwright/test'
491
+ * import { MySharedAbility } from './MySharedAbility'
492
+ *
493
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
494
+ * use: {
495
+ * extraWorkerAbilities: [ new MySharedAbility() ],
496
+ * },
497
+ * })
498
+ * ```
499
+ *
500
+ * #### Extra abilities for selected actors
501
+ *
502
+ * To give extra abilities only to selected actors, provide a function that maps
503
+ * the actor name to an array of [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
504
+ *
505
+ * ```typescript
506
+ * // playwright.config.ts
507
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
508
+ * import { defineConfig } from '@playwright/test'
509
+ * import { MySharedAbility } from './MySharedAbility'
510
+ *
511
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
512
+ * use: {
513
+ * extraWorkerAbilities: (actorName: string) => {
514
+ * return actorName === 'Admin'
515
+ * ? [ new MySharedAbility() ]
516
+ * : [];
517
+ * },
518
+ * },
519
+ * })
520
+ * ```
521
+ *
522
+ * #### Learn more
523
+ * - [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities) - test-scoped extra abilities
524
+ * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
525
+ */
526
+ extraWorkerAbilities: ((actorName: string) => Ability[]) | Ability[];
451
527
  }
452
528
  //# sourceMappingURL=serenity-fixtures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serenity-fixtures.d.ts","sourceRoot":"","sources":["../../src/api/serenity-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;;;;;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,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;;;;;;;;;OAUG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;;;;;;;OASG;IACH,KAAK,EAAE,aAAa,GAAG,0BAA0B,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACxC"}
1
+ {"version":3,"file":"serenity-fixtures.d.ts","sourceRoot":"","sources":["../../src/api/serenity-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;;;;;;;OASG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;;;;;;;;;OAUG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;;;;;;;OASG;IACH,KAAK,EAAE,aAAa,GAAG,0BAA0B,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,sBAAsB;IACnC;;;;;;;;;OASG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IAErC;;;;;;;;OAQG;IACH,kBAAkB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,oBAAoB,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;CACxE"}
@@ -1,5 +1,7 @@
1
1
  import type { Expect, Fixtures, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo, TestType } from '@playwright/test';
2
2
  import type { DiffFormatter } from '@serenity-js/core';
3
+ import { Cast, Clock } from '@serenity-js/core';
4
+ import { ActorLifecycleManager } from '@serenity-js/core/stage';
3
5
  import { PlaywrightTestSceneIdFactory } from '../reporter/PlaywrightTestSceneIdFactory.js';
4
6
  import type { SerenityFixtures, SerenityWorkerFixtures } from './serenity-fixtures.js';
5
7
  import { WorkerEventStreamWriter } from './WorkerEventStreamWriter.js';
@@ -7,10 +9,13 @@ interface SerenityInternalFixtures {
7
9
  configureScenarioInternal: void;
8
10
  }
9
11
  interface SerenityInternalWorkerFixtures {
12
+ clockInternal: Clock;
10
13
  configureWorkerInternal: void;
11
14
  sceneIdFactoryInternal: PlaywrightTestSceneIdFactory;
12
15
  diffFormatterInternal: DiffFormatter;
13
16
  eventStreamWriterInternal: WorkerEventStreamWriter;
17
+ workerCastInternal: Cast;
18
+ actorLifecycleManagerInternal: ActorLifecycleManager;
14
19
  }
15
20
  export declare const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, SerenityWorkerFixtures & SerenityInternalWorkerFixtures, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
16
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EAEX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,UAAU,wBAAwB;IAC9B,yBAAyB,EAAE,IAAI,CAAC;CACnC;AAED,UAAU,8BAA8B;IACpC,uBAAuB,EAAE,IAAI,CAAC;IAC9B,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,qBAAqB,EAAE,aAAa,CAAC;IACrC,yBAAyB,EAAE,uBAAuB,CAAC;CACtD;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAAG,wBAAwB,EAAE,sBAAsB,GAAG,8BAA8B,EAAE,kBAAkB,GAAG,qBAAqB,EAAE,oBAAoB,GAAG,uBAAuB,CA2N/N,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,IAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC,GACnH;IACI;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACrD,cAAc,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAE3C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CACxC,CAAA;AAoBL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,EAAE,kJAAS,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,IAAI,kJAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyPom5H,CAAC;eAA4C,CAAC;eAAiB,CAAC;;CAzPrp5H,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,GAtJF,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,6UAsJd,CAAC;AAE3C,KAAK,OAAO,CAAC,IAAI,IAAI,IAAI,SAAS,CAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC3G,KAAK,OAAO,CAAC,IAAI,IAAI,IAAI,SAAS,CAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAE3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2KG;AACH,wBAAgB,OAAO,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAGjJ"}
1
+ {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ const test_1 = require("@playwright/test");
12
12
  const core_1 = require("@serenity-js/core");
13
13
  const events_1 = require("@serenity-js/core/events");
14
14
  const model_1 = require("@serenity-js/core/model");
15
+ const stage_1 = require("@serenity-js/core/stage");
15
16
  const playwright_1 = require("@serenity-js/playwright");
16
17
  const rest_1 = require("@serenity-js/rest");
17
18
  const web_1 = require("@serenity-js/web");
@@ -36,7 +37,7 @@ exports.fixtures = {
36
37
  ],
37
38
  interactionTimeout: [
38
39
  core_1.Duration.ofSeconds(5),
39
- { option: true },
40
+ { scope: 'worker', option: true },
40
41
  ],
41
42
  crew: [
42
43
  [web_1.Photographer.whoWill(web_1.TakePhotosOfFailures)],
@@ -53,12 +54,15 @@ exports.fixtures = {
53
54
  },
54
55
  actors: [
55
56
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
56
- async ({ axios, extraAbilities, extraContextOptions, page }, use) => {
57
+ async ({ axios, extraAbilities, extraContextOptions, extraWorkerAbilities, page }, use) => {
57
58
  await use(core_1.Cast.where(actor => {
58
- const abilities = Array.isArray(extraAbilities)
59
+ const extraTestScopeAbilities = Array.isArray(extraAbilities)
59
60
  ? extraAbilities
60
61
  : extraAbilities(actor.name);
61
- return actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.usingPage(page, extraContextOptions), core_1.TakeNotes.usingAnEmptyNotepad(), rest_1.CallAnApi.using(axios), ...abilities);
62
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
63
+ ? extraWorkerAbilities
64
+ : extraWorkerAbilities(actor.name);
65
+ return actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.usingPage(page, extraContextOptions), core_1.TakeNotes.usingAnEmptyNotepad(), rest_1.CallAnApi.using(axios), ...extraWorkerScopeAbilities, ...extraTestScopeAbilities);
62
66
  }));
63
67
  },
64
68
  { option: true },
@@ -87,12 +91,40 @@ exports.fixtures = {
87
91
  },
88
92
  { scope: 'worker', box: true },
89
93
  ],
94
+ workerCastInternal: [
95
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
96
+ async ({ extraWorkerAbilities, browser }, use) => {
97
+ const cast = core_1.Cast.where(actor => {
98
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
99
+ ? extraWorkerAbilities
100
+ : extraWorkerAbilities(actor.name);
101
+ return actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.using(browser), core_1.TakeNotes.usingAnEmptyNotepad(), ...extraWorkerScopeAbilities);
102
+ });
103
+ await use(cast);
104
+ },
105
+ { scope: 'worker', box: true },
106
+ ],
107
+ clockInternal: [
108
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
109
+ async ({}, use) => {
110
+ await use(new core_1.Clock());
111
+ },
112
+ { scope: 'worker', box: true },
113
+ ],
114
+ actorLifecycleManagerInternal: [
115
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
116
+ async ({ clockInternal, workerCastInternal, interactionTimeout }, use) => {
117
+ const actorLifecycleManager = new stage_1.ActorLifecycleManager(workerCastInternal, clockInternal, asDuration(interactionTimeout));
118
+ await use(actorLifecycleManager);
119
+ },
120
+ { scope: 'worker', box: true },
121
+ ],
90
122
  serenity: [
91
123
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
92
- async ({ playwright, sceneIdFactoryInternal }, use, workerInfo) => {
124
+ async ({ actorLifecycleManagerInternal, playwright, sceneIdFactoryInternal }, use, workerInfo) => {
93
125
  const clock = new core_1.Clock();
94
126
  const cwd = node_process_1.default.cwd();
95
- const serenity = new core_1.Serenity(clock, cwd, sceneIdFactoryInternal);
127
+ const serenity = new core_1.Serenity(clock, cwd, sceneIdFactoryInternal, actorLifecycleManagerInternal);
96
128
  const serenitySelectorEngines = new playwright_1.SerenitySelectorEngines();
97
129
  await serenitySelectorEngines.ensureRegisteredWith(playwright.selectors);
98
130
  await use(serenity);
@@ -110,9 +142,14 @@ exports.fixtures = {
110
142
  ],
111
143
  configureWorkerInternal: [
112
144
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
113
- async ({ diffFormatterInternal, eventStreamWriterInternal, sceneIdFactoryInternal, serenity, browser }, use, info) => {
145
+ async ({ diffFormatterInternal, eventStreamWriterInternal, extraWorkerAbilities, sceneIdFactoryInternal, serenity, browser }, use, info) => {
114
146
  serenity.configure({
115
- actors: core_1.Cast.where(actor => actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.using(browser), core_1.TakeNotes.usingAnEmptyNotepad())),
147
+ actors: core_1.Cast.where(actor => {
148
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
149
+ ? extraWorkerAbilities
150
+ : extraWorkerAbilities(actor.name);
151
+ return actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.using(browser), core_1.TakeNotes.usingAnEmptyNotepad(), ...extraWorkerScopeAbilities);
152
+ }),
116
153
  crew: [
117
154
  eventStreamWriterInternal,
118
155
  ],
@@ -127,7 +164,7 @@ exports.fixtures = {
127
164
  ],
128
165
  configureScenarioInternal: [
129
166
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
130
- async ({ actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info) => {
167
+ async ({ actorLifecycleManagerInternal, actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info) => {
131
168
  serenity.configure({
132
169
  actors: asCast(actors),
133
170
  diffFormatter: diffFormatterInternal,
@@ -141,9 +178,13 @@ exports.fixtures = {
141
178
  const playwrightSceneId = index_js_1.PlaywrightSceneId.from(info.project.name, { id: info.testId, repeatEachIndex: info.repeatEachIndex }, { retry: info.retry });
142
179
  sceneIdFactoryInternal.setTestId(playwrightSceneId.value);
143
180
  const sceneId = serenity.assignNewSceneId();
181
+ // Switch focus to foreground at the start of each test
182
+ // This ensures actors created during the test are added to the foreground
183
+ actorLifecycleManagerInternal.switchFocus('foreground');
144
184
  serenity.announce(new events_1.SceneTagged(sceneId, new model_1.PlatformTag(platform.name, platform.version), serenity.currentTime()), new events_1.SceneTagged(sceneId, new model_1.BrowserTag(browserName, browser.version()), serenity.currentTime()));
145
185
  await use(void 0);
146
186
  try {
187
+ // SceneFinishes will trigger dismissActorsIn('foreground') and switchFocus('background')
147
188
  serenity.announce(new events_1.SceneFinishes(sceneId, new model_1.ExecutionSuccessful(), serenity.currentTime()));
148
189
  await serenity.waitForNextCue();
149
190
  }
@@ -155,7 +196,11 @@ exports.fixtures = {
155
196
  ],
156
197
  extraAbilities: [
157
198
  [],
158
- { option: true },
199
+ { option: true, scope: 'test' },
200
+ ],
201
+ extraWorkerAbilities: [
202
+ [],
203
+ { option: true, scope: 'worker' },
159
204
  ],
160
205
  actorCalled: [
161
206
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
@@ -1 +1 @@
1
- {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":";;;;;;AA6mBA,0BAGC;AAhnBD,sDAAyB;AACzB,0DAA6B;AAC7B,gEAAmC;AAanC,2CAA0E;AAE1E,4CAAkG;AAClG,qDAAsE;AACtE,mDAAuF;AACvF,wDAA8F;AAC9F,4CAA8C;AAC9C,0CAAsE;AACtE,2CAA0D;AAE1D,iDAAuD;AACvD,mDAA+D;AAC/D,iGAA2F;AAC3F,mGAA6F;AAE7F,6EAAuE;AAa1D,QAAA,QAAQ,GAA+M;IAEhO,mBAAmB,EAAE;QACjB,EAAE,0BAA0B,EAAE,MAAM,EAAE;QACtC,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,gBAAgB,EAAE;QACd,QAAQ;QACR,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,UAAU,EAAE;QACR,eAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,kBAAkB,EAAE;QAChB,eAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,IAAI,EAAE;QACF,CAAE,kBAAY,CAAC,OAAO,CAAC,0BAAoB,CAAC,CAAE;QAC9C,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;QACvD,MAAM,GAAG,CAAC;YACN,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM;gBACzB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBACtB,CAAC,CAAC,SAAS;SAClB,CAAC,CAAA;IACN,CAAC;IAED,MAAM,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAiB,EAAE;YAC/E,MAAM,GAAG,CAAC,WAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAEzB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;oBAC3C,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEjC,OAAO,KAAK,CAAC,MAAM,CACf,uCAA0B,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAC/D,gBAAS,CAAC,mBAAmB,EAAE,EAC/B,gBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EACtB,GAAG,SAAS,CACf,CAAC;YACN,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QACD,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,6EAA6E;IAC7E,QAAQ,EAAE,CAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,QAAQ,GAAG,iBAAE,CAAC,QAAQ,EAAE,CAAC;YAE/B,+DAA+D;YAC/D,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO;gBAC7B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAElD,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAE;IAExB,qBAAqB,EAAE;QACnB,6EAA6E;QAC7E,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACd,MAAM,aAAa,GAAG,IAAI,wBAAiB,EAAE,CAAC;YAC9C,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;KACjC;IAED,sBAAsB,EAAE;QACpB,6EAA6E;QAC7E,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACd,MAAM,GAAG,CAAC,IAAI,8DAA4B,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;KACjC;IAED,QAAQ,EAAE;QACN,6EAA6E;QAC7E,KAAK,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAI,YAAK,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,sBAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,eAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAElE,MAAM,uBAAuB,GAAG,IAAI,oCAAuB,EAAE,CAAC;YAC9D,MAAM,uBAAuB,CAAC,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAEzE,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;KACjC;IAED,yBAAyB,EAAE;QACvB,6EAA6E;QAC7E,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;YAE1B,MAAM,uBAAuB,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEpF,MAAM,iBAAiB,GAAG,IAAI,oDAAuB,CACjD,uBAAuB,EACvB,UAAU,CACb,CAAC;YAEF,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;KACjC;IAED,uBAAuB,EAAE;QACrB,6EAA6E;QAC7E,KAAK,EAAE,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAgB,EAAE,EAAE;YAE7H,QAAQ,CAAC,SAAS,CAAC;gBACf,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CACpC,uCAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,EACzC,gBAAS,CAAC,mBAAmB,EAAE,CAElC,CAAC;gBACF,IAAI,EAAE;oBACF,yBAAyB;iBAC5B;gBACD,aAAa,EAAE,qBAAqB;aACvC,CAAC,CAAC;YAEH,sBAAsB,CAAC,SAAS,CAAC,UAAW,IAAI,CAAC,WAAY,EAAE,CAAC,CAAC;YACjE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAE3D,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAElB,MAAM,yBAAyB,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACvE,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;KAC7C;IAED,yBAAyB,EAAE;QACvB,6EAA6E;QAC7E,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAc,EAAE,EAAE;YAEhM,QAAQ,CAAC,SAAS,CAAC;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,aAAa,EAAE,qBAAqB;gBACpC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;gBAClC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,CAAC;gBAClD,IAAI,EAAE;oBACF,GAAG,IAAI;oBACP,IAAI,iCAAsB,CAAC,IAAI,CAAC;iBACnC;aACJ,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,4BAAiB,CAAC,IAAI,CAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,EAC1D,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACxB,CAAC;YAEF,sBAAsB,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAE5C,QAAQ,CAAC,QAAQ,CACb,IAAI,oBAAW,CACX,OAAO,EACP,IAAI,mBAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAChD,QAAQ,CAAC,WAAW,EAAE,CACzB,EACD,IAAI,oBAAW,CACX,OAAO,EACP,IAAI,kBAAU,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAC9C,QAAQ,CAAC,WAAW,EAAE,CACzB,CACJ,CAAC;YAEF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAElB,IAAI,CAAC;gBACD,QAAQ,CAAC,QAAQ,CACb,IAAI,sBAAa,CAAC,OAAO,EAAE,IAAI,2BAAmB,EAAE,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAChF,CAAC;gBAEF,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;YACpC,CAAC;oBACO,CAAC;gBACL,MAAM,yBAAyB,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QACD,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG;KAC7B;IAED,cAAc,EAAE;QACZ,EAAE;QACF,EAAE,MAAM,EAAE,IAAI,EAAE;KACnB;IAED,WAAW,EAAE;QACT,6EAA6E;QAC7E,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;YAExB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAE5C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,0EAAkC,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAE,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC;YAEF,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE;KACtB;IAED,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE;QACpD,MAAM,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7C,CAAC;CACJ,CAAC;AAwCF,SAAS,aAAa,CAAqE,QAAwD;IAC/I,OAAO;QACH,WAAW,CAAwE,cAAoE;YACnJ,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;KACjB,CAAC;AACN,CAAC;AAED,MAAM,GAAG,GAAG,aAAa,CAAC,WAAkB,CAAC,CAAC,WAAW,CAA2C,gBAAQ,CAAC,CAAC;AAE9G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACU,QAAA,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AAEzB;;GAEG;AACU,QAAA,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACU,QAAA,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAExB,QAAA,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;AAE1B,QAAA,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AAE5B,QAAA,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;AAE1B,QAAA,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAExB,QAAA,MAAM,GAAW,GAAG,CAAC,MAAM,CAAC;AAE5B,QAAA,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAK3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2KG;AACH,SAAgB,OAAO,CAAqB,GAAG,SAAe;IAC1D,OAAO,aAAa,CAA+B,IAAA,iBAAU,EAAC,GAAG,SAAS,CAAC,CAAC;SACvE,WAAW,CAAC,gBAA4F,CAAC,CAAC;AACnH,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,aAAgC;IAChD,OAAO,aAAa,YAAY,eAAQ;QACpC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,eAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAAC,SAAkB;IAC9B,OAAO,IAAA,mBAAM,EAAC,QAAQ,EAAE,SAAiB,EAAE,IAAA,qBAAQ,EAAC,SAAS,EAAE,IAAA,uBAAU,GAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAqC;IAOxD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAExC,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,WAAW;QACxB,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC;QACtB,CAAC,CAAC,IAAI,GAAG,CAAC,UAAW,WAAY,EAAE,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;QACtB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ;QACvB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;QAC9D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;KACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/playwright-test",
3
- "version": "3.42.1",
3
+ "version": "3.43.0",
4
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",
@@ -22,39 +22,74 @@
22
22
  "module": "./esm/index.js",
23
23
  "exports": {
24
24
  ".": {
25
- "types": "./esm/index.d.ts",
26
- "import": "./esm/index.js",
27
- "require": "./lib/index.js"
25
+ "import": {
26
+ "types": "./esm/index.d.ts",
27
+ "default": "./esm/index.js"
28
+ },
29
+ "require": {
30
+ "types": "./lib/index.d.ts",
31
+ "default": "./lib/index.js"
32
+ }
28
33
  },
29
34
  "./events": {
30
- "types": "./lib/events/index.d.ts",
31
- "import": "./esm/events/index.js",
32
- "require": "./lib/events/index.js"
35
+ "import": {
36
+ "types": "./esm/events/index.d.ts",
37
+ "default": "./esm/events/index.js"
38
+ },
39
+ "require": {
40
+ "types": "./lib/events/index.d.ts",
41
+ "default": "./lib/events/index.js"
42
+ }
33
43
  },
34
44
  "./reporter": {
35
- "types": "./lib/reporter/index.d.ts",
36
- "import": "./esm/reporter/index.js",
37
- "require": "./lib/reporter/index.js"
45
+ "import": {
46
+ "types": "./esm/reporter/index.d.ts",
47
+ "default": "./esm/reporter/index.js"
48
+ },
49
+ "require": {
50
+ "types": "./lib/reporter/index.d.ts",
51
+ "default": "./lib/reporter/index.js"
52
+ }
38
53
  },
39
54
  "./api": {
40
- "types": "./lib/api/index.d.ts",
41
- "import": "./esm/api/index.js",
42
- "require": "./lib/api/index.js"
55
+ "import": {
56
+ "types": "./esm/api/index.d.ts",
57
+ "default": "./esm/api/index.js"
58
+ },
59
+ "require": {
60
+ "types": "./lib/api/index.d.ts",
61
+ "default": "./lib/api/index.js"
62
+ }
43
63
  },
44
64
  "./lib/events": {
45
- "types": "./lib/events/index.d.ts",
46
- "import": "./esm/events/index.js",
47
- "require": "./lib/events/index.js"
65
+ "import": {
66
+ "types": "./esm/events/index.d.ts",
67
+ "default": "./esm/events/index.js"
68
+ },
69
+ "require": {
70
+ "types": "./lib/events/index.d.ts",
71
+ "default": "./lib/events/index.js"
72
+ }
48
73
  },
49
74
  "./lib/reporter": {
50
- "types": "./lib/reporter/index.d.ts",
51
- "import": "./esm/reporter/index.js",
52
- "require": "./lib/reporter/index.js"
75
+ "import": {
76
+ "types": "./esm/reporter/index.d.ts",
77
+ "default": "./esm/reporter/index.js"
78
+ },
79
+ "require": {
80
+ "types": "./lib/reporter/index.d.ts",
81
+ "default": "./lib/reporter/index.js"
82
+ }
53
83
  },
54
84
  "./lib/api": {
55
- "types": "./lib/api/index.d.ts",
56
- "import": "./esm/api/index.js",
57
- "require": "./lib/api/index.js"
85
+ "import": {
86
+ "types": "./esm/api/index.d.ts",
87
+ "default": "./esm/api/index.js"
88
+ },
89
+ "require": {
90
+ "types": "./lib/api/index.d.ts",
91
+ "default": "./lib/api/index.js"
92
+ }
58
93
  },
59
94
  "./lib/*.js": "./lib/*.js",
60
95
  "./lib/*": "./lib/*",
@@ -107,11 +142,11 @@
107
142
  "node": "^20 || ^22 || ^24"
108
143
  },
109
144
  "dependencies": {
110
- "@serenity-js/core": "3.42.1",
111
- "@serenity-js/playwright": "3.42.1",
112
- "@serenity-js/rest": "3.42.1",
113
- "@serenity-js/web": "3.42.1",
114
- "axios": "1.15.0",
145
+ "@serenity-js/core": "3.43.0",
146
+ "@serenity-js/playwright": "3.43.0",
147
+ "@serenity-js/rest": "3.43.0",
148
+ "@serenity-js/web": "3.43.0",
149
+ "axios": "1.16.0",
115
150
  "deepmerge": "4.3.1",
116
151
  "tiny-types": "2.0.5"
117
152
  },
@@ -129,5 +164,5 @@
129
164
  "ts-node": "10.9.2",
130
165
  "typescript": "5.9.3"
131
166
  },
132
- "gitHead": "42dc1d09e9c09db93669395939e386162a08be29"
167
+ "gitHead": "96ffb7ecba111082c92d7b107fef007d9f56bb83"
133
168
  }
@@ -119,6 +119,8 @@ export interface SerenityFixtures {
119
119
  * Configures the name given to the default Serenity/JS [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
120
120
  * injected into a [test scenario](https://serenity-js.org/api/playwright-test/function/it/).
121
121
  *
122
+ * Defaults to `'Serena'`.
123
+ *
122
124
  * #### Learn more
123
125
  * - Declaring a Serenity/JS [test scenario](https://serenity-js.org/api/playwright-test/function/it/)
124
126
  * - [`SerenityFixtures`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/)
@@ -169,17 +171,6 @@ export interface SerenityFixtures {
169
171
  */
170
172
  cueTimeout: number | Duration;
171
173
 
172
- /**
173
- * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
174
- * to complete.
175
- *
176
- * Defaults to **5 seconds**, can be overridden per interaction.
177
- *
178
- * #### Learn more
179
- * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
180
- */
181
- interactionTimeout: number | Duration;
182
-
183
174
  /**
184
175
  * Convenience properties to be used with the [ability](https://serenity-js.org/api/core/class/Ability/)
185
176
  * to [`BrowseTheWebWithPlaywright`](https://serenity-js.org/api/playwright/class/BrowseTheWebWithPlaywright/),
@@ -443,12 +434,33 @@ export interface SerenityFixtures {
443
434
  */
444
435
  export interface SerenityWorkerFixtures {
445
436
  /**
446
- * Name and version of the operating system that Playwright Test worker process runs on.
437
+ * Information about the operating system platform where the Playwright Test worker process runs.
438
+ *
439
+ * Returns an object with:
440
+ * - `name` - The platform name: `'Windows'`, `'macOS'`, or `'Linux'`
441
+ * - `version` - The OS version string from `os.release()`
442
+ *
443
+ * This information is used to tag test scenarios with platform metadata
444
+ * for reporting purposes.
447
445
  */
448
446
  platform: { name: string, version: string };
449
447
 
450
448
  /**
451
- * Retrieves the root object of the Serenity/JS framework.
449
+ * The root [`Serenity`](https://serenity-js.org/api/core/class/Serenity/) instance for this worker.
450
+ *
451
+ * Provides access to the Serenity/JS framework for advanced use cases, such as:
452
+ * - Announcing custom [domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
453
+ * - Accessing the current time via [`serenity.currentTime()`](https://serenity-js.org/api/core/class/Serenity/#currentTime)
454
+ * - Configuring the framework programmatically
455
+ *
456
+ * :::tip
457
+ * In most test scenarios, you won't need to interact with the `serenity` fixture directly.
458
+ * Instead, use the [`actor`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actor)
459
+ * or [`actorCalled`](https://serenity-js.org/api/playwright-test/interface/SerenityWorkerFixtures/#actorCalled) fixtures.
460
+ * :::
461
+ *
462
+ * #### Learn more
463
+ * - [`Serenity`](https://serenity-js.org/api/core/class/Serenity/)
452
464
  */
453
465
  serenity: Serenity;
454
466
 
@@ -467,5 +479,70 @@ export interface SerenityWorkerFixtures {
467
479
  * @param name
468
480
  */
469
481
  actorCalled: (name: string) => Actor;
482
+
483
+ /**
484
+ * The maximum default amount of time allowed for interactions such as [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
485
+ * to complete.
486
+ *
487
+ * Defaults to **5 seconds**, can be overridden per interaction.
488
+ *
489
+ * #### Learn more
490
+ * - [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
491
+ */
492
+ interactionTimeout: number | Duration;
493
+
494
+ /**
495
+ * Extra abilities given to actors at the worker scope, on top of the default ones
496
+ * provided by the [`actors`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#actors) fixture.
497
+ *
498
+ * Unlike [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities),
499
+ * which are test-scoped, `extraWorkerAbilities` persist across all tests within the same worker process.
500
+ * This is useful for abilities that are expensive to create or that maintain state across tests.
501
+ *
502
+ * #### Extra abilities for all actors
503
+ *
504
+ * To give the same set of extra abilities to all the actors, provide an array of
505
+ * [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
506
+ *
507
+ * ```typescript
508
+ * // playwright.config.ts
509
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
510
+ * import { defineConfig } from '@playwright/test'
511
+ * import { MySharedAbility } from './MySharedAbility'
512
+ *
513
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
514
+ * use: {
515
+ * extraWorkerAbilities: [ new MySharedAbility() ],
516
+ * },
517
+ * })
518
+ * ```
519
+ *
520
+ * #### Extra abilities for selected actors
521
+ *
522
+ * To give extra abilities only to selected actors, provide a function that maps
523
+ * the actor name to an array of [`Ability`](https://serenity-js.org/api/core/class/Ability/) objects:
524
+ *
525
+ * ```typescript
526
+ * // playwright.config.ts
527
+ * import type { SerenityFixtures, SerenityWorkerFixtures } from '@serenity-js/playwright-test'
528
+ * import { defineConfig } from '@playwright/test'
529
+ * import { MySharedAbility } from './MySharedAbility'
530
+ *
531
+ * export default defineConfig<SerenityFixtures, SerenityWorkerFixtures>({
532
+ * use: {
533
+ * extraWorkerAbilities: (actorName: string) => {
534
+ * return actorName === 'Admin'
535
+ * ? [ new MySharedAbility() ]
536
+ * : [];
537
+ * },
538
+ * },
539
+ * })
540
+ * ```
541
+ *
542
+ * #### Learn more
543
+ * - [`extraAbilities`](https://serenity-js.org/api/playwright-test/interface/SerenityFixtures/#extraAbilities) - test-scoped extra abilities
544
+ * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
545
+ */
546
+ extraWorkerAbilities: ((actorName: string) => Ability[]) | Ability[];
470
547
  }
471
548
 
@@ -18,6 +18,7 @@ import type { DiffFormatter } from '@serenity-js/core';
18
18
  import { AnsiDiffFormatter, Cast, Clock, Duration, Serenity, TakeNotes } from '@serenity-js/core';
19
19
  import { SceneFinishes, SceneTagged } from '@serenity-js/core/events';
20
20
  import { BrowserTag, ExecutionSuccessful, PlatformTag } from '@serenity-js/core/model';
21
+ import { ActorLifecycleManager } from '@serenity-js/core/stage';
21
22
  import { BrowseTheWebWithPlaywright, SerenitySelectorEngines } from '@serenity-js/playwright';
22
23
  import { CallAnApi } from '@serenity-js/rest';
23
24
  import { Photographer, TakePhotosOfFailures } from '@serenity-js/web';
@@ -35,10 +36,13 @@ interface SerenityInternalFixtures {
35
36
  }
36
37
 
37
38
  interface SerenityInternalWorkerFixtures {
39
+ clockInternal: Clock;
38
40
  configureWorkerInternal: void;
39
41
  sceneIdFactoryInternal: PlaywrightTestSceneIdFactory;
40
42
  diffFormatterInternal: DiffFormatter;
41
43
  eventStreamWriterInternal: WorkerEventStreamWriter;
44
+ workerCastInternal: Cast;
45
+ actorLifecycleManagerInternal: ActorLifecycleManager;
42
46
  }
43
47
 
44
48
  export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, SerenityWorkerFixtures & SerenityInternalWorkerFixtures, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions> = {
@@ -60,7 +64,7 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
60
64
 
61
65
  interactionTimeout: [
62
66
  Duration.ofSeconds(5),
63
- { option: true },
67
+ { scope: 'worker', option: true },
64
68
  ],
65
69
 
66
70
  crew: [
@@ -80,18 +84,23 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
80
84
 
81
85
  actors: [
82
86
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
83
- async ({ axios, extraAbilities, extraContextOptions, page }, use): Promise<void> => {
87
+ async ({ axios, extraAbilities, extraContextOptions, extraWorkerAbilities, page }, use): Promise<void> => {
84
88
  await use(Cast.where(actor => {
85
89
 
86
- const abilities = Array.isArray(extraAbilities)
90
+ const extraTestScopeAbilities = Array.isArray(extraAbilities)
87
91
  ? extraAbilities
88
92
  : extraAbilities(actor.name);
89
93
 
94
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
95
+ ? extraWorkerAbilities
96
+ : extraWorkerAbilities(actor.name);
97
+
90
98
  return actor.whoCan(
91
99
  BrowseTheWebWithPlaywright.usingPage(page, extraContextOptions),
92
100
  TakeNotes.usingAnEmptyNotepad(),
93
101
  CallAnApi.using(axios),
94
- ...abilities,
102
+ ...extraWorkerScopeAbilities,
103
+ ...extraTestScopeAbilities,
95
104
  );
96
105
  }));
97
106
  },
@@ -127,12 +136,54 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
127
136
  { scope: 'worker', box: true },
128
137
  ],
129
138
 
139
+ workerCastInternal: [
140
+
141
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
142
+ async ({ extraWorkerAbilities, browser }, use) => {
143
+ const cast = Cast.where(actor => {
144
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
145
+ ? extraWorkerAbilities
146
+ : extraWorkerAbilities(actor.name);
147
+
148
+ return actor.whoCan(
149
+ BrowseTheWebWithPlaywright.using(browser),
150
+ TakeNotes.usingAnEmptyNotepad(),
151
+ ...extraWorkerScopeAbilities,
152
+ // todo: consider making `axios` a fixture and injecting an ability to CallAnApi
153
+ );
154
+ });
155
+ await use(cast);
156
+ },
157
+ { scope: 'worker', box: true },
158
+ ],
159
+
160
+ clockInternal: [
161
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
162
+ async ({}, use) => {
163
+ await use(new Clock());
164
+ },
165
+ { scope: 'worker', box: true },
166
+ ],
167
+
168
+ actorLifecycleManagerInternal: [
169
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
170
+ async ({ clockInternal, workerCastInternal, interactionTimeout }, use) => {
171
+ const actorLifecycleManager = new ActorLifecycleManager(
172
+ workerCastInternal,
173
+ clockInternal,
174
+ asDuration(interactionTimeout),
175
+ );
176
+ await use(actorLifecycleManager);
177
+ },
178
+ { scope: 'worker', box: true },
179
+ ],
180
+
130
181
  serenity: [
131
182
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
132
- async ({ playwright, sceneIdFactoryInternal }, use, workerInfo) => {
183
+ async ({ actorLifecycleManagerInternal, playwright, sceneIdFactoryInternal }, use, workerInfo) => {
133
184
  const clock = new Clock();
134
185
  const cwd = process.cwd();
135
- const serenity = new Serenity(clock, cwd, sceneIdFactoryInternal);
186
+ const serenity = new Serenity(clock, cwd, sceneIdFactoryInternal, actorLifecycleManagerInternal);
136
187
 
137
188
  const serenitySelectorEngines = new SerenitySelectorEngines();
138
189
  await serenitySelectorEngines.ensureRegisteredWith(playwright.selectors);
@@ -160,14 +211,21 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
160
211
 
161
212
  configureWorkerInternal: [
162
213
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
163
- async ({ diffFormatterInternal, eventStreamWriterInternal, sceneIdFactoryInternal, serenity, browser }, use, info: WorkerInfo) => {
214
+ async ({ diffFormatterInternal, eventStreamWriterInternal, extraWorkerAbilities, sceneIdFactoryInternal, serenity, browser }, use, info: WorkerInfo) => {
164
215
 
165
216
  serenity.configure({
166
- actors: Cast.where(actor => actor.whoCan(
167
- BrowseTheWebWithPlaywright.using(browser),
168
- TakeNotes.usingAnEmptyNotepad(),
169
- // todo: consider making `axios` a fixture and injecting an ability to CallAnApi
170
- )),
217
+ actors: Cast.where(actor => {
218
+ const extraWorkerScopeAbilities = Array.isArray(extraWorkerAbilities)
219
+ ? extraWorkerAbilities
220
+ : extraWorkerAbilities(actor.name);
221
+
222
+ return actor.whoCan(
223
+ BrowseTheWebWithPlaywright.using(browser),
224
+ TakeNotes.usingAnEmptyNotepad(),
225
+ ...extraWorkerScopeAbilities,
226
+ // todo: consider making `axios` a fixture and injecting an ability to CallAnApi
227
+ );
228
+ }),
171
229
  crew: [
172
230
  eventStreamWriterInternal,
173
231
  ],
@@ -186,7 +244,7 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
186
244
 
187
245
  configureScenarioInternal: [
188
246
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
189
- async ({ actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info: TestInfo) => {
247
+ async ({ actorLifecycleManagerInternal, actors, browser, browserName, crew, cueTimeout, diffFormatterInternal, eventStreamWriterInternal, interactionTimeout, platform, sceneIdFactoryInternal, serenity }, use, info: TestInfo) => {
190
248
 
191
249
  serenity.configure({
192
250
  actors: asCast(actors),
@@ -208,6 +266,10 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
208
266
  sceneIdFactoryInternal.setTestId(playwrightSceneId.value);
209
267
  const sceneId = serenity.assignNewSceneId();
210
268
 
269
+ // Switch focus to foreground at the start of each test
270
+ // This ensures actors created during the test are added to the foreground
271
+ actorLifecycleManagerInternal.switchFocus('foreground');
272
+
211
273
  serenity.announce(
212
274
  new SceneTagged(
213
275
  sceneId,
@@ -224,6 +286,7 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
224
286
  await use(void 0);
225
287
 
226
288
  try {
289
+ // SceneFinishes will trigger dismissActorsIn('foreground') and switchFocus('background')
227
290
  serenity.announce(
228
291
  new SceneFinishes(sceneId, new ExecutionSuccessful(), serenity.currentTime()),
229
292
  );
@@ -239,7 +302,12 @@ export const fixtures: Fixtures<SerenityFixtures & SerenityInternalFixtures, Ser
239
302
 
240
303
  extraAbilities: [
241
304
  [],
242
- { option: true },
305
+ { option: true, scope: 'test' },
306
+ ],
307
+
308
+ extraWorkerAbilities: [
309
+ [],
310
+ { option: true, scope: 'worker' },
243
311
  ],
244
312
 
245
313
  actorCalled: [