@serenity-js/core 3.25.0 → 3.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +1 -1
- package/lib/Serenity.d.ts +22 -22
- package/lib/Serenity.js +22 -22
- package/lib/adapter/OutputStream.d.ts +5 -4
- package/lib/adapter/OutputStream.d.ts.map +1 -1
- package/lib/adapter/TestRunnerAdapter.d.ts +2 -2
- package/lib/config/ClassDescription.d.ts +1 -1
- package/lib/config/SerenityConfig.d.ts +22 -20
- package/lib/config/SerenityConfig.d.ts.map +1 -1
- package/lib/config/SerenityConfig.js +22 -20
- package/lib/config/SerenityConfig.js.map +1 -1
- package/lib/errors/ErrorFactory.d.ts +2 -1
- package/lib/errors/ErrorFactory.d.ts.map +1 -1
- package/lib/errors/ErrorFactory.js +2 -1
- package/lib/errors/ErrorFactory.js.map +1 -1
- package/lib/errors/RaiseErrors.d.ts +9 -9
- package/lib/errors/RaiseErrors.js +9 -9
- package/lib/errors/diff/AnsiDiffFormatter.d.ts +1 -1
- package/lib/errors/diff/AnsiDiffFormatter.js +1 -1
- package/lib/errors/diff/DiffFormatter.d.ts +1 -1
- package/lib/errors/diff/NoOpDiffFormatter.d.ts +1 -1
- package/lib/errors/diff/NoOpDiffFormatter.js +1 -1
- package/lib/errors/model/AssertionError.d.ts +1 -1
- package/lib/errors/model/AssertionError.js +1 -1
- package/lib/errors/model/ConfigurationError.d.ts +1 -1
- package/lib/errors/model/ConfigurationError.js +1 -1
- package/lib/errors/model/ImplementationPendingError.d.ts +3 -3
- package/lib/errors/model/ImplementationPendingError.js +3 -3
- package/lib/errors/model/ListItemNotFoundError.d.ts +2 -2
- package/lib/errors/model/ListItemNotFoundError.js +2 -2
- package/lib/errors/model/LogicError.d.ts +2 -2
- package/lib/errors/model/LogicError.js +2 -2
- package/lib/errors/model/OperationInterruptedError.d.ts +2 -2
- package/lib/errors/model/OperationInterruptedError.js +2 -2
- package/lib/errors/model/RuntimeError.d.ts +2 -2
- package/lib/errors/model/RuntimeError.js +2 -2
- package/lib/errors/model/TestCompromisedError.d.ts +1 -1
- package/lib/errors/model/TestCompromisedError.js +1 -1
- package/lib/errors/model/TimeoutExpiredError.d.ts +2 -2
- package/lib/errors/model/TimeoutExpiredError.js +2 -2
- package/lib/errors/model/UnknownError.d.ts +1 -1
- package/lib/errors/model/UnknownError.js +1 -1
- package/lib/events/ActivityFinished.d.ts +1 -1
- package/lib/events/ActivityFinished.js +1 -1
- package/lib/events/ActivityStarts.d.ts +1 -1
- package/lib/events/ActivityStarts.js +1 -1
- package/lib/events/BusinessRuleDetected.d.ts +1 -1
- package/lib/events/BusinessRuleDetected.js +1 -1
- package/lib/events/SceneFinishes.d.ts +2 -1
- package/lib/events/SceneFinishes.d.ts.map +1 -1
- package/lib/events/SceneFinishes.js +2 -1
- package/lib/events/SceneFinishes.js.map +1 -1
- package/lib/instance.d.ts +30 -30
- package/lib/instance.js +30 -30
- package/lib/io/format.d.ts +15 -6
- package/lib/io/format.d.ts.map +1 -1
- package/lib/io/format.js +15 -6
- package/lib/io/format.js.map +1 -1
- package/lib/io/loader/ModuleLoader.d.ts +1 -1
- package/lib/io/loader/ModuleLoader.js +1 -1
- package/lib/io/reflection/ValueInspector.d.ts +1 -1
- package/lib/io/reflection/ValueInspector.js +2 -2
- package/lib/io/reflection/ValueInspector.js.map +1 -1
- package/lib/io/stringified.d.ts +1 -1
- package/lib/io/stringified.js +1 -1
- package/lib/io/trimmed.d.ts +1 -1
- package/lib/io/trimmed.js +1 -1
- package/lib/model/artifacts/HTTPRequestResponse.d.ts +2 -2
- package/lib/model/artifacts/HTTPRequestResponse.js +1 -1
- package/lib/screenplay/Activity.d.ts +10 -10
- package/lib/screenplay/Activity.js +5 -5
- package/lib/screenplay/Actor.d.ts +28 -28
- package/lib/screenplay/Actor.js +28 -28
- package/lib/screenplay/Answerable.d.ts +1 -1
- package/lib/screenplay/Answered.d.ts +2 -2
- package/lib/screenplay/Interaction.d.ts +17 -17
- package/lib/screenplay/Interaction.js +12 -12
- package/lib/screenplay/Optional.d.ts +1 -1
- package/lib/screenplay/Question.d.ts +48 -45
- package/lib/screenplay/Question.d.ts.map +1 -1
- package/lib/screenplay/Question.js +39 -36
- package/lib/screenplay/Question.js.map +1 -1
- package/lib/screenplay/RecursivelyAnswered.d.ts +2 -2
- package/lib/screenplay/Task.d.ts +19 -19
- package/lib/screenplay/Task.js +15 -15
- package/lib/screenplay/WithAnswerableProperties.d.ts +2 -2
- package/lib/screenplay/abilities/Ability.d.ts +48 -46
- package/lib/screenplay/abilities/Ability.d.ts.map +1 -1
- package/lib/screenplay/abilities/Ability.js +48 -46
- package/lib/screenplay/abilities/Ability.js.map +1 -1
- package/lib/screenplay/abilities/AbilityType.d.ts +5 -5
- package/lib/screenplay/abilities/AnswerQuestions.d.ts +3 -3
- package/lib/screenplay/abilities/AnswerQuestions.js +3 -3
- package/lib/screenplay/abilities/CanHaveAbilities.d.ts +4 -4
- package/lib/screenplay/abilities/Discardable.d.ts +8 -8
- package/lib/screenplay/abilities/Initialisable.d.ts +11 -11
- package/lib/screenplay/abilities/PerformActivities.d.ts +3 -3
- package/lib/screenplay/abilities/PerformActivities.js +3 -3
- package/lib/screenplay/abilities/UsesAbilities.d.ts +6 -6
- package/lib/screenplay/activities/PerformsActivities.d.ts +7 -7
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts +4 -5
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts.map +1 -1
- package/lib/screenplay/debugging/Debug.d.ts +7 -6
- package/lib/screenplay/debugging/Debug.d.ts.map +1 -1
- package/lib/screenplay/debugging/Debug.js +7 -6
- package/lib/screenplay/debugging/Debug.js.map +1 -1
- package/lib/screenplay/debugging/DebuggingResult.d.ts +1 -1
- package/lib/screenplay/debugging/Log.d.ts +7 -5
- package/lib/screenplay/debugging/Log.d.ts.map +1 -1
- package/lib/screenplay/debugging/Log.js +7 -5
- package/lib/screenplay/debugging/Log.js.map +1 -1
- package/lib/screenplay/notes/Notepad.d.ts +13 -13
- package/lib/screenplay/notes/Notepad.js +13 -13
- package/lib/screenplay/notes/NotepadAdapter.d.ts +16 -16
- package/lib/screenplay/notes/NotepadAdapter.js +16 -16
- package/lib/screenplay/notes/TakeNotes.d.ts +9 -9
- package/lib/screenplay/notes/TakeNotes.js +9 -9
- package/lib/screenplay/notes/notes.d.ts +6 -6
- package/lib/screenplay/notes/notes.js +6 -6
- package/lib/screenplay/questions/AnswersQuestions.d.ts +4 -4
- package/lib/screenplay/questions/ChainableMetaQuestion.d.ts +6 -6
- package/lib/screenplay/questions/Check.d.ts +2 -2
- package/lib/screenplay/questions/Check.js +2 -2
- package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts +2 -2
- package/lib/screenplay/questions/Expectation.d.ts +17 -14
- package/lib/screenplay/questions/Expectation.d.ts.map +1 -1
- package/lib/screenplay/questions/Expectation.js +17 -14
- package/lib/screenplay/questions/Expectation.js.map +1 -1
- package/lib/screenplay/questions/List.d.ts +5 -5
- package/lib/screenplay/questions/List.js +5 -5
- package/lib/screenplay/questions/Masked.d.ts +4 -2
- package/lib/screenplay/questions/Masked.d.ts.map +1 -1
- package/lib/screenplay/questions/Masked.js +4 -2
- package/lib/screenplay/questions/Masked.js.map +1 -1
- package/lib/screenplay/questions/MetaQuestion.d.ts +9 -9
- package/lib/screenplay/questions/Unanswered.d.ts +2 -2
- package/lib/screenplay/questions/Unanswered.js +2 -2
- package/lib/screenplay/questions/expectations/ExpectationDetails.d.ts +1 -1
- package/lib/screenplay/questions/expectations/ExpectationDetails.js +1 -1
- package/lib/screenplay/questions/expectations/ExpectationMet.d.ts +1 -1
- package/lib/screenplay/questions/expectations/ExpectationMet.js +1 -1
- package/lib/screenplay/questions/expectations/ExpectationNotMet.d.ts +1 -1
- package/lib/screenplay/questions/expectations/ExpectationNotMet.js +1 -1
- package/lib/screenplay/questions/expectations/ExpectationOutcome.d.ts +2 -2
- package/lib/screenplay/questions/expectations/ExpectationOutcome.js +2 -2
- package/lib/screenplay/questions/tag-functions.d.ts +23 -21
- package/lib/screenplay/questions/tag-functions.d.ts.map +1 -1
- package/lib/screenplay/questions/tag-functions.js +5 -5
- package/lib/screenplay/questions/tag-functions.js.map +1 -1
- package/lib/screenplay/time/TellsTime.d.ts +4 -4
- package/lib/screenplay/time/abilities/ScheduleWork.d.ts +2 -2
- package/lib/screenplay/time/abilities/ScheduleWork.js +2 -2
- package/lib/screenplay/time/activities/Wait.d.ts +29 -27
- package/lib/screenplay/time/activities/Wait.d.ts.map +1 -1
- package/lib/screenplay/time/activities/Wait.js +29 -27
- package/lib/screenplay/time/activities/Wait.js.map +1 -1
- package/lib/screenplay/time/models/Clock.d.ts +4 -4
- package/lib/screenplay/time/models/Clock.js +4 -4
- package/lib/screenplay/time/models/Duration.d.ts +1 -1
- package/lib/screenplay/time/models/Duration.js +1 -1
- package/lib/screenplay/time/models/Timestamp.d.ts +2 -2
- package/lib/screenplay/time/models/Timestamp.js +2 -2
- package/lib/stage/Cast.d.ts +21 -21
- package/lib/stage/Cast.js +19 -19
- package/lib/stage/Extras.d.ts +1 -1
- package/lib/stage/Extras.js +1 -1
- package/lib/stage/ListensToDomainEvents.d.ts +7 -7
- package/lib/stage/Stage.d.ts +30 -30
- package/lib/stage/Stage.d.ts.map +1 -1
- package/lib/stage/Stage.js +30 -30
- package/lib/stage/Stage.js.map +1 -1
- package/lib/stage/StageCrewMember.d.ts +11 -11
- package/lib/stage/StageCrewMemberBuilder.d.ts +7 -7
- package/lib/stage/StageCrewMemberBuilderDependencies.d.ts +2 -2
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts +4 -4
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js +4 -4
- package/lib/stage/crew/stream-reporter/StreamReporter.d.ts +7 -7
- package/lib/stage/crew/stream-reporter/StreamReporter.js +7 -7
- package/package.json +4 -4
- package/src/Serenity.ts +22 -22
- package/src/adapter/OutputStream.ts +5 -4
- package/src/adapter/TestRunnerAdapter.ts +2 -2
- package/src/config/ClassDescription.ts +1 -1
- package/src/config/SerenityConfig.ts +22 -20
- package/src/errors/ErrorFactory.ts +2 -1
- package/src/errors/ErrorSerialiser.ts +3 -3
- package/src/errors/RaiseErrors.ts +9 -9
- package/src/errors/diff/AnsiDiffFormatter.ts +1 -1
- package/src/errors/diff/DiffFormatter.ts +1 -1
- package/src/errors/diff/NoOpDiffFormatter.ts +1 -1
- package/src/errors/model/AssertionError.ts +1 -1
- package/src/errors/model/ConfigurationError.ts +1 -1
- package/src/errors/model/ImplementationPendingError.ts +3 -3
- package/src/errors/model/ListItemNotFoundError.ts +2 -2
- package/src/errors/model/LogicError.ts +2 -2
- package/src/errors/model/OperationInterruptedError.ts +2 -2
- package/src/errors/model/RuntimeError.ts +2 -2
- package/src/errors/model/TestCompromisedError.ts +1 -1
- package/src/errors/model/TimeoutExpiredError.ts +2 -2
- package/src/errors/model/UnknownError.ts +1 -1
- package/src/events/ActivityFinished.ts +1 -1
- package/src/events/ActivityStarts.ts +1 -1
- package/src/events/BusinessRuleDetected.ts +1 -1
- package/src/events/SceneFinishes.ts +2 -1
- package/src/instance.ts +30 -30
- package/src/io/format.ts +15 -6
- package/src/io/loader/ModuleLoader.ts +1 -1
- package/src/io/reflection/ValueInspector.ts +3 -3
- package/src/io/stringified.ts +1 -1
- package/src/io/trimmed.ts +1 -1
- package/src/model/artifacts/HTTPRequestResponse.ts +2 -2
- package/src/screenplay/Activity.ts +10 -10
- package/src/screenplay/Actor.ts +28 -28
- package/src/screenplay/Answerable.ts +1 -1
- package/src/screenplay/Answered.ts +2 -2
- package/src/screenplay/Interaction.ts +17 -17
- package/src/screenplay/Optional.ts +1 -1
- package/src/screenplay/Question.ts +48 -45
- package/src/screenplay/RecursivelyAnswered.ts +2 -2
- package/src/screenplay/Task.ts +19 -19
- package/src/screenplay/WithAnswerableProperties.ts +2 -2
- package/src/screenplay/abilities/Ability.ts +48 -46
- package/src/screenplay/abilities/AbilityType.ts +5 -5
- package/src/screenplay/abilities/AnswerQuestions.ts +3 -3
- package/src/screenplay/abilities/CanHaveAbilities.ts +4 -4
- package/src/screenplay/abilities/Discardable.ts +8 -8
- package/src/screenplay/abilities/Initialisable.ts +11 -11
- package/src/screenplay/abilities/PerformActivities.ts +3 -3
- package/src/screenplay/abilities/UsesAbilities.ts +6 -6
- package/src/screenplay/activities/PerformsActivities.ts +7 -7
- package/src/screenplay/artifacts/CollectsArtifacts.ts +4 -5
- package/src/screenplay/debugging/Debug.ts +7 -6
- package/src/screenplay/debugging/DebuggingResult.ts +1 -1
- package/src/screenplay/debugging/Log.ts +7 -5
- package/src/screenplay/notes/Notepad.ts +13 -13
- package/src/screenplay/notes/NotepadAdapter.ts +16 -16
- package/src/screenplay/notes/TakeNotes.ts +9 -9
- package/src/screenplay/notes/notes.ts +6 -6
- package/src/screenplay/questions/AnswersQuestions.ts +4 -4
- package/src/screenplay/questions/ChainableMetaQuestion.ts +6 -6
- package/src/screenplay/questions/Check.ts +2 -2
- package/src/screenplay/questions/DescriptionFormattingOptions.ts +2 -2
- package/src/screenplay/questions/Expectation.ts +17 -14
- package/src/screenplay/questions/List.ts +5 -5
- package/src/screenplay/questions/Masked.ts +4 -2
- package/src/screenplay/questions/MetaQuestion.ts +9 -9
- package/src/screenplay/questions/Unanswered.ts +2 -2
- package/src/screenplay/questions/expectations/ExpectationDetails.ts +1 -1
- package/src/screenplay/questions/expectations/ExpectationMet.ts +1 -1
- package/src/screenplay/questions/expectations/ExpectationNotMet.ts +1 -1
- package/src/screenplay/questions/expectations/ExpectationOutcome.ts +2 -2
- package/src/screenplay/questions/tag-functions.ts +23 -21
- package/src/screenplay/time/TellsTime.ts +4 -4
- package/src/screenplay/time/abilities/ScheduleWork.ts +2 -2
- package/src/screenplay/time/activities/Wait.ts +29 -27
- package/src/screenplay/time/models/Clock.ts +4 -4
- package/src/screenplay/time/models/Duration.ts +1 -1
- package/src/screenplay/time/models/Timestamp.ts +2 -2
- package/src/stage/Cast.ts +21 -21
- package/src/stage/Extras.ts +1 -1
- package/src/stage/ListensToDomainEvents.ts +7 -7
- package/src/stage/Stage.ts +30 -30
- package/src/stage/StageCrewMember.ts +11 -11
- package/src/stage/StageCrewMemberBuilder.ts +7 -7
- package/src/stage/StageCrewMemberBuilderDependencies.ts +2 -2
- package/src/stage/crew/artifact-archiver/ArtifactArchiver.ts +4 -4
- package/src/stage/crew/stream-reporter/StreamReporter.ts +7 -7
|
@@ -9,12 +9,13 @@ import type { DescriptionFormattingOptions } from './DescriptionFormattingOption
|
|
|
9
9
|
import type { MetaQuestion } from './MetaQuestion';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Creates a single-line description of an
|
|
12
|
+
* Creates a single-line description of an [`Activity`](https://serenity-js.org/api/core/class/Activity/) by transforming
|
|
13
13
|
* a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates),
|
|
14
14
|
* parameterised with [primitive data types](https://developer.mozilla.org/en-US/docs/Glossary/Primitive),
|
|
15
15
|
* [complex data structures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#objects),
|
|
16
|
-
* or any other
|
|
17
|
-
*
|
|
16
|
+
* or any other [answerables](https://serenity-js.org/api/core/#Answerable),
|
|
17
|
+
* into a [`QuestionAdapter<string>`](https://serenity-js.org/api/core/#QuestionAdapter)
|
|
18
|
+
* that can be used with [`Task.where`](https://serenity-js.org/api/core/class/Task/#where) and [`Interaction.where`](https://serenity-js.org/api/core/class/Interaction/#where) methods.
|
|
18
19
|
*
|
|
19
20
|
* ```ts
|
|
20
21
|
* const dial = (phoneNumber: Answerable<string>) =>
|
|
@@ -28,7 +29,8 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
28
29
|
*
|
|
29
30
|
* ## Trimming the output
|
|
30
31
|
*
|
|
31
|
-
* Use
|
|
32
|
+
* Use [`DescriptionFormattingOptions`](http://serenity-js.org/api/core/interface/DescriptionFormattingOptions/)
|
|
33
|
+
* to trim the descriptions of template parameters.
|
|
32
34
|
* By default, the output is displayed in full.
|
|
33
35
|
*
|
|
34
36
|
* ```ts
|
|
@@ -45,9 +47,9 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
45
47
|
*
|
|
46
48
|
* ## Using with Questions
|
|
47
49
|
*
|
|
48
|
-
* When `the` is parameterised with
|
|
49
|
-
* it retrieves their description by calling
|
|
50
|
-
* in the context of the
|
|
50
|
+
* When `the` is parameterised with [questions](https://serenity-js.org/api/core/class/Question/),
|
|
51
|
+
* it retrieves their description by calling [`Question.describedBy`](https://serenity-js.org/api/core/class/Question/#describedBy)
|
|
52
|
+
* in the context of the [`Actor`](https://serenity-js.org/api/core/class/Actor/) performing the [`Activity`](https://serenity-js.org/api/core/class/Activity/).
|
|
51
53
|
*
|
|
52
54
|
* ```ts
|
|
53
55
|
* import { actorCalled, Question, Task, the } from '@serenity-js/core'
|
|
@@ -66,7 +68,7 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
66
68
|
* )
|
|
67
69
|
* ```
|
|
68
70
|
*
|
|
69
|
-
* If you'd like the question to be described using its formatted value instead of its description, use
|
|
71
|
+
* If you'd like the question to be described using its formatted value instead of its description, use [`Question.formattedValue`](https://serenity-js.org/api/core/class/Question/#formattedValue).
|
|
70
72
|
*
|
|
71
73
|
* ```ts
|
|
72
74
|
* import { actorCalled, Question, Task, the } from '@serenity-js/core'
|
|
@@ -89,7 +91,7 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
89
91
|
*
|
|
90
92
|
* When `the` is parameterised with objects that have
|
|
91
93
|
* a custom [`toString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString) method,
|
|
92
|
-
* or
|
|
94
|
+
* or [answerables](https://serenity-js.org/api/core/#Answerable) resolving to such objects, the `toString()` method is called to produce the resulting description.
|
|
93
95
|
*
|
|
94
96
|
* ```ts
|
|
95
97
|
* import { actorCalled, description, Task } from '@serenity-js/core'
|
|
@@ -118,7 +120,7 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
118
120
|
* ## Using with objects without a custom `toString` method
|
|
119
121
|
*
|
|
120
122
|
* When `the` is parameterised with complex objects that don't have a custom `toString()` method,
|
|
121
|
-
* or
|
|
123
|
+
* or [`Answerable`](https://serenity-js.org/api/core/#Answerable)s resolving to such objects,
|
|
122
124
|
* the resulting description will contain a JSON-like string representation of the object.
|
|
123
125
|
*
|
|
124
126
|
* ```ts
|
|
@@ -141,7 +143,7 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
141
143
|
*
|
|
142
144
|
* ## Using with masked values
|
|
143
145
|
*
|
|
144
|
-
* When `the` is parameterised with
|
|
146
|
+
* When `the` is parameterised with [masked values](https://serenity-js.org/api/core/class/Masked/),
|
|
145
147
|
* the resulting description will contain a masked representation of the values.
|
|
146
148
|
*
|
|
147
149
|
* ```ts
|
|
@@ -158,11 +160,11 @@ import type { MetaQuestion } from './MetaQuestion';
|
|
|
158
160
|
*
|
|
159
161
|
* ## Learn more
|
|
160
162
|
*
|
|
161
|
-
* -
|
|
162
|
-
* -
|
|
163
|
-
* -
|
|
164
|
-
* -
|
|
165
|
-
* -
|
|
163
|
+
* - [`Answerable`](https://serenity-js.org/api/core/#Answerable)
|
|
164
|
+
* - [`Question`](https://serenity-js.org/api/core/class/Question/)
|
|
165
|
+
* - [`Question.describedAs`](https://serenity-js.org/api/core/class/Question/#describedAs)
|
|
166
|
+
* - [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter)
|
|
167
|
+
* - [`Masked`](https://serenity-js.org/api/core/class/Masked/)
|
|
166
168
|
*
|
|
167
169
|
* @group Questions
|
|
168
170
|
*/
|
|
@@ -216,7 +218,7 @@ export function the(...args: any[]): any {
|
|
|
216
218
|
*
|
|
217
219
|
* ## Transforming the interpolated string
|
|
218
220
|
*
|
|
219
|
-
* The mechanism presented below relies on
|
|
221
|
+
* The mechanism presented below relies on [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter).
|
|
220
222
|
*
|
|
221
223
|
* ```ts
|
|
222
224
|
* import { q, actorCalled } from '@serenity-js/core'
|
|
@@ -231,10 +233,10 @@ export function the(...args: any[]): any {
|
|
|
231
233
|
*
|
|
232
234
|
* ## Learn more
|
|
233
235
|
*
|
|
234
|
-
* -
|
|
235
|
-
* -
|
|
236
|
-
* -
|
|
237
|
-
* -
|
|
236
|
+
* - [`Answerable`](https://serenity-js.org/api/core/#Answerable)
|
|
237
|
+
* - [`Question`](https://serenity-js.org/api/core/class/Question/)
|
|
238
|
+
* - [`Question.describedAs`](https://serenity-js.org/api/core/class/Question/#describedAs)
|
|
239
|
+
* - [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter)
|
|
238
240
|
*
|
|
239
241
|
* @group Questions
|
|
240
242
|
*
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { Timestamp } from './models';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Describes an
|
|
4
|
+
* Describes an [`Actor`](https://serenity-js.org/api/core/class/Actor/) or a supporting class capable of telling
|
|
5
5
|
* the current wall clock time.
|
|
6
6
|
*
|
|
7
7
|
* ## Learn more
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
8
|
+
* - [`Actor`](https://serenity-js.org/api/core/class/Actor/)
|
|
9
|
+
* - [`Serenity`](https://serenity-js.org/api/core/class/Serenity/)
|
|
10
|
+
* - [`Stage`](https://serenity-js.org/api/core/class/Stage/)
|
|
11
11
|
*
|
|
12
12
|
* @group Time
|
|
13
13
|
*/
|
|
@@ -4,10 +4,10 @@ import type { Clock, DelayedCallback, Duration, RepeatUntilLimits} from '../mode
|
|
|
4
4
|
import { Scheduler } from '../models';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* An
|
|
7
|
+
* An [`Ability`](https://serenity-js.org/api/core/class/Ability/) that enables an [`Actor`](https://serenity-js.org/api/core/class/Actor/) to schedule a callback function
|
|
8
8
|
* to be executed with a delay, or until some condition is met.
|
|
9
9
|
*
|
|
10
|
-
* Used internally by the
|
|
10
|
+
* Used internally by the [interaction](https://serenity-js.org/api/core/class/Interaction/) to [`Wait`](https://serenity-js.org/api/core/class/Wait/).
|
|
11
11
|
*
|
|
12
12
|
* @experimental
|
|
13
13
|
*
|
|
@@ -12,13 +12,13 @@ import { ScheduleWork } from '../abilities';
|
|
|
12
12
|
import { Duration } from '../models';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* `Wait` is a synchronisation statement that instructs the
|
|
16
|
-
* to wait before proceeding with their next
|
|
17
|
-
* either for a set
|
|
15
|
+
* `Wait` is a synchronisation statement that instructs the [actor](https://serenity-js.org/api/core/class/Actor/)
|
|
16
|
+
* to wait before proceeding with their next [activity](https://serenity-js.org/api/core/class/Activity/),
|
|
17
|
+
* either for a set [duration](https://serenity-js.org/api/core/class/Duration/), or until a given [expectation](https://serenity-js.org/api/core/class/Expectation/) is met.
|
|
18
18
|
*
|
|
19
|
-
* You can configure the timeout of the interaction to
|
|
20
|
-
* - globally, using
|
|
21
|
-
* - locally, on a per-interaction basis using
|
|
19
|
+
* You can configure the timeout of the interaction to [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until):
|
|
20
|
+
* - globally, using [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
|
|
21
|
+
* - locally, on a per-interaction basis using [`Wait.upTo`](https://serenity-js.org/api/core/class/Wait/#upTo)
|
|
22
22
|
*
|
|
23
23
|
* :::tip Portable waiting
|
|
24
24
|
* Serenity/JS implements `Wait` from scratch, so that the behaviour is consistent no matter the integration tool you use (Playwright, WebdriverIO, Selenium, etc.)
|
|
@@ -98,7 +98,8 @@ import { Duration } from '../models';
|
|
|
98
98
|
* );
|
|
99
99
|
* ```
|
|
100
100
|
*
|
|
101
|
-
* `Wait.until` makes the
|
|
101
|
+
* `Wait.until` makes the [`Actor`](https://serenity-js.org/api/core/class/Actor/)
|
|
102
|
+
* keep asking the [`Question`](https://serenity-js.org/api/core/class/Question/),
|
|
102
103
|
* in this case `Text.of(App.status)`, until the answer meets
|
|
103
104
|
* the expectation, or a timeout expires (default: 5s).
|
|
104
105
|
*
|
|
@@ -125,53 +126,53 @@ import { Duration } from '../models';
|
|
|
125
126
|
* ```
|
|
126
127
|
*
|
|
127
128
|
* ## Learn more
|
|
128
|
-
* -
|
|
129
|
-
* -
|
|
130
|
-
* -
|
|
129
|
+
* - [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
|
|
130
|
+
* - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
|
|
131
|
+
* - [`Expectation`](https://serenity-js.org/api/core/class/Expectation/)
|
|
131
132
|
*
|
|
132
133
|
* @group Time
|
|
133
134
|
*/
|
|
134
135
|
export class Wait {
|
|
135
136
|
|
|
136
137
|
/**
|
|
137
|
-
* Minimum timeout that can be used with
|
|
138
|
+
* Minimum timeout that can be used with [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until),
|
|
138
139
|
* defaults to 250 milliseconds,
|
|
139
140
|
*/
|
|
140
141
|
static readonly minimumTimeout = Duration.ofMilliseconds(250);
|
|
141
142
|
|
|
142
143
|
/**
|
|
143
|
-
* The amount of time
|
|
144
|
+
* The amount of time [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until) should wait between condition checks,
|
|
144
145
|
* defaults to 500ms.
|
|
145
146
|
*
|
|
146
|
-
* Use
|
|
147
|
+
* Use [`WaitUntil.pollingEvery`](https://serenity-js.org/api/core/class/WaitUntil/#pollingEvery) to override it for a given interaction.
|
|
147
148
|
*
|
|
148
149
|
* @type {Duration}
|
|
149
150
|
*/
|
|
150
151
|
static readonly defaultPollingInterval = Duration.ofMilliseconds(500);
|
|
151
152
|
|
|
152
153
|
/**
|
|
153
|
-
* Minimum polling interval of 50ms between condition checks, used with
|
|
154
|
+
* Minimum polling interval of 50ms between condition checks, used with [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until).
|
|
154
155
|
*/
|
|
155
156
|
static readonly minimumPollingInterval = Duration.ofMilliseconds(50);
|
|
156
157
|
|
|
157
158
|
/**
|
|
158
|
-
* Instantiates a version of this
|
|
159
|
+
* Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/)
|
|
159
160
|
* configured to wait for a set duration.
|
|
160
161
|
*
|
|
161
162
|
* @param duration
|
|
162
|
-
* A set duration the
|
|
163
|
+
* A set duration the [`Actor`](https://serenity-js.org/api/core/class/Actor/) should wait for before proceeding.
|
|
163
164
|
*/
|
|
164
165
|
static for(duration: Answerable<Duration>): Interaction {
|
|
165
166
|
return new WaitFor(duration);
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
/**
|
|
169
|
-
* Instantiates a version of this
|
|
170
|
+
* Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/)
|
|
170
171
|
* configured to wait until the answer to the question `actual` meets the `expectation`,
|
|
171
172
|
* or the `timeout` expires.
|
|
172
173
|
*
|
|
173
174
|
* @param timeout
|
|
174
|
-
* Custom timeout to override
|
|
175
|
+
* Custom timeout to override [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
|
|
175
176
|
*/
|
|
176
177
|
static upTo(timeout: Duration): { until: <Actual>(actual: Answerable<Actual>, expectation: Expectation<Actual>) => WaitUntil<Actual> } {
|
|
177
178
|
return {
|
|
@@ -181,17 +182,17 @@ export class Wait {
|
|
|
181
182
|
}
|
|
182
183
|
|
|
183
184
|
/**
|
|
184
|
-
* Instantiates a version of this
|
|
185
|
-
* poll every
|
|
185
|
+
* Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/) configured to
|
|
186
|
+
* poll every [`Wait.defaultPollingInterval`](https://serenity-js.org/api/core/class/Wait/#defaultPollingInterval) for the result of the provided
|
|
186
187
|
* question (`actual`) until it meets the `expectation`,
|
|
187
188
|
* or the timeout expires.
|
|
188
189
|
*
|
|
189
190
|
* @param actual
|
|
190
|
-
* An
|
|
191
|
-
* until the answer meets the
|
|
191
|
+
* An [`Answerable`](https://serenity-js.org/api/core/#Answerable) that the [`Actor`](https://serenity-js.org/api/core/class/Actor/) will keep answering
|
|
192
|
+
* until the answer meets the [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) provided, or the timeout expires.
|
|
192
193
|
*
|
|
193
194
|
* @param expectation
|
|
194
|
-
* An
|
|
195
|
+
* An [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) to be met before proceeding
|
|
195
196
|
*/
|
|
196
197
|
static until<Actual>(actual: Answerable<Actual>, expectation: Expectation<Actual>): WaitUntil<Actual> {
|
|
197
198
|
return new WaitUntil(actual, expectation, Wait.defaultPollingInterval);
|
|
@@ -214,14 +215,15 @@ class WaitFor extends Interaction {
|
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
/**
|
|
217
|
-
* Synchronisation statement that instructs the
|
|
218
|
+
* Synchronisation statement that instructs the [`Actor`](https://serenity-js.org/api/core/class/Actor/) to wait before proceeding until a given [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) is met.
|
|
218
219
|
*
|
|
219
220
|
* :::tip
|
|
220
|
-
* To instantiate
|
|
221
|
+
* To instantiate the [interaction](https://serenity-js.org/api/core/class/Interaction/) to [`WaitUntil`](https://serenity-js.org/api/core/class/WaitUntil/),
|
|
222
|
+
* use the factory method [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until).
|
|
221
223
|
* :::
|
|
222
224
|
*
|
|
223
225
|
* ## Learn more
|
|
224
|
-
* *
|
|
226
|
+
* * [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
|
|
225
227
|
*
|
|
226
228
|
* @group Time
|
|
227
229
|
*/
|
|
@@ -243,7 +245,7 @@ export class WaitUntil<Actual> extends Interaction {
|
|
|
243
245
|
}
|
|
244
246
|
|
|
245
247
|
/**
|
|
246
|
-
* Configure how frequently the
|
|
248
|
+
* Configure how frequently the [`Actor`](https://serenity-js.org/api/core/class/Actor/) should check if the answer meets the expectation.
|
|
247
249
|
*
|
|
248
250
|
* Note that the polling interval defines the delay between subsequent attempts
|
|
249
251
|
* to evaluate the expected value, and doesn't include the amount of time
|
|
@@ -4,7 +4,7 @@ import { Duration } from './Duration';
|
|
|
4
4
|
import { Timestamp } from './Timestamp';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* A
|
|
7
|
+
* A [`Clock`](https://serenity-js.org/api/core/class/Clock/) tells the time. This abstraction allows Serenity/JS to have a single place
|
|
8
8
|
* in the framework responsible for telling the time, and one that can be easily mocked for internal testing.
|
|
9
9
|
*
|
|
10
10
|
* ```ts
|
|
@@ -12,8 +12,8 @@ import { Timestamp } from './Timestamp';
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* ## Learn more
|
|
15
|
-
* -
|
|
16
|
-
* -
|
|
15
|
+
* - [`Timestamp`](https://serenity-js.org/api/core/class/Timestamp/)
|
|
16
|
+
* - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
|
|
17
17
|
*
|
|
18
18
|
* @group Time
|
|
19
19
|
*/
|
|
@@ -26,7 +26,7 @@ export class Clock {
|
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Sets the clock ahead to force early resolution of promises
|
|
29
|
-
* returned by
|
|
29
|
+
* returned by [`Clock.waitFor`](https://serenity-js.org/api/core/class/Clock/#waitFor).
|
|
30
30
|
*
|
|
31
31
|
* Useful for test purposes to avoid unnecessary delays.
|
|
32
32
|
*
|
|
@@ -2,7 +2,7 @@ import type { JSONObject} from 'tiny-types';
|
|
|
2
2
|
import { ensure, isGreaterThanOrEqualTo, isInteger, TinyType } from 'tiny-types';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Represents a duration in milliseconds between two
|
|
5
|
+
* Represents a duration in milliseconds between two [timestamps](https://serenity-js.org/api/core/class/Timestamp/).
|
|
6
6
|
*
|
|
7
7
|
* @group Time
|
|
8
8
|
*/
|
|
@@ -6,10 +6,10 @@ import { Duration } from './Duration';
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents a point in time.
|
|
8
8
|
*
|
|
9
|
-
* `Timestamp` makes it easier for you to work with information related to time, like
|
|
9
|
+
* `Timestamp` makes it easier for you to work with information related to time, like [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/).
|
|
10
10
|
*
|
|
11
11
|
* ## Learn more
|
|
12
|
-
* -
|
|
12
|
+
* - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
|
|
13
13
|
* - [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)
|
|
14
14
|
*
|
|
15
15
|
* @group Time
|
package/src/stage/Cast.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Actor } from '../screenplay';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Serenity/JS uses the concept of a _**cast of actors**_ to centralise the process of configuring the
|
|
4
|
+
* Serenity/JS uses the concept of a _**cast of actors**_ to centralise the process of configuring the [actors](https://serenity-js.org/api/core/class/Actor/) and assigning their [abilities](https://serenity-js.org/api/core/class/Ability/).
|
|
5
5
|
*
|
|
6
|
-
* When you invoke
|
|
7
|
-
* Serenity/JS
|
|
8
|
-
* and passes it through the
|
|
6
|
+
* When you invoke [`actorCalled`](https://serenity-js.org/api/core/function/actorCalled/) for the first time in a test scenario,
|
|
7
|
+
* Serenity/JS [instantiates a new actor](https://serenity-js.org/api/core/class/Actor/)
|
|
8
|
+
* and passes it through the [`Cast.prepare`](https://serenity-js.org/api/core/class/Cast/#prepare) method.
|
|
9
9
|
* Specifying a **custom cast** gives you an opportunity to configure the actor with the abilities
|
|
10
10
|
* they need before it's returned to the caller,
|
|
11
11
|
* or configure the actors differently **depending on their name**.
|
|
@@ -18,7 +18,7 @@ import type { Actor } from '../screenplay';
|
|
|
18
18
|
* ## Configuring a cast of actors for the entire test suite
|
|
19
19
|
*
|
|
20
20
|
* When working with relatively **simple scenarios** where all the actors should always receive the same set of abilities,
|
|
21
|
-
* you can
|
|
21
|
+
* you can [`engage`](https://serenity-js.org/api/core/function/engage/) Serenity/JS to use a generic [`Cast.where`](https://serenity-js.org/api/core/class/Cast/#where):
|
|
22
22
|
*
|
|
23
23
|
* ```typescript
|
|
24
24
|
* import { Cast, configure } from '@serenity-js/core'
|
|
@@ -32,28 +32,28 @@ import type { Actor } from '../screenplay';
|
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
34
|
*
|
|
35
|
-
* If you're using Serenity/JS with one of the [supported test runners](/handbook/test-runners/),
|
|
35
|
+
* If you're using Serenity/JS with one of the [supported test runners](https://serenity-js.org/handbook/test-runners/),
|
|
36
36
|
* you might prefer to use your test runner's native configuration mechanism
|
|
37
|
-
* instead of invoking
|
|
37
|
+
* instead of invoking [`engage`](https://serenity-js.org/api/core/function/engage/) explicitly.
|
|
38
38
|
*
|
|
39
39
|
* :::tip configure vs engage
|
|
40
|
-
* Calling
|
|
40
|
+
* Calling [`configure`](https://serenity-js.org/api/core/function/configure/) resets the entire Serenity/JS configuration
|
|
41
41
|
* and should be done exactly once in your entire test suite.
|
|
42
|
-
* If you want to retain the configuration but reset the cast, use
|
|
42
|
+
* If you want to retain the configuration but reset the cast, use [`engage`](https://serenity-js.org/api/core/function/engage/) instead.
|
|
43
43
|
* :::
|
|
44
44
|
*
|
|
45
45
|
* Learn more about configuring Serenity/JS with:
|
|
46
|
-
* - [Cucumber.js](/handbook/test-runners/cucumber)
|
|
47
|
-
* - [Jasmine](/handbook/test-runners/jasmine)
|
|
48
|
-
* - [Mocha](/handbook/test-runners/mocha)
|
|
49
|
-
* - [Playwright Test](/handbook/test-runners/playwright-test)
|
|
50
|
-
* - [Protractor](/handbook/test-runners/protractor)
|
|
51
|
-
* - [WebdriverIO](/handbook/test-runners/webdriverio)
|
|
46
|
+
* - [Cucumber.js](https://serenity-js.org/handbook/test-runners/cucumber)
|
|
47
|
+
* - [Jasmine](https://serenity-js.org/handbook/test-runners/jasmine)
|
|
48
|
+
* - [Mocha](https://serenity-js.org/handbook/test-runners/mocha)
|
|
49
|
+
* - [Playwright Test](https://serenity-js.org/handbook/test-runners/playwright-test)
|
|
50
|
+
* - [Protractor](https://serenity-js.org/handbook/test-runners/protractor)
|
|
51
|
+
* - [WebdriverIO](https://serenity-js.org/handbook/test-runners/webdriverio)
|
|
52
52
|
*
|
|
53
53
|
* ## Engaging a cast of actors for the specific scenario
|
|
54
54
|
*
|
|
55
|
-
* If you want to retain Serenity/JS configuration, but set a different
|
|
56
|
-
* for the given test scenario you should use
|
|
55
|
+
* If you want to retain Serenity/JS configuration, but set a different [cast](https://serenity-js.org/api/core/class/Cast/)
|
|
56
|
+
* for the given test scenario you should use [`engage`](https://serenity-js.org/api/core/function/engage/) instead of [`configure`](https://serenity-js.org/api/core/function/configure/).
|
|
57
57
|
*
|
|
58
58
|
* This approach is useful for example when your entire test suite is dedicated to interacting with the system
|
|
59
59
|
* under test via its REST APIs, and you have a handful of scenarios that need a web browser.
|
|
@@ -77,10 +77,10 @@ import type { Actor } from '../screenplay';
|
|
|
77
77
|
* ## Writing custom casts for complex scenarios
|
|
78
78
|
*
|
|
79
79
|
* In **complex scenarios** that involve multiple **actors with different abilities**,
|
|
80
|
-
* you should create a custom implementation of the
|
|
80
|
+
* you should create a custom implementation of the [cast](https://serenity-js.org/api/core/class/Cast/).
|
|
81
81
|
*
|
|
82
82
|
* Examples of such scenarios include those where actors use separate browser instances, interact with different REST APIs,
|
|
83
|
-
* or start with different data in their
|
|
83
|
+
* or start with different data in their [notepads](https://serenity-js.org/api/core/class/Notepad/).
|
|
84
84
|
*
|
|
85
85
|
* ### Defining a custom cast of actors interacting with a Web UI
|
|
86
86
|
*
|
|
@@ -164,12 +164,12 @@ export abstract class Cast {
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
/**
|
|
167
|
-
* Configures an
|
|
167
|
+
* Configures an [`Actor`](https://serenity-js.org/api/core/class/Actor/) instantiated when [`Stage.actor`](https://serenity-js.org/api/core/class/Stage/#actor) is invoked.
|
|
168
168
|
*
|
|
169
169
|
* @param actor
|
|
170
170
|
*
|
|
171
171
|
* #### Learn more
|
|
172
|
-
* -
|
|
172
|
+
* - [`engage`](https://serenity-js.org/api/core/function/engage/)
|
|
173
173
|
*/
|
|
174
174
|
abstract prepare(actor: Actor): Actor;
|
|
175
175
|
}
|
package/src/stage/Extras.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Actor } from '../screenplay';
|
|
|
2
2
|
import type { Cast } from './Cast';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Produces no-op actors with no special
|
|
5
|
+
* Produces no-op actors with no special [`Ability`](https://serenity-js.org/api/core/class/Ability/)
|
|
6
6
|
*/
|
|
7
7
|
export class Extras implements Cast {
|
|
8
8
|
prepare(actor: Actor): Actor {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import type { DomainEvent } from '../events';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A
|
|
4
|
+
* A [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/) that can listen and react to [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
|
|
5
5
|
*
|
|
6
6
|
* ## Learn more
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
8
|
+
* - [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/)
|
|
9
|
+
* - [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/)
|
|
10
|
+
* - [`engage`](https://serenity-js.org/api/core/function/engage/)
|
|
11
|
+
* - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
|
|
12
12
|
*
|
|
13
13
|
* @group Stage
|
|
14
14
|
*/
|
|
15
15
|
export interface ListensToDomainEvents {
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Handles
|
|
19
|
-
* that this
|
|
18
|
+
* Handles [`DomainEvent`](https://serenity-js.org/api/core-events/class/DomainEvent/) objects emitted by the [`Stage`](https://serenity-js.org/api/core/class/Stage/)
|
|
19
|
+
* that this [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/) is assigned to.
|
|
20
20
|
*
|
|
21
21
|
* @param event
|
|
22
22
|
*/
|