@serenity-js/core 3.31.17 → 3.32.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/Serenity.d.ts +4 -2
  3. package/lib/Serenity.d.ts.map +1 -1
  4. package/lib/Serenity.js +14 -8
  5. package/lib/Serenity.js.map +1 -1
  6. package/lib/model/CorrelationIdFactory.d.ts +8 -0
  7. package/lib/model/CorrelationIdFactory.d.ts.map +1 -0
  8. package/lib/model/CorrelationIdFactory.js +3 -0
  9. package/lib/model/CorrelationIdFactory.js.map +1 -0
  10. package/lib/model/index.d.ts +1 -0
  11. package/lib/model/index.d.ts.map +1 -1
  12. package/lib/model/index.js +1 -0
  13. package/lib/model/index.js.map +1 -1
  14. package/lib/model/tags/ProjectTag.d.ts +11 -0
  15. package/lib/model/tags/ProjectTag.d.ts.map +1 -0
  16. package/lib/model/tags/ProjectTag.js +17 -0
  17. package/lib/model/tags/ProjectTag.js.map +1 -0
  18. package/lib/model/tags/index.d.ts +1 -0
  19. package/lib/model/tags/index.d.ts.map +1 -1
  20. package/lib/model/tags/index.js +1 -0
  21. package/lib/model/tags/index.js.map +1 -1
  22. package/lib/stage/Cast.d.ts +12 -7
  23. package/lib/stage/Cast.d.ts.map +1 -1
  24. package/lib/stage/Cast.js +12 -7
  25. package/lib/stage/Cast.js.map +1 -1
  26. package/lib/stage/Stage.d.ts +9 -5
  27. package/lib/stage/Stage.d.ts.map +1 -1
  28. package/lib/stage/Stage.js +19 -5
  29. package/lib/stage/Stage.js.map +1 -1
  30. package/lib/stage/StageManager.d.ts +4 -1
  31. package/lib/stage/StageManager.d.ts.map +1 -1
  32. package/lib/stage/StageManager.js +7 -0
  33. package/lib/stage/StageManager.js.map +1 -1
  34. package/package.json +3 -3
  35. package/src/Serenity.ts +12 -16
  36. package/src/model/CorrelationIdFactory.ts +8 -0
  37. package/src/model/index.ts +1 -0
  38. package/src/model/tags/ProjectTag.ts +14 -0
  39. package/src/model/tags/index.ts +1 -0
  40. package/src/stage/Cast.ts +12 -7
  41. package/src/stage/Stage.ts +34 -10
  42. package/src/stage/StageManager.ts +12 -3
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
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.32.0](https://github.com/serenity-js/serenity-js/compare/v3.31.17...v3.32.0) (2025-06-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **core:** retain the Stage when Serenity is re-configured ([03f74bf](https://github.com/serenity-js/serenity-js/commit/03f74bfe33349f2fa5b32e0a10ceb1f57047dc3b))
12
+ * **playwright:** marked all properties of ExtraBrowserContextOptions as optional ([3ee0145](https://github.com/serenity-js/serenity-js/commit/3ee0145890d0619cc0f4786b9addad429a41f278))
13
+
14
+
15
+ ### Features
16
+
17
+ * **playwright-test:** aggregate retried test reports, filter tests by project ([6cc46db](https://github.com/serenity-js/serenity-js/commit/6cc46dbc073134dd6956fff04208c1e574f38b05))
18
+ * **playwright:** refactored SerenityFixtures, corrected BrowseTheWebWithPlaywright parameters ([9c62723](https://github.com/serenity-js/serenity-js/commit/9c627233bc93e38a8ae6e9ba531c31ba05ab707f))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [3.31.17](https://github.com/serenity-js/serenity-js/compare/v3.31.16...v3.31.17) (2025-06-16)
7
25
 
8
26
  **Note:** Version bump only for package @serenity-js/core
package/lib/Serenity.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { SerenityConfig } from './config';
2
2
  import type { ErrorOptions, RuntimeError } from './errors';
3
3
  import type { DomainEvent, EmitsDomainEvents } from './events';
4
4
  import { Path } from './io';
5
- import type { ActivityDetails, CorrelationId } from './model';
5
+ import { type ActivityDetails, CorrelationId, type CorrelationIdFactory } from './model';
6
6
  import type { Actor, Timestamp } from './screenplay';
7
7
  import { Clock } from './screenplay';
8
8
  import type { Cast } from './stage/Cast';
@@ -11,6 +11,7 @@ import type { Cast } from './stage/Cast';
11
11
  */
12
12
  export declare class Serenity implements EmitsDomainEvents {
13
13
  private readonly clock;
14
+ private readonly sceneIdFactory;
14
15
  private static defaultCueTimeout;
15
16
  private static defaultInteractionTimeout;
16
17
  private static defaultActors;
@@ -22,8 +23,9 @@ export declare class Serenity implements EmitsDomainEvents {
22
23
  /**
23
24
  * @param clock
24
25
  * @param cwd
26
+ * @param sceneIdFactory
25
27
  */
26
- constructor(clock?: Clock, cwd?: string);
28
+ constructor(clock?: Clock, cwd?: string, sceneIdFactory?: CorrelationIdFactory);
27
29
  /**
28
30
  * Configures Serenity/JS. Every call to this function
29
31
  * replaces the previous configuration provided,
@@ -1 +1 @@
1
- {"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAyE,IAAI,EAAE,MAAM,MAAM,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAY,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKzC;;GAEG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAiB1C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhB1B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAA4B;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAExC;;;OAGG;gBAEkB,KAAK,GAAE,KAAmB,EAC3C,GAAG,GAAE,MAAsB;IAoB/B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAwDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAM1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB,IAAI,KAAK;IAI/B,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7C,WAAW,IAAI,SAAS;IAIxB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,aAAa;IAI/B,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IAIpE,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAItG;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,GAAG,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAyE,IAAI,EAAE,MAAM,MAAM,CAAC;AACnG,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAY,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKzC;;GAEG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAkB1C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAnBnC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAA4B;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAExC;;;;OAIG;gBAEkB,KAAK,GAAE,KAAmB,EAC3C,GAAG,GAAE,MAAsB,EACV,cAAc,GAAE,oBAAoC;IAqBzE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAmDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB,IAAI,KAAK;IAI/B,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7C,WAAW,IAAI,SAAS;IAIxB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,aAAa;IAI/B,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IAIpE,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAItG;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,GAAG,IAAI,IAAI;CAGd"}
package/lib/Serenity.js CHANGED
@@ -4,6 +4,7 @@ exports.Serenity = void 0;
4
4
  const tiny_types_1 = require("tiny-types");
5
5
  const errors_1 = require("./errors");
6
6
  const io_1 = require("./io");
7
+ const model_1 = require("./model");
7
8
  const screenplay_1 = require("./screenplay");
8
9
  const Extras_1 = require("./stage/Extras");
9
10
  const Stage_1 = require("./stage/Stage");
@@ -13,6 +14,7 @@ const StageManager_1 = require("./stage/StageManager");
13
14
  */
14
15
  class Serenity {
15
16
  clock;
17
+ sceneIdFactory;
16
18
  static defaultCueTimeout = screenplay_1.Duration.ofSeconds(5);
17
19
  static defaultInteractionTimeout = screenplay_1.Duration.ofSeconds(5);
18
20
  static defaultActors = new Extras_1.Extras();
@@ -24,10 +26,12 @@ class Serenity {
24
26
  /**
25
27
  * @param clock
26
28
  * @param cwd
29
+ * @param sceneIdFactory
27
30
  */
28
- constructor(clock = new screenplay_1.Clock(), cwd = process.cwd()) {
31
+ constructor(clock = new screenplay_1.Clock(), cwd = process.cwd(), sceneIdFactory = model_1.CorrelationId) {
29
32
  this.clock = clock;
30
- this.stage = new Stage_1.Stage(Serenity.defaultActors, new StageManager_1.StageManager(Serenity.defaultCueTimeout, clock), new errors_1.ErrorFactory(), clock, Serenity.defaultInteractionTimeout);
33
+ this.sceneIdFactory = sceneIdFactory;
34
+ this.stage = new Stage_1.Stage(Serenity.defaultActors, new StageManager_1.StageManager(Serenity.defaultCueTimeout, clock), new errors_1.ErrorFactory(), clock, Serenity.defaultInteractionTimeout, sceneIdFactory);
31
35
  this.classLoader = new io_1.ClassLoader(new io_1.ModuleLoader(cwd), new io_1.ClassDescriptionParser());
32
36
  this.workingDirectory = new io_1.Path(cwd);
33
37
  this.fileSystem = new io_1.FileSystem(this.workingDirectory);
@@ -52,10 +56,12 @@ class Serenity {
52
56
  if (config.outputStream) {
53
57
  this.outputStream = config.outputStream;
54
58
  }
55
- this.stage = new Stage_1.Stage(Serenity.defaultActors, new StageManager_1.StageManager(cueTimeout, this.clock), new errors_1.ErrorFactory(config.diffFormatter ?? new errors_1.NoOpDiffFormatter()), this.clock, interactionTimeout);
56
- if (config.actors) {
57
- this.engage(config.actors);
58
- }
59
+ this.stage.configure({
60
+ actors: config.actors ?? Serenity.defaultActors,
61
+ cueTimeout,
62
+ interactionTimeout,
63
+ diffFormatter: config.diffFormatter ?? new errors_1.NoOpDiffFormatter(),
64
+ });
59
65
  if (Array.isArray(config.crew)) {
60
66
  this.stage.assign(...config.crew.map((stageCrewMemberDescription, i) => {
61
67
  const stageCrewMember = this.classLoader.looksLoadable(stageCrewMemberDescription)
@@ -143,7 +149,7 @@ class Serenity {
143
149
  * @param actors
144
150
  */
145
151
  engage(actors) {
146
- this.stage.engage((0, tiny_types_1.ensure)('actors', actors, (0, tiny_types_1.property)('prepare', (0, tiny_types_1.isDefined)())));
152
+ this.stage.engage(actors);
147
153
  }
148
154
  /**
149
155
  * Instantiates or retrieves an [`Actor`](https://serenity-js.org/api/core/class/Actor/)
@@ -204,7 +210,7 @@ class Serenity {
204
210
  * The name of the actor to instantiate or retrieve
205
211
  */
206
212
  theActorCalled(name) {
207
- return this.stage.theActorCalled(name);
213
+ return this.stage.actor(name);
208
214
  }
209
215
  /**
210
216
  * Retrieves an actor who was last instantiated or retrieved
@@ -1 +1 @@
1
- {"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAKvE,qCAA+E;AAE/E,6BAAmG;AAGnG,6CAA+C;AAG/C,2CAAwC;AACxC,yCAAsC;AACtC,uDAAoD;AAEpD;;GAEG;AACH,MAAa,QAAQ;IAiBI;IAhBb,MAAM,CAAC,iBAAiB,GAAc,qBAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,yBAAyB,GAAM,qBAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,aAAa,GAAkB,IAAI,eAAM,EAAE,CAAC;IAEnD,KAAK,CAAQ;IACJ,UAAU,CAAa;IAChC,YAAY,GAAkB,OAAO,CAAC,MAAM,CAAC;IAEpC,WAAW,CAAc;IACzB,gBAAgB,CAAO;IAExC;;;OAGG;IACH,YACqB,QAAe,IAAI,kBAAK,EAAE,EAC3C,MAAc,OAAO,CAAC,GAAG,EAAE;QADV,UAAK,GAAL,KAAK,CAAqB;QAG3C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAClB,QAAQ,CAAC,aAAa,EACtB,IAAI,2BAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,EACnD,IAAI,qBAAY,EAAE,EAClB,KAAK,EACL,QAAQ,CAAC,yBAAyB,CACrC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAW,CAC9B,IAAI,iBAAY,CAAC,GAAG,CAAC,EACrB,IAAI,2BAAsB,EAAE,CAC/B,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAI,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,GAAG,IAAI,eAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,MAAsB;QAC5B,MAAM,gBAAgB,GAAY,IAAA,QAAG,EAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACrF,MAAM,wBAAwB,GAAI,IAAA,QAAG,EAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAEzG,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;YAChC,CAAC,CAAC,IAAA,mBAAM,EAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,IAAA,yBAAY,EAAC,qBAAQ,CAAC,CAAC;YACjE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAEjC,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;YAChD,CAAC,CAAC,IAAA,mBAAM,EAAC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,EAAE,IAAA,yBAAY,EAAC,qBAAQ,CAAC,CAAC;YACjF,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAEzC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAClB,QAAQ,CAAC,aAAa,EACtB,IAAI,2BAAY,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EACxC,IAAI,qBAAY,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,0BAAiB,EAAE,CAAC,EACjE,IAAI,CAAC,KAAK,EACV,kBAAkB,CACrB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CACb,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,0BAA0B,EAAE,CAAC,EAAE,EAAE;gBAEjD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC;oBAC9E,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAA2C,0BAA0B,CAAC;oBACpG,CAAC,CAAC,0BAA0B,CAAC;gBAEjC,IAAI,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,OAAO,eAAe,CAAC,KAAK,CAAC;wBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;qBAClC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC5C,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,IAAI,2BAAkB,CACxB,IAAA,MAAC,EAAA,0GAA2G,0BAA2B,qBAAsB,CAAE,EAAE,CACpK,CAAC;YACN,CAAC,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAY;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,CACb,IAAA,mBAAM,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAA,qBAAQ,EAAC,SAAS,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC,CAC7D,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,GAAG,MAA0B;QAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,eAAgC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW,CAA0B,SAAqC,EAAE,OAAqB;QAC7F,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;;AAnTL,4BAoTC"}
1
+ {"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CorrelationId } from './CorrelationId';
2
+ export interface CorrelationIdFactory {
3
+ /**
4
+ * Creates a new CorrelationId
5
+ */
6
+ create(): CorrelationId;
7
+ }
8
+ //# sourceMappingURL=CorrelationIdFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CorrelationIdFactory.d.ts","sourceRoot":"","sources":["../../src/model/CorrelationIdFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,MAAM,IAAI,aAAa,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CorrelationIdFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CorrelationIdFactory.js","sourceRoot":"","sources":["../../src/model/CorrelationIdFactory.ts"],"names":[],"mappings":""}
@@ -4,6 +4,7 @@ export * from './Artifact';
4
4
  export * from './BusinessRule';
5
5
  export * from './Category';
6
6
  export * from './CorrelationId';
7
+ export * from './CorrelationIdFactory';
7
8
  export * from './Description';
8
9
  export * from './Name';
9
10
  export * from './outcomes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAEA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAEA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC"}
@@ -21,6 +21,7 @@ __exportStar(require("./Artifact"), exports);
21
21
  __exportStar(require("./BusinessRule"), exports);
22
22
  __exportStar(require("./Category"), exports);
23
23
  __exportStar(require("./CorrelationId"), exports);
24
+ __exportStar(require("./CorrelationIdFactory"), exports);
24
25
  __exportStar(require("./Description"), exports);
25
26
  __exportStar(require("./Name"), exports);
26
27
  __exportStar(require("./outcomes"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;;;;;;;;;;;AAE/C,oDAAkC;AAClC,8CAA4B;AAC5B,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B;AAC3B,kDAAgC;AAChC,gDAA8B;AAC9B,yCAAuB;AACvB,6CAA2B;AAC3B,oDAAkC;AAClC,uDAAqC;AACrC,yCAAuB;AACvB,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;;;;;;;;;;;AAE/C,oDAAkC;AAClC,8CAA4B;AAC5B,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B;AAC3B,kDAAgC;AAChC,yDAAuC;AACvC,gDAA8B;AAC9B,yCAAuB;AACvB,6CAA2B;AAC3B,oDAAkC;AAClC,uDAAqC;AACrC,yCAAuB;AACvB,qDAAmC"}
@@ -0,0 +1,11 @@
1
+ import { Tag } from './Tag';
2
+ /**
3
+ * Used to categorise tests by the project they belong to.
4
+ *
5
+ * @access public
6
+ */
7
+ export declare class ProjectTag extends Tag {
8
+ static readonly Type = "project";
9
+ constructor(projectName: string);
10
+ }
11
+ //# sourceMappingURL=ProjectTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectTag.d.ts","sourceRoot":"","sources":["../../../src/model/tags/ProjectTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,GAAG;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa;gBAErB,WAAW,EAAE,MAAM;CAGlC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectTag = void 0;
4
+ const Tag_1 = require("./Tag");
5
+ /**
6
+ * Used to categorise tests by the project they belong to.
7
+ *
8
+ * @access public
9
+ */
10
+ class ProjectTag extends Tag_1.Tag {
11
+ static Type = 'project';
12
+ constructor(projectName) {
13
+ super(projectName, ProjectTag.Type);
14
+ }
15
+ }
16
+ exports.ProjectTag = ProjectTag;
17
+ //# sourceMappingURL=ProjectTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectTag.js","sourceRoot":"","sources":["../../../src/model/tags/ProjectTag.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAE5B;;;;GAIG;AACH,MAAa,UAAW,SAAQ,SAAG;IAC/B,MAAM,CAAU,IAAI,GAAG,SAAS,CAAC;IAEjC,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AALL,gCAMC"}
@@ -6,6 +6,7 @@ export * from './FeatureTag';
6
6
  export * from './IssueTag';
7
7
  export * from './ManualTag';
8
8
  export * from './PlatformTag';
9
+ export * from './ProjectTag';
9
10
  export * from './Tag';
10
11
  export * from './Tags';
11
12
  export * from './ThemeTag';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/tags/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/tags/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
@@ -22,6 +22,7 @@ __exportStar(require("./FeatureTag"), exports);
22
22
  __exportStar(require("./IssueTag"), exports);
23
23
  __exportStar(require("./ManualTag"), exports);
24
24
  __exportStar(require("./PlatformTag"), exports);
25
+ __exportStar(require("./ProjectTag"), exports);
25
26
  __exportStar(require("./Tag"), exports);
26
27
  __exportStar(require("./Tags"), exports);
27
28
  __exportStar(require("./ThemeTag"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,kDAAgC;AAChC,wDAAsC;AACtC,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B;AAC5B,gDAA8B;AAC9B,wCAAsB;AACtB,yCAAuB;AACvB,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,kDAAgC;AAChC,wDAAsC;AACtC,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B;AAC5B,gDAA8B;AAC9B,+CAA6B;AAC7B,wCAAsB;AACtB,yCAAuB;AACvB,6CAA2B"}
@@ -86,13 +86,13 @@ import type { Actor } from '../screenplay';
86
86
  * ```ts
87
87
  * import { beforeEach } from 'mocha'
88
88
  * import { engage, Actor, Cast } from '@serenity-js/core'
89
- * import { BrowseTheWebWithPlaywright, PlaywrightOptions } from '@serenity-js/playwright'
89
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
90
90
  * import { Browser, chromium } from 'playwright'
91
91
  *
92
92
  * export class UIActors implements Cast {
93
93
  * constructor(
94
94
  * private readonly browser: Browser,
95
- * private readonly options?: PlaywrightOptions,
95
+ * private readonly options?: ExtraBrowserContextOptions,
96
96
  * ) {
97
97
  * }
98
98
  *
@@ -114,23 +114,28 @@ import type { Actor } from '../screenplay';
114
114
  * ```ts
115
115
  * import { beforeEach } from 'mocha'
116
116
  * import { actorCalled, engage, Cast } from '@serenity-js/core'
117
- * import { BrowseTheWebWithPlaywright } from '@serenity-js/playwright'
117
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
118
118
  * import { CallAnApi } from '@serenity-js/rest'
119
- * import { Browser, chromium } from 'playwright'
119
+ * import { Browser, BrowserContextOptions, chromium } from 'playwright'
120
120
  *
121
121
  * class Actors implements Cast {
122
122
  * constructor(
123
123
  * private readonly browser: Browser,
124
- * private readonly options: PlaywrightOptions,
124
+ * private readonly contextOptions: BrowserContextOptions,
125
+ * private readonly extraContextOptions: ExtraBrowserContextOptions,
125
126
  * ) {
126
127
  * }
127
128
  *
128
129
  * prepare(actor: Actor) {
129
130
  * switch (actor.name) {
130
131
  * case 'James':
131
- * return actor.whoCan(BrowseTheWebWithPlaywright.using(this.browser, this.options));
132
+ * return actor.whoCan(BrowseTheWebWithPlaywright.using(
133
+ * this.browser,
134
+ * this.contextOptions,
135
+ * this.extraContextOptions
136
+ * ));
132
137
  * default:
133
- * return actor.whoCan(CallAnApi.at(this.options.baseURL));
138
+ * return actor.whoCan(CallAnApi.at(this.contextOptions.baseURL));
134
139
  * }
135
140
  * }
136
141
  * }
@@ -1 +1 @@
1
- {"version":3,"file":"Cast.d.ts","sourceRoot":"","sources":["../../src/stage/Cast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkJG;AACH,8BAAsB,IAAI;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI;IAQ5D;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;CACxC"}
1
+ {"version":3,"file":"Cast.d.ts","sourceRoot":"","sources":["../../src/stage/Cast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuJG;AACH,8BAAsB,IAAI;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI;IAQ5D;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;CACxC"}
package/lib/stage/Cast.js CHANGED
@@ -88,13 +88,13 @@ exports.Cast = void 0;
88
88
  * ```ts
89
89
  * import { beforeEach } from 'mocha'
90
90
  * import { engage, Actor, Cast } from '@serenity-js/core'
91
- * import { BrowseTheWebWithPlaywright, PlaywrightOptions } from '@serenity-js/playwright'
91
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
92
92
  * import { Browser, chromium } from 'playwright'
93
93
  *
94
94
  * export class UIActors implements Cast {
95
95
  * constructor(
96
96
  * private readonly browser: Browser,
97
- * private readonly options?: PlaywrightOptions,
97
+ * private readonly options?: ExtraBrowserContextOptions,
98
98
  * ) {
99
99
  * }
100
100
  *
@@ -116,23 +116,28 @@ exports.Cast = void 0;
116
116
  * ```ts
117
117
  * import { beforeEach } from 'mocha'
118
118
  * import { actorCalled, engage, Cast } from '@serenity-js/core'
119
- * import { BrowseTheWebWithPlaywright } from '@serenity-js/playwright'
119
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
120
120
  * import { CallAnApi } from '@serenity-js/rest'
121
- * import { Browser, chromium } from 'playwright'
121
+ * import { Browser, BrowserContextOptions, chromium } from 'playwright'
122
122
  *
123
123
  * class Actors implements Cast {
124
124
  * constructor(
125
125
  * private readonly browser: Browser,
126
- * private readonly options: PlaywrightOptions,
126
+ * private readonly contextOptions: BrowserContextOptions,
127
+ * private readonly extraContextOptions: ExtraBrowserContextOptions,
127
128
  * ) {
128
129
  * }
129
130
  *
130
131
  * prepare(actor: Actor) {
131
132
  * switch (actor.name) {
132
133
  * case 'James':
133
- * return actor.whoCan(BrowseTheWebWithPlaywright.using(this.browser, this.options));
134
+ * return actor.whoCan(BrowseTheWebWithPlaywright.using(
135
+ * this.browser,
136
+ * this.contextOptions,
137
+ * this.extraContextOptions
138
+ * ));
134
139
  * default:
135
- * return actor.whoCan(CallAnApi.at(this.options.baseURL));
140
+ * return actor.whoCan(CallAnApi.at(this.contextOptions.baseURL));
136
141
  * }
137
142
  * }
138
143
  * }
@@ -1 +1 @@
1
- {"version":3,"file":"Cast.js","sourceRoot":"","sources":["../../src/stage/Cast.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkJG;AACH,MAAsB,IAAI;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAwC;QACjD,OAAO,IAAI,MAAM,WAAY,SAAQ,IAAI;YACrC,OAAO,CAAC,KAAY;gBAChB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;SACJ,CAAA;IACL,CAAC;CAWJ;AAzBD,oBAyBC"}
1
+ {"version":3,"file":"Cast.js","sourceRoot":"","sources":["../../src/stage/Cast.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuJG;AACH,MAAsB,IAAI;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAwC;QACjD,OAAO,IAAI,MAAM,WAAY,SAAQ,IAAI;YACrC,OAAO,CAAC,KAAY;gBAChB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;SACJ,CAAA;IACL,CAAC;CAWJ;AAzBD,oBAyBC"}
@@ -1,6 +1,7 @@
1
- import { type ErrorFactory, type ErrorOptions, type RuntimeError } from '../errors';
1
+ import type { SerenityConfig } from '../config';
2
+ import { ErrorFactory, type ErrorOptions, type RuntimeError } from '../errors';
2
3
  import { type DomainEvent, type EmitsDomainEvents } from '../events';
3
- import { type ActivityDetails, CorrelationId } from '../model';
4
+ import { type ActivityDetails, CorrelationId, type CorrelationIdFactory } from '../model';
4
5
  import { Actor, type Clock, type Duration, type Timestamp } from '../screenplay';
5
6
  import type { ListensToDomainEvents } from '../stage';
6
7
  import type { Cast } from './Cast';
@@ -23,10 +24,11 @@ import type { StageManager } from './StageManager';
23
24
  */
24
25
  export declare class Stage implements EmitsDomainEvents {
25
26
  private cast;
26
- private readonly manager;
27
+ private manager;
27
28
  private errors;
28
29
  private readonly clock;
29
- private readonly interactionTimeout;
30
+ private interactionTimeout;
31
+ private readonly sceneIdFactory;
30
32
  static readonly unknownSceneId: CorrelationId;
31
33
  /**
32
34
  * Actors instantiated after the scene has started,
@@ -51,8 +53,10 @@ export declare class Stage implements EmitsDomainEvents {
51
53
  * @param errors
52
54
  * @param clock
53
55
  * @param interactionTimeout
56
+ * @param sceneIdFactory
54
57
  */
55
- constructor(cast: Cast, manager: StageManager, errors: ErrorFactory, clock: Clock, interactionTimeout: Duration);
58
+ constructor(cast: Cast, manager: StageManager, errors: ErrorFactory, clock: Clock, interactionTimeout: Duration, sceneIdFactory?: CorrelationIdFactory);
59
+ configure(options: Pick<SerenityConfig, 'actors' | 'cueTimeout' | 'interactionTimeout' | 'diffFormatter'>): void;
56
60
  /**
57
61
  * An alias for [`Stage.actor`](https://serenity-js.org/api/core/class/Stage/#actor)
58
62
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,YAAY,EAA0B,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAChI,OAAO,EAMH,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAIzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAQ,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAgB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,KAAM,YAAW,iBAAiB;IAmCvC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IArCvC,gBAAuB,cAAc,gBAA+B;IAEpE;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAgD;IAE1E;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgD;IAEzE,OAAO,CAAC,aAAa,CAA8C;IAEnE;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAoB;IAE/C,OAAO,CAAC,eAAe,CAA8D;IAErF,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;;;;OAMG;gBAES,IAAI,EAAE,IAAI,EACD,OAAO,EAAE,YAAY,EAC9B,MAAM,EAAE,YAAY,EACX,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,QAAQ;IASjD;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IA2C1B;;;;;;OAMG;IACH,sBAAsB,IAAI,KAAK;IAQ/B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAM1B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,SAAS,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAInD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAM7C,OAAO,CAAC,cAAc;IAsBtB;;;OAGG;IACH,WAAW,IAAI,SAAS;IAIxB;;;;;;;;;OASG;IACH,gBAAgB,IAAI,aAAa;IAOjC;;;;;OAKG;IACH,cAAc,IAAI,aAAa;IAI/B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IASpE;;;;;OAKG;IACH,iBAAiB,IAAI,aAAa;IAQlC;;;;;;;OAOG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAOtG,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;YAUX,OAAO;IAuCrB,OAAO,CAAC,MAAM;CAKjB"}
1
+ {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ class Stage {
28
28
  errors;
29
29
  clock;
30
30
  interactionTimeout;
31
+ sceneIdFactory;
31
32
  static unknownSceneId = new model_1.CorrelationId('unknown');
32
33
  /**
33
34
  * Actors instantiated after the scene has started,
@@ -52,18 +53,33 @@ class Stage {
52
53
  * @param errors
53
54
  * @param clock
54
55
  * @param interactionTimeout
56
+ * @param sceneIdFactory
55
57
  */
56
- constructor(cast, manager, errors, clock, interactionTimeout) {
58
+ constructor(cast, manager, errors, clock, interactionTimeout, sceneIdFactory = model_1.CorrelationId) {
57
59
  this.cast = cast;
58
60
  this.manager = manager;
59
61
  this.errors = errors;
60
62
  this.clock = clock;
61
63
  this.interactionTimeout = interactionTimeout;
64
+ this.sceneIdFactory = sceneIdFactory;
62
65
  (0, tiny_types_1.ensure)('Cast', cast, (0, tiny_types_1.isDefined)());
63
66
  (0, tiny_types_1.ensure)('StageManager', manager, (0, tiny_types_1.isDefined)());
64
67
  (0, tiny_types_1.ensure)('ErrorFactory', errors, (0, tiny_types_1.isDefined)());
65
68
  (0, tiny_types_1.ensure)('Clock', clock, (0, tiny_types_1.isDefined)());
66
69
  (0, tiny_types_1.ensure)('interactionTimeout', interactionTimeout, (0, tiny_types_1.isDefined)());
70
+ (0, tiny_types_1.ensure)('sceneIdFactory', sceneIdFactory, (0, tiny_types_1.isDefined)());
71
+ }
72
+ configure(options) {
73
+ this.interactionTimeout = options.interactionTimeout || this.interactionTimeout;
74
+ if (options.actors) {
75
+ this.engage(options.actors);
76
+ }
77
+ if (options.cueTimeout) {
78
+ this.manager.configure({ cueTimeout: options.cueTimeout });
79
+ }
80
+ if (options.diffFormatter) {
81
+ this.errors = new errors_1.ErrorFactory(options.diffFormatter);
82
+ }
67
83
  }
68
84
  /**
69
85
  * An alias for [`Stage.actor`](https://serenity-js.org/api/core/class/Stage/#actor)
@@ -131,8 +147,7 @@ class Stage {
131
147
  * @param actors
132
148
  */
133
149
  engage(actors) {
134
- (0, tiny_types_1.ensure)('Cast', actors, (0, tiny_types_1.isDefined)());
135
- this.cast = actors;
150
+ this.cast = (0, tiny_types_1.ensure)('actors', actors, (0, tiny_types_1.isDefined)(), (0, tiny_types_1.property)('prepare', (0, tiny_types_1.isDefined)()));
136
151
  }
137
152
  /**
138
153
  * Assigns listeners to be notified of [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
@@ -188,8 +203,7 @@ class Stage {
188
203
  * - [`Stage.currentSceneId`](https://serenity-js.org/api/core/class/Stage/#currentSceneId)
189
204
  */
190
205
  assignNewSceneId() {
191
- // todo: inject an id factory to make it easier to test
192
- this.currentScene = model_1.CorrelationId.create();
206
+ this.currentScene = this.sceneIdFactory.create();
193
207
  return this.currentScene;
194
208
  }
195
209
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,14 @@ import type { ListensToDomainEvents } from '../stage';
5
5
  * @group Stage
6
6
  */
7
7
  export declare class StageManager implements TellsTime {
8
- private readonly cueTimeout;
8
+ private cueTimeout;
9
9
  private readonly clock;
10
10
  private readonly subscribers;
11
11
  private readonly wip;
12
12
  constructor(cueTimeout: Duration, clock: Clock);
13
+ configure(options: {
14
+ cueTimeout: Duration;
15
+ }): void;
13
16
  register(...subscribers: ListensToDomainEvents[]): void;
14
17
  deregister(subscriber: ListensToDomainEvents): void;
15
18
  notifyOf(event: DomainEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"StageManager.d.ts","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAI9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAY,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEG,UAAU,EAAE,QAAQ,EAAmB,KAAK,EAAE,KAAK;IAIhF,QAAQ,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAIvD,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI;IAInD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrC,WAAW,IAAI,SAAS;CAG3B"}
1
+ {"version":3,"file":"StageManager.d.ts","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAI9B,OAAO,CAAC,UAAU;IAAY,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHhE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEN,UAAU,EAAE,QAAQ,EAAmB,KAAK,EAAE,KAAK;IAIvE,SAAS,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI;IAKlD,QAAQ,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAIvD,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI;IAInD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrC,WAAW,IAAI,SAAS;CAG3B"}
@@ -15,6 +15,10 @@ class StageManager {
15
15
  this.clock = clock;
16
16
  this.wip = new WIP(cueTimeout, clock);
17
17
  }
18
+ configure(options) {
19
+ this.cueTimeout = options.cueTimeout;
20
+ this.wip.configure(options);
21
+ }
18
22
  register(...subscribers) {
19
23
  this.subscribers.push(...subscribers);
20
24
  }
@@ -68,6 +72,9 @@ class WIP {
68
72
  this.cueTimeout = cueTimeout;
69
73
  this.clock = clock;
70
74
  }
75
+ configure(options) {
76
+ this.cueTimeout = options.cueTimeout;
77
+ }
71
78
  recordIfAsync(event) {
72
79
  if (event instanceof events_1.AsyncOperationAttempted) {
73
80
  this.set(event.correlationId, {
@@ -1 +1 @@
1
- {"version":3,"file":"StageManager.js","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StageManager.js","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/core",
3
- "version": "3.31.17",
3
+ "version": "3.32.0",
4
4
  "description": "The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -59,7 +59,7 @@
59
59
  "assertion-error-formatter": "3.0.0",
60
60
  "c8": "10.1.3",
61
61
  "memfs": "4.17.2",
62
- "mocha": "11.6.0",
62
+ "mocha": "11.7.0",
63
63
  "mocha-multi": "1.1.7",
64
64
  "ts-node": "10.9.2",
65
65
  "typescript": "5.8.3"
@@ -75,5 +75,5 @@
75
75
  "engines": {
76
76
  "node": "^18.12 || ^20 || ^22"
77
77
  },
78
- "gitHead": "317a2371b182d2182225eada1d1a9110a74a779f"
78
+ "gitHead": "2b6464752f0a65ccf4b9f83ce1b309e14e9c6293"
79
79
  }
package/src/Serenity.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ensure, isDefined, isInstanceOf, property } from 'tiny-types';
1
+ import { ensure, isInstanceOf } from 'tiny-types';
2
2
 
3
3
  import type { OutputStream } from './adapter';
4
4
  import type { SerenityConfig } from './config';
@@ -6,7 +6,7 @@ import type { ErrorOptions, RuntimeError } from './errors';
6
6
  import { ConfigurationError, ErrorFactory, NoOpDiffFormatter } from './errors';
7
7
  import type { DomainEvent, EmitsDomainEvents } from './events';
8
8
  import { ClassDescriptionParser, ClassLoader, d, FileSystem, has, ModuleLoader, Path } from './io';
9
- import type { ActivityDetails, CorrelationId } from './model';
9
+ import { type ActivityDetails, CorrelationId, type CorrelationIdFactory } from './model';
10
10
  import type { Actor, Timestamp } from './screenplay';
11
11
  import { Clock, Duration } from './screenplay';
12
12
  import type { StageCrewMember, StageCrewMemberBuilder } from './stage';
@@ -33,10 +33,12 @@ export class Serenity implements EmitsDomainEvents {
33
33
  /**
34
34
  * @param clock
35
35
  * @param cwd
36
+ * @param sceneIdFactory
36
37
  */
37
38
  constructor(
38
39
  private readonly clock: Clock = new Clock(),
39
40
  cwd: string = process.cwd(),
41
+ private readonly sceneIdFactory: CorrelationIdFactory = CorrelationId,
40
42
  ) {
41
43
  this.stage = new Stage(
42
44
  Serenity.defaultActors,
@@ -44,6 +46,7 @@ export class Serenity implements EmitsDomainEvents {
44
46
  new ErrorFactory(),
45
47
  clock,
46
48
  Serenity.defaultInteractionTimeout,
49
+ sceneIdFactory,
47
50
  );
48
51
 
49
52
  this.classLoader = new ClassLoader(
@@ -80,17 +83,12 @@ export class Serenity implements EmitsDomainEvents {
80
83
  this.outputStream = config.outputStream;
81
84
  }
82
85
 
83
- this.stage = new Stage(
84
- Serenity.defaultActors,
85
- new StageManager(cueTimeout, this.clock),
86
- new ErrorFactory(config.diffFormatter ?? new NoOpDiffFormatter()),
87
- this.clock,
86
+ this.stage.configure({
87
+ actors: config.actors ?? Serenity.defaultActors,
88
+ cueTimeout,
88
89
  interactionTimeout,
89
- );
90
-
91
- if (config.actors) {
92
- this.engage(config.actors);
93
- }
90
+ diffFormatter: config.diffFormatter ?? new NoOpDiffFormatter(),
91
+ });
94
92
 
95
93
  if (Array.isArray(config.crew)) {
96
94
  this.stage.assign(
@@ -188,9 +186,7 @@ export class Serenity implements EmitsDomainEvents {
188
186
  * @param actors
189
187
  */
190
188
  engage(actors: Cast): void {
191
- this.stage.engage(
192
- ensure('actors', actors, property('prepare', isDefined())),
193
- );
189
+ this.stage.engage(actors);
194
190
  }
195
191
 
196
192
  /**
@@ -252,7 +248,7 @@ export class Serenity implements EmitsDomainEvents {
252
248
  * The name of the actor to instantiate or retrieve
253
249
  */
254
250
  theActorCalled(name: string): Actor {
255
- return this.stage.theActorCalled(name);
251
+ return this.stage.actor(name);
256
252
  }
257
253
 
258
254
  /**
@@ -0,0 +1,8 @@
1
+ import type { CorrelationId } from './CorrelationId';
2
+
3
+ export interface CorrelationIdFactory {
4
+ /**
5
+ * Creates a new CorrelationId
6
+ */
7
+ create(): CorrelationId;
8
+ }
@@ -6,6 +6,7 @@ export * from './Artifact';
6
6
  export * from './BusinessRule';
7
7
  export * from './Category';
8
8
  export * from './CorrelationId';
9
+ export * from './CorrelationIdFactory';
9
10
  export * from './Description';
10
11
  export * from './Name';
11
12
  export * from './outcomes';
@@ -0,0 +1,14 @@
1
+ import { Tag } from './Tag';
2
+
3
+ /**
4
+ * Used to categorise tests by the project they belong to.
5
+ *
6
+ * @access public
7
+ */
8
+ export class ProjectTag extends Tag {
9
+ static readonly Type = 'project';
10
+
11
+ constructor(projectName: string) {
12
+ super(projectName, ProjectTag.Type);
13
+ }
14
+ }
@@ -6,6 +6,7 @@ export * from './FeatureTag';
6
6
  export * from './IssueTag';
7
7
  export * from './ManualTag';
8
8
  export * from './PlatformTag';
9
+ export * from './ProjectTag';
9
10
  export * from './Tag';
10
11
  export * from './Tags';
11
12
  export * from './ThemeTag';
package/src/stage/Cast.ts CHANGED
@@ -87,13 +87,13 @@ import type { Actor } from '../screenplay';
87
87
  * ```ts
88
88
  * import { beforeEach } from 'mocha'
89
89
  * import { engage, Actor, Cast } from '@serenity-js/core'
90
- * import { BrowseTheWebWithPlaywright, PlaywrightOptions } from '@serenity-js/playwright'
90
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
91
91
  * import { Browser, chromium } from 'playwright'
92
92
  *
93
93
  * export class UIActors implements Cast {
94
94
  * constructor(
95
95
  * private readonly browser: Browser,
96
- * private readonly options?: PlaywrightOptions,
96
+ * private readonly options?: ExtraBrowserContextOptions,
97
97
  * ) {
98
98
  * }
99
99
  *
@@ -115,23 +115,28 @@ import type { Actor } from '../screenplay';
115
115
  * ```ts
116
116
  * import { beforeEach } from 'mocha'
117
117
  * import { actorCalled, engage, Cast } from '@serenity-js/core'
118
- * import { BrowseTheWebWithPlaywright } from '@serenity-js/playwright'
118
+ * import { BrowseTheWebWithPlaywright, ExtraBrowserContextOptions } from '@serenity-js/playwright'
119
119
  * import { CallAnApi } from '@serenity-js/rest'
120
- * import { Browser, chromium } from 'playwright'
120
+ * import { Browser, BrowserContextOptions, chromium } from 'playwright'
121
121
  *
122
122
  * class Actors implements Cast {
123
123
  * constructor(
124
124
  * private readonly browser: Browser,
125
- * private readonly options: PlaywrightOptions,
125
+ * private readonly contextOptions: BrowserContextOptions,
126
+ * private readonly extraContextOptions: ExtraBrowserContextOptions,
126
127
  * ) {
127
128
  * }
128
129
  *
129
130
  * prepare(actor: Actor) {
130
131
  * switch (actor.name) {
131
132
  * case 'James':
132
- * return actor.whoCan(BrowseTheWebWithPlaywright.using(this.browser, this.options));
133
+ * return actor.whoCan(BrowseTheWebWithPlaywright.using(
134
+ * this.browser,
135
+ * this.contextOptions,
136
+ * this.extraContextOptions
137
+ * ));
133
138
  * default:
134
- * return actor.whoCan(CallAnApi.at(this.options.baseURL));
139
+ * return actor.whoCan(CallAnApi.at(this.contextOptions.baseURL));
135
140
  * }
136
141
  * }
137
142
  * }
@@ -1,6 +1,14 @@
1
- import { ensure, isDefined } from 'tiny-types';
1
+ import { ensure, isDefined, property } from 'tiny-types';
2
2
 
3
- import { ConfigurationError, type ErrorFactory, type ErrorOptions, LogicError, RaiseErrors,type RuntimeError } from '../errors';
3
+ import type { SerenityConfig } from '../config';
4
+ import {
5
+ ConfigurationError,
6
+ ErrorFactory,
7
+ type ErrorOptions,
8
+ LogicError,
9
+ RaiseErrors,
10
+ type RuntimeError
11
+ } from '../errors';
4
12
  import {
5
13
  ActorEntersStage,
6
14
  ActorStageExitAttempted,
@@ -13,7 +21,7 @@ import {
13
21
  SceneStarts,
14
22
  TestRunFinishes
15
23
  } from '../events';
16
- import { type ActivityDetails, CorrelationId, Name } from '../model';
24
+ import { type ActivityDetails, CorrelationId, type CorrelationIdFactory, Name } from '../model';
17
25
  import { Actor, type Clock, type Duration, ScheduleWork, type Timestamp } from '../screenplay';
18
26
  import type { ListensToDomainEvents } from '../stage';
19
27
  import type { Cast } from './Cast';
@@ -68,19 +76,38 @@ export class Stage implements EmitsDomainEvents {
68
76
  * @param errors
69
77
  * @param clock
70
78
  * @param interactionTimeout
79
+ * @param sceneIdFactory
71
80
  */
72
81
  constructor(
73
82
  private cast: Cast,
74
- private readonly manager: StageManager,
83
+ private manager: StageManager,
75
84
  private errors: ErrorFactory,
76
85
  private readonly clock: Clock,
77
- private readonly interactionTimeout: Duration,
86
+ private interactionTimeout: Duration,
87
+ private readonly sceneIdFactory: CorrelationIdFactory = CorrelationId,
78
88
  ) {
79
89
  ensure('Cast', cast, isDefined());
80
90
  ensure('StageManager', manager, isDefined());
81
91
  ensure('ErrorFactory', errors, isDefined());
82
92
  ensure('Clock', clock, isDefined());
83
93
  ensure('interactionTimeout', interactionTimeout, isDefined());
94
+ ensure('sceneIdFactory', sceneIdFactory, isDefined());
95
+ }
96
+
97
+ configure(options: Pick<SerenityConfig, 'actors' | 'cueTimeout' | 'interactionTimeout' | 'diffFormatter'>): void {
98
+ this.interactionTimeout = options.interactionTimeout || this.interactionTimeout;
99
+
100
+ if (options.actors) {
101
+ this.engage(options.actors);
102
+ }
103
+
104
+ if (options.cueTimeout) {
105
+ this.manager.configure({ cueTimeout: options.cueTimeout })
106
+ }
107
+
108
+ if (options.diffFormatter) {
109
+ this.errors = new ErrorFactory(options.diffFormatter);
110
+ }
84
111
  }
85
112
 
86
113
  /**
@@ -171,9 +198,7 @@ export class Stage implements EmitsDomainEvents {
171
198
  * @param actors
172
199
  */
173
200
  engage(actors: Cast): void {
174
- ensure('Cast', actors, isDefined());
175
-
176
- this.cast = actors;
201
+ this.cast = ensure('actors', actors, isDefined(), property('prepare', isDefined()));
177
202
  }
178
203
 
179
204
  /**
@@ -239,8 +264,7 @@ export class Stage implements EmitsDomainEvents {
239
264
  * - [`Stage.currentSceneId`](https://serenity-js.org/api/core/class/Stage/#currentSceneId)
240
265
  */
241
266
  assignNewSceneId(): CorrelationId {
242
- // todo: inject an id factory to make it easier to test
243
- this.currentScene = CorrelationId.create();
267
+ this.currentScene = this.sceneIdFactory.create();
244
268
 
245
269
  return this.currentScene;
246
270
  }
@@ -11,10 +11,15 @@ export class StageManager implements TellsTime {
11
11
  private readonly subscribers: ListensToDomainEvents[] = [];
12
12
  private readonly wip: WIP;
13
13
 
14
- constructor(private readonly cueTimeout: Duration, private readonly clock: Clock) {
14
+ constructor(private cueTimeout: Duration, private readonly clock: Clock) {
15
15
  this.wip = new WIP(cueTimeout, clock);
16
16
  }
17
17
 
18
+ configure(options: { cueTimeout: Duration }): void {
19
+ this.cueTimeout = options.cueTimeout;
20
+ this.wip.configure(options);
21
+ }
22
+
18
23
  register(...subscribers: ListensToDomainEvents[]): void {
19
24
  this.subscribers.push(...subscribers);
20
25
  }
@@ -79,11 +84,15 @@ class WIP {
79
84
  private readonly failedOperations: FailedAsyncOperationDetails[] = [];
80
85
 
81
86
  constructor(
82
- private readonly cueTimeout: Duration,
87
+ private cueTimeout: Duration,
83
88
  private readonly clock: Clock,
84
89
  ) {
85
90
  }
86
91
 
92
+ configure(options: { cueTimeout: Duration }) {
93
+ this.cueTimeout = options.cueTimeout;
94
+ }
95
+
87
96
  recordIfAsync(event: DomainEvent): void {
88
97
  if (event instanceof AsyncOperationAttempted) {
89
98
  this.set(event.correlationId, {
@@ -151,7 +160,7 @@ class WIP {
151
160
  return Array.from(this.wip.values());
152
161
  }
153
162
 
154
- private header(numberOfFailures): string {
163
+ private header(numberOfFailures: number): string {
155
164
  return numberOfFailures === 1
156
165
  ? `1 async operation has failed to complete`
157
166
  : `${ numberOfFailures } async operations have failed to complete`;