@serenity-js/core 3.0.0-rc.9 → 3.0.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 +207 -2146
- package/README.md +8 -10
- package/lib/Serenity.d.ts +145 -80
- package/lib/Serenity.d.ts.map +1 -0
- package/lib/Serenity.js +159 -86
- package/lib/Serenity.js.map +1 -1
- package/lib/adapter/OutputStream.d.ts +14 -0
- package/lib/adapter/OutputStream.d.ts.map +1 -0
- package/lib/{io → adapter}/OutputStream.js.map +1 -1
- package/lib/adapter/TestRunnerAdapter.d.ts +33 -0
- package/lib/adapter/TestRunnerAdapter.d.ts.map +1 -0
- package/lib/adapter/TestRunnerAdapter.js.map +1 -0
- package/lib/adapter/index.d.ts +3 -0
- package/lib/adapter/index.d.ts.map +1 -0
- package/lib/adapter/index.js +19 -0
- package/lib/adapter/index.js.map +1 -0
- package/lib/config/ClassDescription.d.ts +60 -0
- package/lib/config/ClassDescription.d.ts.map +1 -0
- package/lib/config/ClassDescription.js +3 -0
- package/lib/config/ClassDescription.js.map +1 -0
- package/lib/config/SerenityConfig.d.ts +73 -0
- package/lib/config/SerenityConfig.d.ts.map +1 -0
- package/lib/config/SerenityConfig.js +20 -0
- package/lib/config/SerenityConfig.js.map +1 -0
- package/lib/config/index.d.ts +3 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +19 -0
- package/lib/config/index.js.map +1 -0
- package/lib/errors/ErrorFactory.d.ts +16 -0
- package/lib/errors/ErrorFactory.d.ts.map +1 -0
- package/lib/errors/ErrorFactory.js +241 -0
- package/lib/errors/ErrorFactory.js.map +1 -0
- package/lib/errors/ErrorOptions.d.ts +16 -0
- package/lib/errors/ErrorOptions.d.ts.map +1 -0
- package/lib/errors/ErrorOptions.js +3 -0
- package/lib/errors/ErrorOptions.js.map +1 -0
- package/lib/errors/ErrorSerialiser.d.ts +14 -0
- package/lib/errors/ErrorSerialiser.d.ts.map +1 -0
- package/lib/{io → errors}/ErrorSerialiser.js +33 -7
- package/lib/errors/ErrorSerialiser.js.map +1 -0
- package/lib/errors/ErrorStackParser.d.ts +13 -0
- package/lib/errors/ErrorStackParser.d.ts.map +1 -0
- package/lib/errors/ErrorStackParser.js +42 -0
- package/lib/errors/ErrorStackParser.js.map +1 -0
- package/lib/errors/RaiseErrors.d.ts +57 -0
- package/lib/errors/RaiseErrors.d.ts.map +1 -0
- package/lib/errors/RaiseErrors.js +62 -0
- package/lib/errors/RaiseErrors.js.map +1 -0
- package/lib/errors/diff/AnsiDiffFormatter.d.ts +28 -0
- package/lib/errors/diff/AnsiDiffFormatter.d.ts.map +1 -0
- package/lib/errors/diff/AnsiDiffFormatter.js +38 -0
- package/lib/errors/diff/AnsiDiffFormatter.js.map +1 -0
- package/lib/errors/diff/DiffFormatter.d.ts +13 -0
- package/lib/errors/diff/DiffFormatter.d.ts.map +1 -0
- package/lib/errors/diff/DiffFormatter.js +3 -0
- package/lib/errors/diff/DiffFormatter.js.map +1 -0
- package/lib/errors/diff/NoOpDiffFormatter.d.ts +12 -0
- package/lib/errors/diff/NoOpDiffFormatter.d.ts.map +1 -0
- package/lib/errors/diff/NoOpDiffFormatter.js +21 -0
- package/lib/errors/diff/NoOpDiffFormatter.js.map +1 -0
- package/lib/errors/diff/index.d.ts +4 -0
- package/lib/errors/diff/index.d.ts.map +1 -0
- package/lib/errors/diff/index.js +20 -0
- package/lib/errors/diff/index.js.map +1 -0
- package/lib/errors/index.d.ts +8 -7
- package/lib/errors/index.d.ts.map +1 -0
- package/lib/errors/index.js +23 -8
- package/lib/errors/index.js.map +1 -1
- package/lib/errors/model/AssertionError.d.ts +16 -0
- package/lib/errors/model/AssertionError.d.ts.map +1 -0
- package/lib/errors/model/AssertionError.js +26 -0
- package/lib/errors/model/AssertionError.js.map +1 -0
- package/lib/errors/model/ConfigurationError.d.ts +16 -0
- package/lib/errors/model/ConfigurationError.d.ts.map +1 -0
- package/lib/errors/model/ConfigurationError.js +26 -0
- package/lib/errors/model/ConfigurationError.js.map +1 -0
- package/lib/errors/model/ImplementationPendingError.d.ts +37 -0
- package/lib/errors/model/ImplementationPendingError.d.ts.map +1 -0
- package/lib/errors/model/ImplementationPendingError.js +47 -0
- package/lib/errors/model/ImplementationPendingError.js.map +1 -0
- package/lib/errors/model/ListItemNotFoundError.d.ts +20 -0
- package/lib/errors/model/ListItemNotFoundError.d.ts.map +1 -0
- package/lib/errors/model/ListItemNotFoundError.js +30 -0
- package/lib/errors/model/ListItemNotFoundError.js.map +1 -0
- package/lib/errors/model/LogicError.d.ts +20 -0
- package/lib/errors/model/LogicError.d.ts.map +1 -0
- package/lib/errors/model/LogicError.js +30 -0
- package/lib/errors/model/LogicError.js.map +1 -0
- package/lib/errors/model/OperationInterruptedError.d.ts +20 -0
- package/lib/errors/model/OperationInterruptedError.d.ts.map +1 -0
- package/lib/errors/model/OperationInterruptedError.js +30 -0
- package/lib/errors/model/OperationInterruptedError.js.map +1 -0
- package/lib/errors/model/RuntimeError.d.ts +80 -0
- package/lib/errors/model/RuntimeError.d.ts.map +1 -0
- package/lib/errors/model/RuntimeError.js +97 -0
- package/lib/errors/model/RuntimeError.js.map +1 -0
- package/lib/errors/model/TestCompromisedError.d.ts +31 -0
- package/lib/errors/model/TestCompromisedError.d.ts.map +1 -0
- package/lib/errors/model/TestCompromisedError.js +41 -0
- package/lib/errors/model/TestCompromisedError.js.map +1 -0
- package/lib/errors/model/TimeoutExpiredError.d.ts +20 -0
- package/lib/errors/model/TimeoutExpiredError.d.ts.map +1 -0
- package/lib/errors/model/TimeoutExpiredError.js +30 -0
- package/lib/errors/model/TimeoutExpiredError.js.map +1 -0
- package/lib/errors/model/UnknownError.d.ts +16 -0
- package/lib/errors/model/UnknownError.d.ts.map +1 -0
- package/lib/errors/model/UnknownError.js +26 -0
- package/lib/errors/model/UnknownError.js.map +1 -0
- package/lib/errors/model/index.d.ts +11 -0
- package/lib/errors/model/index.d.ts.map +1 -0
- package/lib/errors/model/index.js +27 -0
- package/lib/errors/model/index.js.map +1 -0
- package/lib/events/ActivityFinished.d.ts +5 -5
- package/lib/events/ActivityFinished.d.ts.map +1 -0
- package/lib/events/ActivityFinished.js +2 -4
- package/lib/events/ActivityFinished.js.map +1 -1
- package/lib/events/ActivityRelatedArtifactArchived.d.ts +6 -1
- package/lib/events/ActivityRelatedArtifactArchived.d.ts.map +1 -0
- package/lib/events/ActivityRelatedArtifactArchived.js +7 -3
- package/lib/events/ActivityRelatedArtifactArchived.js.map +1 -1
- package/lib/events/ActivityRelatedArtifactGenerated.d.ts +6 -1
- package/lib/events/ActivityRelatedArtifactGenerated.d.ts.map +1 -0
- package/lib/events/ActivityRelatedArtifactGenerated.js +7 -3
- package/lib/events/ActivityRelatedArtifactGenerated.js.map +1 -1
- package/lib/events/ActivityStarts.d.ts +5 -5
- package/lib/events/ActivityStarts.d.ts.map +1 -0
- package/lib/events/ActivityStarts.js +2 -4
- package/lib/events/ActivityStarts.js.map +1 -1
- package/lib/events/ArtifactArchived.d.ts +6 -1
- package/lib/events/ArtifactArchived.d.ts.map +1 -0
- package/lib/events/ArtifactArchived.js +7 -3
- package/lib/events/ArtifactArchived.js.map +1 -1
- package/lib/events/ArtifactGenerated.d.ts +6 -1
- package/lib/events/ArtifactGenerated.d.ts.map +1 -0
- package/lib/events/ArtifactGenerated.js +7 -3
- package/lib/events/ArtifactGenerated.js.map +1 -1
- package/lib/events/AsyncOperationAborted.d.ts +14 -0
- package/lib/events/AsyncOperationAborted.d.ts.map +1 -0
- package/lib/events/AsyncOperationAborted.js +24 -0
- package/lib/events/AsyncOperationAborted.js.map +1 -0
- package/lib/events/AsyncOperationAttempted.d.ts +9 -3
- package/lib/events/AsyncOperationAttempted.d.ts.map +1 -0
- package/lib/events/AsyncOperationAttempted.js +12 -6
- package/lib/events/AsyncOperationAttempted.js.map +1 -1
- package/lib/events/AsyncOperationCompleted.d.ts +7 -3
- package/lib/events/AsyncOperationCompleted.d.ts.map +1 -0
- package/lib/events/AsyncOperationCompleted.js +8 -6
- package/lib/events/AsyncOperationCompleted.js.map +1 -1
- package/lib/events/AsyncOperationFailed.d.ts +6 -1
- package/lib/events/AsyncOperationFailed.d.ts.map +1 -0
- package/lib/events/AsyncOperationFailed.js +9 -5
- package/lib/events/AsyncOperationFailed.js.map +1 -1
- package/lib/events/BusinessRuleDetected.d.ts +6 -5
- package/lib/events/BusinessRuleDetected.d.ts.map +1 -0
- package/lib/events/BusinessRuleDetected.js +7 -7
- package/lib/events/BusinessRuleDetected.js.map +1 -1
- package/lib/events/DomainEvent.d.ts +5 -7
- package/lib/events/DomainEvent.d.ts.map +1 -0
- package/lib/events/DomainEvent.js +5 -8
- package/lib/events/DomainEvent.js.map +1 -1
- package/lib/events/FeatureNarrativeDetected.d.ts +6 -1
- package/lib/events/FeatureNarrativeDetected.d.ts.map +1 -0
- package/lib/events/FeatureNarrativeDetected.js +7 -3
- package/lib/events/FeatureNarrativeDetected.js.map +1 -1
- package/lib/events/InteractionFinished.d.ts +4 -0
- package/lib/events/InteractionFinished.d.ts.map +1 -0
- package/lib/events/InteractionFinished.js +5 -1
- package/lib/events/InteractionFinished.js.map +1 -1
- package/lib/events/InteractionStarts.d.ts +4 -0
- package/lib/events/InteractionStarts.d.ts.map +1 -0
- package/lib/events/InteractionStarts.js +5 -1
- package/lib/events/InteractionStarts.js.map +1 -1
- package/lib/events/RetryableSceneDetected.d.ts +9 -10
- package/lib/events/RetryableSceneDetected.d.ts.map +1 -0
- package/lib/events/RetryableSceneDetected.js +13 -15
- package/lib/events/RetryableSceneDetected.js.map +1 -1
- package/lib/events/SceneBackgroundDetected.d.ts +6 -1
- package/lib/events/SceneBackgroundDetected.d.ts.map +1 -0
- package/lib/events/SceneBackgroundDetected.js +8 -5
- package/lib/events/SceneBackgroundDetected.js.map +1 -1
- package/lib/events/SceneDescriptionDetected.d.ts +6 -1
- package/lib/events/SceneDescriptionDetected.d.ts.map +1 -0
- package/lib/events/SceneDescriptionDetected.js +7 -3
- package/lib/events/SceneDescriptionDetected.js.map +1 -1
- package/lib/events/SceneFinished.d.ts +6 -1
- package/lib/events/SceneFinished.d.ts.map +1 -0
- package/lib/events/SceneFinished.js +7 -3
- package/lib/events/SceneFinished.js.map +1 -1
- package/lib/events/SceneFinishes.d.ts +10 -4
- package/lib/events/SceneFinishes.d.ts.map +1 -0
- package/lib/events/SceneFinishes.js +11 -8
- package/lib/events/SceneFinishes.js.map +1 -1
- package/lib/events/SceneParametersDetected.d.ts +6 -1
- package/lib/events/SceneParametersDetected.d.ts.map +1 -0
- package/lib/events/SceneParametersDetected.js +7 -3
- package/lib/events/SceneParametersDetected.js.map +1 -1
- package/lib/events/SceneSequenceDetected.d.ts +6 -1
- package/lib/events/SceneSequenceDetected.d.ts.map +1 -0
- package/lib/events/SceneSequenceDetected.js +7 -3
- package/lib/events/SceneSequenceDetected.js.map +1 -1
- package/lib/events/SceneStarts.d.ts +6 -1
- package/lib/events/SceneStarts.d.ts.map +1 -0
- package/lib/events/SceneStarts.js +7 -3
- package/lib/events/SceneStarts.js.map +1 -1
- package/lib/events/SceneTagged.d.ts +6 -1
- package/lib/events/SceneTagged.d.ts.map +1 -0
- package/lib/events/SceneTagged.js +7 -3
- package/lib/events/SceneTagged.js.map +1 -1
- package/lib/events/SceneTemplateDetected.d.ts +6 -1
- package/lib/events/SceneTemplateDetected.d.ts.map +1 -0
- package/lib/events/SceneTemplateDetected.js +7 -3
- package/lib/events/SceneTemplateDetected.js.map +1 -1
- package/lib/events/TaskFinished.d.ts +4 -0
- package/lib/events/TaskFinished.d.ts.map +1 -0
- package/lib/events/TaskFinished.js +5 -1
- package/lib/events/TaskFinished.js.map +1 -1
- package/lib/events/TaskStarts.d.ts +4 -0
- package/lib/events/TaskStarts.d.ts.map +1 -0
- package/lib/events/TaskStarts.js +5 -1
- package/lib/events/TaskStarts.js.map +1 -1
- package/lib/events/TestRunFinished.d.ts +10 -5
- package/lib/events/TestRunFinished.d.ts.map +1 -0
- package/lib/events/TestRunFinished.js +8 -5
- package/lib/events/TestRunFinished.js.map +1 -1
- package/lib/events/TestRunFinishes.d.ts +6 -4
- package/lib/events/TestRunFinishes.d.ts.map +1 -0
- package/lib/events/TestRunFinishes.js +6 -5
- package/lib/events/TestRunFinishes.js.map +1 -1
- package/lib/events/TestRunStarts.d.ts +4 -4
- package/lib/events/TestRunStarts.d.ts.map +1 -0
- package/lib/events/TestRunStarts.js +4 -5
- package/lib/events/TestRunStarts.js.map +1 -1
- package/lib/events/TestRunnerDetected.d.ts +6 -2
- package/lib/events/TestRunnerDetected.d.ts.map +1 -0
- package/lib/events/TestRunnerDetected.js +9 -7
- package/lib/events/TestRunnerDetected.js.map +1 -1
- package/lib/events/TestSuiteFinished.d.ts +6 -1
- package/lib/events/TestSuiteFinished.d.ts.map +1 -0
- package/lib/events/TestSuiteFinished.js +7 -3
- package/lib/events/TestSuiteFinished.js.map +1 -1
- package/lib/events/TestSuiteStarts.d.ts +6 -1
- package/lib/events/TestSuiteStarts.d.ts.map +1 -0
- package/lib/events/TestSuiteStarts.js +7 -3
- package/lib/events/TestSuiteStarts.js.map +1 -1
- package/lib/events/index.d.ts +2 -0
- package/lib/events/index.d.ts.map +1 -0
- package/lib/events/index.js +6 -1
- package/lib/events/index.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +7 -7
- package/lib/index.js.map +1 -1
- package/lib/instance.d.ts +180 -90
- package/lib/instance.d.ts.map +1 -0
- package/lib/instance.js +179 -90
- package/lib/instance.js.map +1 -1
- package/lib/io/Config.d.ts +2 -1
- package/lib/io/Config.d.ts.map +1 -0
- package/lib/io/FileFinder.d.ts +1 -0
- package/lib/io/FileFinder.d.ts.map +1 -0
- package/lib/io/FileFinder.js +5 -2
- package/lib/io/FileFinder.js.map +1 -1
- package/lib/io/FileSystem.d.ts +3 -0
- package/lib/io/FileSystem.d.ts.map +1 -0
- package/lib/io/FileSystem.js +30 -4
- package/lib/io/FileSystem.js.map +1 -1
- package/lib/io/FileSystemLocation.d.ts +1 -0
- package/lib/io/FileSystemLocation.d.ts.map +1 -0
- package/lib/io/FileSystemLocation.js +3 -3
- package/lib/io/FileSystemLocation.js.map +1 -1
- package/lib/io/Path.d.ts +2 -0
- package/lib/io/Path.d.ts.map +1 -0
- package/lib/io/Path.js +22 -16
- package/lib/io/Path.js.map +1 -1
- package/lib/io/asyncMap.d.ts +4 -4
- package/lib/io/asyncMap.d.ts.map +1 -0
- package/lib/io/asyncMap.js +5 -5
- package/lib/io/asyncMap.js.map +1 -1
- package/lib/io/commaSeparated.d.ts +6 -6
- package/lib/io/commaSeparated.d.ts.map +1 -0
- package/lib/io/commaSeparated.js +8 -9
- package/lib/io/commaSeparated.js.map +1 -1
- package/lib/io/format.d.ts +46 -19
- package/lib/io/format.d.ts.map +1 -0
- package/lib/io/format.js +48 -22
- package/lib/io/format.js.map +1 -1
- package/lib/io/index.d.ts +4 -9
- package/lib/io/index.d.ts.map +1 -0
- package/lib/io/index.js +8 -10
- package/lib/io/index.js.map +1 -1
- package/lib/io/inspected.d.ts +4 -19
- package/lib/io/inspected.d.ts.map +1 -0
- package/lib/io/inspected.js +11 -222
- package/lib/io/inspected.js.map +1 -1
- package/lib/io/inspectedObject.d.ts +4 -0
- package/lib/io/inspectedObject.d.ts.map +1 -0
- package/lib/io/inspectedObject.js +55 -0
- package/lib/io/inspectedObject.js.map +1 -0
- package/lib/io/loader/ClassDescriptionParser.d.ts +8 -0
- package/lib/io/loader/ClassDescriptionParser.d.ts.map +1 -0
- package/lib/io/loader/ClassDescriptionParser.js +52 -0
- package/lib/io/loader/ClassDescriptionParser.js.map +1 -0
- package/lib/io/loader/ClassDescriptor.d.ts +7 -0
- package/lib/io/loader/ClassDescriptor.d.ts.map +1 -0
- package/lib/io/loader/ClassDescriptor.js +3 -0
- package/lib/io/loader/ClassDescriptor.js.map +1 -0
- package/lib/io/loader/ClassLoader.d.ts +11 -0
- package/lib/io/loader/ClassLoader.d.ts.map +1 -0
- package/lib/io/loader/ClassLoader.js +34 -0
- package/lib/io/loader/ClassLoader.js.map +1 -0
- package/lib/io/{ModuleLoader.d.ts → loader/ModuleLoader.d.ts} +11 -18
- package/lib/io/loader/ModuleLoader.d.ts.map +1 -0
- package/lib/io/loader/ModuleLoader.js +96 -0
- package/lib/io/loader/ModuleLoader.js.map +1 -0
- package/lib/io/{Version.d.ts → loader/Version.d.ts} +2 -4
- package/lib/io/loader/Version.d.ts.map +1 -0
- package/lib/io/{Version.js → loader/Version.js} +14 -14
- package/lib/io/loader/Version.js.map +1 -0
- package/lib/io/loader/index.d.ts +6 -0
- package/lib/io/loader/index.d.ts.map +1 -0
- package/lib/io/loader/index.js +22 -0
- package/lib/io/loader/index.js.map +1 -0
- package/lib/io/proxies.d.ts +1 -0
- package/lib/io/proxies.d.ts.map +1 -0
- package/lib/io/reflection/has.d.ts +4 -5
- package/lib/io/reflection/has.d.ts.map +1 -0
- package/lib/io/reflection/has.js +3 -5
- package/lib/io/reflection/has.js.map +1 -1
- package/lib/io/reflection/index.d.ts +3 -0
- package/lib/io/reflection/index.d.ts.map +1 -0
- package/lib/io/reflection/index.js +7 -1
- package/lib/io/reflection/index.js.map +1 -1
- package/lib/io/reflection/isPrimitive.d.ts +8 -0
- package/lib/io/reflection/isPrimitive.d.ts.map +1 -0
- package/lib/io/reflection/isPrimitive.js +24 -0
- package/lib/io/reflection/isPrimitive.js.map +1 -0
- package/lib/io/reflection/typeOf.d.ts +7 -0
- package/lib/io/reflection/typeOf.d.ts.map +1 -0
- package/lib/io/reflection/typeOf.js +35 -0
- package/lib/io/reflection/typeOf.js.map +1 -0
- package/lib/io/stringified.d.ts +24 -0
- package/lib/io/stringified.d.ts.map +1 -0
- package/lib/io/stringified.js +220 -0
- package/lib/io/stringified.js.map +1 -0
- package/lib/io/trimmed.d.ts +6 -7
- package/lib/io/trimmed.d.ts.map +1 -0
- package/lib/io/trimmed.js +6 -8
- package/lib/io/trimmed.js.map +1 -1
- package/lib/model/ActivityDetails.d.ts +9 -1
- package/lib/model/ActivityDetails.d.ts.map +1 -0
- package/lib/model/ActivityDetails.js +9 -4
- package/lib/model/ActivityDetails.js.map +1 -1
- package/lib/model/Artifact.d.ts +2 -1
- package/lib/model/Artifact.d.ts.map +1 -0
- package/lib/model/Artifact.js +29 -6
- package/lib/model/Artifact.js.map +1 -1
- package/lib/model/BusinessRule.d.ts +1 -0
- package/lib/model/BusinessRule.d.ts.map +1 -0
- package/lib/model/BusinessRule.js +3 -3
- package/lib/model/BusinessRule.js.map +1 -1
- package/lib/model/Category.d.ts +1 -0
- package/lib/model/Category.d.ts.map +1 -0
- package/lib/model/Category.js +3 -3
- package/lib/model/Category.js.map +1 -1
- package/lib/model/CorrelationId.d.ts +1 -0
- package/lib/model/CorrelationId.d.ts.map +1 -0
- package/lib/model/CorrelationId.js +5 -2
- package/lib/model/CorrelationId.js.map +1 -1
- package/lib/model/Description.d.ts +1 -0
- package/lib/model/Description.d.ts.map +1 -0
- package/lib/model/Description.js +3 -3
- package/lib/model/Description.js.map +1 -1
- package/lib/model/Name.d.ts +1 -0
- package/lib/model/Name.d.ts.map +1 -0
- package/lib/model/Name.js +3 -3
- package/lib/model/Name.js.map +1 -1
- package/lib/model/ScenarioDetails.d.ts +1 -0
- package/lib/model/ScenarioDetails.d.ts.map +1 -0
- package/lib/model/ScenarioDetails.js +6 -3
- package/lib/model/ScenarioDetails.js.map +1 -1
- package/lib/model/ScenarioParameters.d.ts +1 -0
- package/lib/model/ScenarioParameters.d.ts.map +1 -0
- package/lib/model/ScenarioParameters.js +3 -3
- package/lib/model/ScenarioParameters.js.map +1 -1
- package/lib/model/TestSuiteDetails.d.ts +1 -0
- package/lib/model/TestSuiteDetails.d.ts.map +1 -0
- package/lib/model/TestSuiteDetails.js +3 -3
- package/lib/model/TestSuiteDetails.js.map +1 -1
- package/lib/model/artifacts/HTTPRequestResponse.d.ts +6 -13
- package/lib/model/artifacts/HTTPRequestResponse.d.ts.map +1 -0
- package/lib/model/artifacts/HTTPRequestResponse.js +1 -4
- package/lib/model/artifacts/HTTPRequestResponse.js.map +1 -1
- package/lib/model/artifacts/JSONData.d.ts +1 -0
- package/lib/model/artifacts/JSONData.d.ts.map +1 -0
- package/lib/model/artifacts/LogEntry.d.ts +1 -0
- package/lib/model/artifacts/LogEntry.d.ts.map +1 -0
- package/lib/model/artifacts/Photo.d.ts +1 -8
- package/lib/model/artifacts/Photo.d.ts.map +1 -0
- package/lib/model/artifacts/Photo.js +0 -8
- package/lib/model/artifacts/Photo.js.map +1 -1
- package/lib/model/artifacts/TestReport.d.ts +1 -0
- package/lib/model/artifacts/TestReport.d.ts.map +1 -0
- package/lib/model/artifacts/TextData.d.ts +1 -0
- package/lib/model/artifacts/TextData.d.ts.map +1 -0
- package/lib/model/artifacts/index.d.ts +1 -1
- package/lib/model/artifacts/index.d.ts.map +1 -0
- package/lib/model/artifacts/index.js +5 -2
- package/lib/model/artifacts/index.js.map +1 -1
- package/lib/model/index.d.ts +1 -2
- package/lib/model/index.d.ts.map +1 -0
- package/lib/model/index.js +5 -3
- package/lib/model/index.js.map +1 -1
- package/lib/model/outcomes.d.ts +1 -0
- package/lib/model/outcomes.d.ts.map +1 -0
- package/lib/model/outcomes.js +7 -7
- package/lib/model/outcomes.js.map +1 -1
- package/lib/model/tags/ArbitraryTag.d.ts +3 -5
- package/lib/model/tags/ArbitraryTag.d.ts.map +1 -0
- package/lib/model/tags/ArbitraryTag.js +2 -5
- package/lib/model/tags/ArbitraryTag.js.map +1 -1
- package/lib/model/tags/BrowserTag.d.ts +1 -0
- package/lib/model/tags/BrowserTag.d.ts.map +1 -0
- package/lib/model/tags/BrowserTag.js +3 -3
- package/lib/model/tags/BrowserTag.js.map +1 -1
- package/lib/model/tags/CapabilityTag.d.ts +1 -0
- package/lib/model/tags/CapabilityTag.d.ts.map +1 -0
- package/lib/model/tags/ExecutionRetriedTag.d.ts +3 -5
- package/lib/model/tags/ExecutionRetriedTag.d.ts.map +1 -0
- package/lib/model/tags/ExecutionRetriedTag.js +5 -8
- package/lib/model/tags/ExecutionRetriedTag.js.map +1 -1
- package/lib/model/tags/FeatureTag.d.ts +1 -0
- package/lib/model/tags/FeatureTag.d.ts.map +1 -0
- package/lib/model/tags/IssueTag.d.ts +1 -0
- package/lib/model/tags/IssueTag.d.ts.map +1 -0
- package/lib/model/tags/ManualTag.d.ts +1 -0
- package/lib/model/tags/ManualTag.d.ts.map +1 -0
- package/lib/model/tags/PlatformTag.d.ts +1 -0
- package/lib/model/tags/PlatformTag.d.ts.map +1 -0
- package/lib/model/tags/PlatformTag.js +3 -3
- package/lib/model/tags/PlatformTag.js.map +1 -1
- package/lib/model/tags/Tag.d.ts +1 -0
- package/lib/model/tags/Tag.d.ts.map +1 -0
- package/lib/model/tags/Tag.js +31 -8
- package/lib/model/tags/Tag.js.map +1 -1
- package/lib/model/tags/Tags.d.ts +1 -0
- package/lib/model/tags/Tags.d.ts.map +1 -0
- package/lib/model/tags/ThemeTag.d.ts +1 -0
- package/lib/model/tags/ThemeTag.d.ts.map +1 -0
- package/lib/model/tags/index.d.ts +1 -1
- package/lib/model/tags/index.d.ts.map +1 -0
- package/lib/model/tags/index.js +5 -2
- package/lib/model/tags/index.js.map +1 -1
- package/lib/screenplay/Activity.d.ts +35 -19
- package/lib/screenplay/Activity.d.ts.map +1 -0
- package/lib/screenplay/Activity.js +74 -0
- package/lib/screenplay/Activity.js.map +1 -1
- package/lib/screenplay/Actor.d.ts +146 -0
- package/lib/screenplay/Actor.d.ts.map +1 -0
- package/lib/screenplay/Actor.js +283 -0
- package/lib/screenplay/Actor.js.map +1 -0
- package/lib/screenplay/Answerable.d.ts +5 -7
- package/lib/screenplay/Answerable.d.ts.map +1 -0
- package/lib/screenplay/Answered.d.ts +13 -0
- package/lib/screenplay/Answered.d.ts.map +1 -0
- package/lib/screenplay/{Ability.js → Answered.js} +1 -1
- package/lib/screenplay/Answered.js.map +1 -0
- package/lib/screenplay/Interaction.d.ts +81 -18
- package/lib/screenplay/Interaction.d.ts.map +1 -0
- package/lib/screenplay/Interaction.js +70 -28
- package/lib/screenplay/Interaction.js.map +1 -1
- package/lib/screenplay/Optional.d.ts +15 -18
- package/lib/screenplay/Optional.d.ts.map +1 -0
- package/lib/screenplay/Question.d.ts +201 -70
- package/lib/screenplay/Question.d.ts.map +1 -0
- package/lib/screenplay/Question.js +295 -75
- package/lib/screenplay/Question.js.map +1 -1
- package/lib/screenplay/RecursivelyAnswered.d.ts +40 -0
- package/lib/screenplay/RecursivelyAnswered.d.ts.map +1 -0
- package/lib/screenplay/RecursivelyAnswered.js +3 -0
- package/lib/screenplay/RecursivelyAnswered.js.map +1 -0
- package/lib/screenplay/Task.d.ts +180 -40
- package/lib/screenplay/Task.d.ts.map +1 -0
- package/lib/screenplay/Task.js +175 -76
- package/lib/screenplay/Task.js.map +1 -1
- package/lib/screenplay/WithAnswerableProperties.d.ts +33 -0
- package/lib/screenplay/WithAnswerableProperties.d.ts.map +1 -0
- package/lib/screenplay/WithAnswerableProperties.js +3 -0
- package/lib/screenplay/WithAnswerableProperties.js.map +1 -0
- package/lib/screenplay/abilities/Ability.d.ts +397 -0
- package/lib/screenplay/abilities/Ability.d.ts.map +1 -0
- package/lib/screenplay/abilities/Ability.js +401 -0
- package/lib/screenplay/abilities/Ability.js.map +1 -0
- package/lib/screenplay/abilities/AbilityType.d.ts +45 -0
- package/lib/screenplay/abilities/AbilityType.d.ts.map +1 -0
- package/lib/screenplay/abilities/AbilityType.js.map +1 -0
- package/lib/screenplay/abilities/CanHaveAbilities.d.ts +19 -0
- package/lib/screenplay/abilities/CanHaveAbilities.d.ts.map +1 -0
- package/lib/screenplay/abilities/CanHaveAbilities.js.map +1 -0
- package/lib/screenplay/abilities/Discardable.d.ts +19 -7
- package/lib/screenplay/abilities/Discardable.d.ts.map +1 -0
- package/lib/screenplay/abilities/Initialisable.d.ts +18 -16
- package/lib/screenplay/abilities/Initialisable.d.ts.map +1 -0
- package/lib/screenplay/abilities/UsesAbilities.d.ts +23 -0
- package/lib/screenplay/abilities/UsesAbilities.d.ts.map +1 -0
- package/lib/screenplay/abilities/UsesAbilities.js.map +1 -0
- package/lib/screenplay/abilities/index.d.ts +5 -1
- package/lib/screenplay/abilities/index.d.ts.map +1 -0
- package/lib/screenplay/abilities/index.js +9 -2
- package/lib/screenplay/abilities/index.js.map +1 -1
- package/lib/screenplay/activities/PerformsActivities.d.ts +20 -0
- package/lib/screenplay/activities/PerformsActivities.d.ts.map +1 -0
- package/lib/screenplay/activities/PerformsActivities.js.map +1 -0
- package/lib/screenplay/activities/index.d.ts +2 -1
- package/lib/screenplay/activities/index.d.ts.map +1 -0
- package/lib/screenplay/activities/index.js +6 -2
- package/lib/screenplay/activities/index.js.map +1 -1
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts +24 -0
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts.map +1 -0
- package/lib/screenplay/artifacts/CollectsArtifacts.js.map +1 -0
- package/lib/screenplay/artifacts/index.d.ts +2 -0
- package/lib/screenplay/artifacts/index.d.ts.map +1 -0
- package/lib/screenplay/{actor → artifacts}/index.js +5 -6
- package/lib/screenplay/artifacts/index.js.map +1 -0
- package/lib/screenplay/debugging/Debug.d.ts +107 -0
- package/lib/screenplay/debugging/Debug.d.ts.map +1 -0
- package/lib/screenplay/debugging/Debug.js +131 -0
- package/lib/screenplay/debugging/Debug.js.map +1 -0
- package/lib/screenplay/debugging/DebuggingResult.d.ts +11 -0
- package/lib/screenplay/debugging/DebuggingResult.d.ts.map +1 -0
- package/lib/screenplay/debugging/DebuggingResult.js +3 -0
- package/lib/screenplay/debugging/DebuggingResult.js.map +1 -0
- package/lib/screenplay/debugging/Log.d.ts +47 -0
- package/lib/screenplay/debugging/Log.d.ts.map +1 -0
- package/lib/screenplay/debugging/Log.js +59 -0
- package/lib/screenplay/debugging/Log.js.map +1 -0
- package/lib/screenplay/debugging/index.d.ts +4 -0
- package/lib/screenplay/debugging/index.d.ts.map +1 -0
- package/lib/screenplay/debugging/index.js +20 -0
- package/lib/screenplay/debugging/index.js.map +1 -0
- package/lib/screenplay/index.d.ts +10 -4
- package/lib/screenplay/index.d.ts.map +1 -0
- package/lib/screenplay/index.js +14 -5
- package/lib/screenplay/index.js.map +1 -1
- package/lib/screenplay/notes/ChainableSetter.d.ts +9 -0
- package/lib/screenplay/notes/ChainableSetter.d.ts.map +1 -0
- package/lib/screenplay/notes/ChainableSetter.js +3 -0
- package/lib/screenplay/notes/ChainableSetter.js.map +1 -0
- package/lib/screenplay/notes/Notepad.d.ts +164 -0
- package/lib/screenplay/notes/Notepad.d.ts.map +1 -0
- package/lib/screenplay/notes/Notepad.js +200 -0
- package/lib/screenplay/notes/Notepad.js.map +1 -0
- package/lib/screenplay/notes/NotepadAdapter.d.ts +245 -0
- package/lib/screenplay/notes/NotepadAdapter.d.ts.map +1 -0
- package/lib/screenplay/notes/NotepadAdapter.js +298 -0
- package/lib/screenplay/notes/NotepadAdapter.js.map +1 -0
- package/lib/screenplay/notes/TakeNotes.d.ts +249 -0
- package/lib/screenplay/notes/TakeNotes.d.ts.map +1 -0
- package/lib/screenplay/notes/TakeNotes.js +259 -0
- package/lib/screenplay/notes/TakeNotes.js.map +1 -0
- package/lib/screenplay/notes/index.d.ts +6 -0
- package/lib/screenplay/notes/index.d.ts.map +1 -0
- package/lib/screenplay/notes/index.js +22 -0
- package/lib/screenplay/notes/index.js.map +1 -0
- package/lib/screenplay/notes/notes.d.ts +117 -0
- package/lib/screenplay/notes/notes.d.ts.map +1 -0
- package/lib/screenplay/notes/notes.js +123 -0
- package/lib/screenplay/notes/notes.js.map +1 -0
- package/lib/screenplay/questions/AnswersQuestions.d.ts +19 -0
- package/lib/screenplay/questions/AnswersQuestions.d.ts.map +1 -0
- package/lib/screenplay/questions/AnswersQuestions.js.map +1 -0
- package/lib/screenplay/questions/Check.d.ts +39 -57
- package/lib/screenplay/questions/Check.d.ts.map +1 -0
- package/lib/screenplay/questions/Check.js +41 -63
- package/lib/screenplay/questions/Check.js.map +1 -1
- package/lib/screenplay/questions/Expectation.d.ts +155 -44
- package/lib/screenplay/questions/Expectation.d.ts.map +1 -0
- package/lib/screenplay/questions/Expectation.js +172 -46
- package/lib/screenplay/questions/Expectation.js.map +1 -1
- package/lib/screenplay/questions/List.d.ts +14 -2
- package/lib/screenplay/questions/List.d.ts.map +1 -0
- package/lib/screenplay/questions/List.js +14 -11
- package/lib/screenplay/questions/List.js.map +1 -1
- package/lib/screenplay/questions/MetaQuestion.d.ts +18 -22
- package/lib/screenplay/questions/MetaQuestion.d.ts.map +1 -0
- package/lib/screenplay/questions/Unanswered.d.ts +20 -0
- package/lib/screenplay/questions/Unanswered.d.ts.map +1 -0
- package/lib/screenplay/questions/Unanswered.js +52 -0
- package/lib/screenplay/questions/Unanswered.js.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationDetails.d.ts +24 -0
- package/lib/screenplay/questions/expectations/ExpectationDetails.d.ts.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationDetails.js +55 -0
- package/lib/screenplay/questions/expectations/ExpectationDetails.js.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationMet.d.ts +7 -1
- package/lib/screenplay/questions/expectations/ExpectationMet.d.ts.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationMet.js +5 -0
- package/lib/screenplay/questions/expectations/ExpectationMet.js.map +1 -1
- package/lib/screenplay/questions/expectations/ExpectationNotMet.d.ts +7 -1
- package/lib/screenplay/questions/expectations/ExpectationNotMet.d.ts.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationNotMet.js +5 -0
- package/lib/screenplay/questions/expectations/ExpectationNotMet.js.map +1 -1
- package/lib/screenplay/questions/expectations/ExpectationOutcome.d.ts +13 -4
- package/lib/screenplay/questions/expectations/ExpectationOutcome.d.ts.map +1 -0
- package/lib/screenplay/questions/expectations/ExpectationOutcome.js +8 -1
- package/lib/screenplay/questions/expectations/ExpectationOutcome.js.map +1 -1
- package/lib/screenplay/questions/expectations/index.d.ts +2 -0
- package/lib/screenplay/questions/expectations/index.d.ts.map +1 -0
- package/lib/screenplay/questions/expectations/index.js +6 -1
- package/lib/screenplay/questions/expectations/index.js.map +1 -1
- package/lib/screenplay/questions/index.d.ts +3 -1
- package/lib/screenplay/questions/index.d.ts.map +1 -0
- package/lib/screenplay/questions/index.js +7 -2
- package/lib/screenplay/questions/index.js.map +1 -1
- package/lib/screenplay/questions/q.d.ts +56 -25
- package/lib/screenplay/questions/q.d.ts.map +1 -0
- package/lib/screenplay/questions/q.js +53 -23
- package/lib/screenplay/questions/q.js.map +1 -1
- package/lib/screenplay/time/abilities/ScheduleWork.d.ts +26 -0
- package/lib/screenplay/time/abilities/ScheduleWork.d.ts.map +1 -0
- package/lib/screenplay/time/abilities/ScheduleWork.js +45 -0
- package/lib/screenplay/time/abilities/ScheduleWork.js.map +1 -0
- package/lib/screenplay/time/abilities/index.d.ts +2 -0
- package/lib/screenplay/time/abilities/index.d.ts.map +1 -0
- package/lib/{io/json → screenplay/time/abilities}/index.js +6 -2
- package/lib/screenplay/time/abilities/index.js.map +1 -0
- package/lib/screenplay/time/activities/Wait.d.ts +212 -0
- package/lib/screenplay/time/activities/Wait.d.ts.map +1 -0
- package/lib/screenplay/time/activities/Wait.js +270 -0
- package/lib/screenplay/time/activities/Wait.js.map +1 -0
- package/lib/screenplay/time/activities/index.d.ts +2 -0
- package/lib/screenplay/time/activities/index.d.ts.map +1 -0
- package/lib/screenplay/{interactions → time/activities}/index.js +6 -3
- package/lib/screenplay/time/activities/index.js.map +1 -0
- package/lib/screenplay/time/index.d.ts +4 -0
- package/lib/screenplay/time/index.d.ts.map +1 -0
- package/lib/screenplay/time/index.js +20 -0
- package/lib/screenplay/time/index.js.map +1 -0
- package/lib/screenplay/time/models/Clock.d.ts +24 -0
- package/lib/screenplay/time/models/Clock.d.ts.map +1 -0
- package/lib/screenplay/time/models/Clock.js +31 -0
- package/lib/screenplay/time/models/Clock.js.map +1 -0
- package/lib/screenplay/time/models/DelayedCallback.d.ts +11 -0
- package/lib/screenplay/time/models/DelayedCallback.d.ts.map +1 -0
- package/lib/screenplay/time/models/DelayedCallback.js +3 -0
- package/lib/screenplay/time/models/DelayedCallback.js.map +1 -0
- package/lib/{model → screenplay/time/models}/Duration.d.ts +11 -1
- package/lib/screenplay/time/models/Duration.d.ts.map +1 -0
- package/lib/{model → screenplay/time/models}/Duration.js +14 -0
- package/lib/screenplay/time/models/Duration.js.map +1 -0
- package/lib/screenplay/time/models/RepeatUntilLimits.d.ts +12 -0
- package/lib/screenplay/time/models/RepeatUntilLimits.d.ts.map +1 -0
- package/lib/screenplay/time/models/RepeatUntilLimits.js +3 -0
- package/lib/screenplay/time/models/RepeatUntilLimits.js.map +1 -0
- package/lib/screenplay/time/models/Scheduler.d.ts +43 -0
- package/lib/screenplay/time/models/Scheduler.d.ts.map +1 -0
- package/lib/screenplay/time/models/Scheduler.js +166 -0
- package/lib/screenplay/time/models/Scheduler.js.map +1 -0
- package/lib/{model → screenplay/time/models}/Timestamp.d.ts +16 -0
- package/lib/screenplay/time/models/Timestamp.d.ts.map +1 -0
- package/lib/screenplay/time/models/Timestamp.js +81 -0
- package/lib/screenplay/time/models/Timestamp.js.map +1 -0
- package/lib/screenplay/time/models/index.d.ts +7 -0
- package/lib/screenplay/time/models/index.d.ts.map +1 -0
- package/lib/screenplay/time/models/index.js +23 -0
- package/lib/screenplay/time/models/index.js.map +1 -0
- package/lib/stage/Cast.d.ts +142 -49
- package/lib/stage/Cast.d.ts.map +1 -0
- package/lib/stage/Cast.js +141 -55
- package/lib/stage/Cast.js.map +1 -1
- package/lib/stage/Extras.d.ts +2 -4
- package/lib/stage/Extras.d.ts.map +1 -0
- package/lib/stage/Extras.js +1 -4
- package/lib/stage/Extras.js.map +1 -1
- package/lib/stage/ListensToDomainEvents.d.ts +14 -11
- package/lib/stage/ListensToDomainEvents.d.ts.map +1 -0
- package/lib/stage/Stage.d.ts +81 -100
- package/lib/stage/Stage.d.ts.map +1 -0
- package/lib/stage/Stage.js +122 -119
- package/lib/stage/Stage.js.map +1 -1
- package/lib/stage/StageCrewMember.d.ts +67 -15
- package/lib/stage/StageCrewMember.d.ts.map +1 -0
- package/lib/stage/StageCrewMemberBuilder.d.ts +14 -12
- package/lib/stage/StageCrewMemberBuilder.d.ts.map +1 -0
- package/lib/stage/StageCrewMemberBuilderDependencies.d.ts +6 -13
- package/lib/stage/StageCrewMemberBuilderDependencies.d.ts.map +1 -0
- package/lib/stage/StageManager.d.ts +6 -2
- package/lib/stage/StageManager.d.ts.map +1 -0
- package/lib/stage/StageManager.js +22 -20
- package/lib/stage/StageManager.js.map +1 -1
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts +70 -47
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts.map +1 -0
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js +80 -56
- package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js.map +1 -1
- package/lib/stage/crew/artifact-archiver/Hash.d.ts +1 -0
- package/lib/stage/crew/artifact-archiver/Hash.d.ts.map +1 -0
- package/lib/stage/crew/artifact-archiver/Hash.js +3 -3
- package/lib/stage/crew/artifact-archiver/Hash.js.map +1 -1
- package/lib/stage/crew/artifact-archiver/index.d.ts +1 -0
- package/lib/stage/crew/artifact-archiver/index.d.ts.map +1 -0
- package/lib/stage/crew/artifact-archiver/index.js +5 -1
- package/lib/stage/crew/artifact-archiver/index.js.map +1 -1
- package/lib/stage/crew/index.d.ts +1 -0
- package/lib/stage/crew/index.d.ts.map +1 -0
- package/lib/stage/crew/index.js +5 -1
- package/lib/stage/crew/index.js.map +1 -1
- package/lib/stage/crew/stream-reporter/StreamReporter.d.ts +82 -54
- package/lib/stage/crew/stream-reporter/StreamReporter.d.ts.map +1 -0
- package/lib/stage/crew/stream-reporter/StreamReporter.js +81 -54
- package/lib/stage/crew/stream-reporter/StreamReporter.js.map +1 -1
- package/lib/stage/crew/stream-reporter/index.d.ts +1 -0
- package/lib/stage/crew/stream-reporter/index.d.ts.map +1 -0
- package/lib/stage/crew/stream-reporter/index.js +5 -1
- package/lib/stage/crew/stream-reporter/index.js.map +1 -1
- package/lib/stage/index.d.ts +2 -1
- package/lib/stage/index.d.ts.map +1 -0
- package/lib/stage/index.js +6 -2
- package/lib/stage/index.js.map +1 -1
- package/lib/stage/queues/DomainEventQueue.d.ts +25 -0
- package/lib/stage/queues/DomainEventQueue.d.ts.map +1 -0
- package/lib/stage/queues/DomainEventQueue.js +33 -0
- package/lib/stage/queues/DomainEventQueue.js.map +1 -0
- package/lib/stage/queues/DomainEventQueues.d.ts +22 -0
- package/lib/stage/queues/DomainEventQueues.d.ts.map +1 -0
- package/lib/stage/queues/DomainEventQueues.js +76 -0
- package/lib/stage/queues/DomainEventQueues.js.map +1 -0
- package/lib/stage/queues/index.d.ts +3 -0
- package/lib/stage/queues/index.d.ts.map +1 -0
- package/lib/stage/queues/index.js +19 -0
- package/lib/stage/queues/index.js.map +1 -0
- package/package.json +31 -51
- package/src/Serenity.ts +183 -88
- package/src/adapter/OutputStream.ts +13 -0
- package/src/adapter/TestRunnerAdapter.ts +35 -0
- package/src/adapter/index.ts +2 -0
- package/src/config/ClassDescription.ts +55 -0
- package/src/config/SerenityConfig.ts +79 -0
- package/src/config/index.ts +2 -0
- package/src/errors/ErrorFactory.ts +329 -0
- package/src/errors/ErrorOptions.ts +16 -0
- package/src/errors/ErrorSerialiser.ts +106 -0
- package/src/{io → errors}/ErrorStackParser.ts +4 -4
- package/src/errors/RaiseErrors.ts +61 -0
- package/src/errors/diff/AnsiDiffFormatter.ts +41 -0
- package/src/errors/diff/DiffFormatter.ts +12 -0
- package/src/errors/diff/NoOpDiffFormatter.ts +20 -0
- package/src/errors/diff/index.ts +3 -0
- package/src/errors/index.ts +28 -7
- package/src/errors/model/AssertionError.ts +31 -0
- package/src/errors/model/ConfigurationError.ts +31 -0
- package/src/errors/model/ImplementationPendingError.ts +52 -0
- package/src/errors/model/ListItemNotFoundError.ts +35 -0
- package/src/errors/model/LogicError.ts +35 -0
- package/src/errors/model/OperationInterruptedError.ts +38 -0
- package/src/errors/model/RuntimeError.ts +101 -0
- package/src/errors/model/TestCompromisedError.ts +46 -0
- package/src/errors/model/TimeoutExpiredError.ts +38 -0
- package/src/errors/model/UnknownError.ts +31 -0
- package/src/errors/model/index.ts +10 -0
- package/src/events/ActivityFinished.ts +4 -5
- package/src/events/ActivityRelatedArtifactArchived.ts +6 -1
- package/src/events/ActivityRelatedArtifactGenerated.ts +5 -1
- package/src/events/ActivityStarts.ts +4 -5
- package/src/events/ArtifactArchived.ts +5 -1
- package/src/events/ArtifactGenerated.ts +5 -1
- package/src/events/AsyncOperationAborted.ts +28 -0
- package/src/events/AsyncOperationAttempted.ts +11 -4
- package/src/events/AsyncOperationCompleted.ts +5 -4
- package/src/events/AsyncOperationFailed.ts +6 -2
- package/src/events/BusinessRuleDetected.ts +5 -5
- package/src/events/DomainEvent.ts +4 -7
- package/src/events/FeatureNarrativeDetected.ts +5 -1
- package/src/events/InteractionFinished.ts +5 -1
- package/src/events/InteractionStarts.ts +5 -1
- package/src/events/RetryableSceneDetected.ts +8 -10
- package/src/events/SceneBackgroundDetected.ts +6 -1
- package/src/events/SceneDescriptionDetected.ts +5 -1
- package/src/events/SceneFinished.ts +5 -1
- package/src/events/SceneFinishes.ts +8 -7
- package/src/events/SceneParametersDetected.ts +5 -1
- package/src/events/SceneSequenceDetected.ts +5 -1
- package/src/events/SceneStarts.ts +5 -1
- package/src/events/SceneTagged.ts +5 -1
- package/src/events/SceneTemplateDetected.ts +5 -1
- package/src/events/TaskFinished.ts +5 -1
- package/src/events/TaskStarts.ts +5 -1
- package/src/events/TestRunFinished.ts +14 -6
- package/src/events/TestRunFinishes.ts +5 -4
- package/src/events/TestRunStarts.ts +3 -4
- package/src/events/TestRunnerDetected.ts +7 -4
- package/src/events/TestSuiteFinished.ts +5 -1
- package/src/events/TestSuiteStarts.ts +5 -1
- package/src/events/index.ts +1 -0
- package/src/index.ts +1 -2
- package/src/instance.ts +180 -91
- package/src/io/FileFinder.ts +2 -1
- package/src/io/FileSystem.ts +1 -1
- package/src/io/Path.ts +6 -3
- package/src/io/asyncMap.ts +6 -5
- package/src/io/commaSeparated.ts +8 -9
- package/src/io/format.ts +49 -22
- package/src/io/index.ts +3 -9
- package/src/io/inspected.ts +13 -271
- package/src/io/inspectedObject.ts +38 -0
- package/src/io/loader/ClassDescriptionParser.ts +67 -0
- package/src/io/loader/ClassDescriptor.ts +7 -0
- package/src/io/loader/ClassLoader.ts +42 -0
- package/src/io/{ModuleLoader.ts → loader/ModuleLoader.ts} +11 -19
- package/src/io/{Version.ts → loader/Version.ts} +2 -5
- package/src/io/loader/index.ts +5 -0
- package/src/io/reflection/has.ts +3 -5
- package/src/io/reflection/index.ts +2 -0
- package/src/io/reflection/isPrimitive.ts +20 -0
- package/src/io/reflection/typeOf.ts +31 -0
- package/src/io/stringified.ts +266 -0
- package/src/io/trimmed.ts +7 -9
- package/src/model/ActivityDetails.ts +8 -2
- package/src/model/CorrelationId.ts +1 -1
- package/src/model/ScenarioDetails.ts +4 -1
- package/src/model/artifacts/HTTPRequestResponse.ts +6 -10
- package/src/model/artifacts/Photo.ts +0 -8
- package/src/model/artifacts/index.ts +0 -1
- package/src/model/index.ts +0 -2
- package/src/model/outcomes.ts +5 -4
- package/src/model/tags/ArbitraryTag.ts +2 -5
- package/src/model/tags/ExecutionRetriedTag.ts +2 -5
- package/src/model/tags/index.ts +0 -1
- package/src/screenplay/Activity.ts +78 -20
- package/src/screenplay/Actor.ts +370 -0
- package/src/screenplay/Answerable.ts +3 -6
- package/src/screenplay/Answered.ts +16 -0
- package/src/screenplay/Interaction.ts +85 -42
- package/src/screenplay/Optional.ts +14 -18
- package/src/screenplay/Question.ts +369 -114
- package/src/screenplay/RecursivelyAnswered.ts +43 -0
- package/src/screenplay/Task.ts +185 -88
- package/src/screenplay/WithAnswerableProperties.ts +36 -0
- package/src/screenplay/abilities/Ability.ts +403 -0
- package/src/screenplay/abilities/AbilityType.ts +46 -0
- package/src/screenplay/abilities/CanHaveAbilities.ts +20 -0
- package/src/screenplay/abilities/Discardable.ts +19 -7
- package/src/screenplay/abilities/Initialisable.ts +17 -16
- package/src/screenplay/abilities/UsesAbilities.ts +24 -0
- package/src/screenplay/abilities/index.ts +4 -1
- package/src/screenplay/activities/PerformsActivities.ts +21 -0
- package/src/screenplay/activities/index.ts +1 -1
- package/src/screenplay/artifacts/CollectsArtifacts.ts +25 -0
- package/src/screenplay/artifacts/index.ts +1 -0
- package/src/screenplay/debugging/Debug.ts +161 -0
- package/src/screenplay/debugging/DebuggingResult.ts +10 -0
- package/src/screenplay/debugging/Log.ts +68 -0
- package/src/screenplay/debugging/index.ts +3 -0
- package/src/screenplay/index.ts +9 -4
- package/src/screenplay/notes/ChainableSetter.ts +9 -0
- package/src/screenplay/notes/Notepad.ts +208 -0
- package/src/screenplay/notes/NotepadAdapter.ts +317 -0
- package/src/screenplay/notes/TakeNotes.ts +257 -0
- package/src/screenplay/notes/index.ts +5 -0
- package/src/screenplay/notes/notes.ts +120 -0
- package/src/screenplay/questions/AnswersQuestions.ts +20 -0
- package/src/screenplay/questions/Check.ts +41 -62
- package/src/screenplay/questions/Expectation.ts +211 -65
- package/src/screenplay/questions/List.ts +18 -11
- package/src/screenplay/questions/MetaQuestion.ts +18 -22
- package/src/screenplay/questions/Unanswered.ts +27 -0
- package/src/screenplay/questions/expectations/ExpectationDetails.ts +64 -0
- package/src/screenplay/questions/expectations/ExpectationMet.ts +6 -1
- package/src/screenplay/questions/expectations/ExpectationNotMet.ts +6 -1
- package/src/screenplay/questions/expectations/ExpectationOutcome.ts +12 -3
- package/src/screenplay/questions/expectations/index.ts +1 -0
- package/src/screenplay/questions/index.ts +2 -1
- package/src/screenplay/questions/q.ts +55 -25
- package/src/screenplay/time/abilities/ScheduleWork.ts +52 -0
- package/src/screenplay/time/abilities/index.ts +1 -0
- package/src/screenplay/time/activities/Wait.ts +294 -0
- package/src/screenplay/time/activities/index.ts +1 -0
- package/src/screenplay/time/index.ts +3 -0
- package/src/screenplay/time/models/Clock.ts +28 -0
- package/src/screenplay/time/models/DelayedCallback.ts +8 -0
- package/src/{model → screenplay/time/models}/Duration.ts +17 -1
- package/src/screenplay/time/models/RepeatUntilLimits.ts +12 -0
- package/src/screenplay/time/models/Scheduler.ts +226 -0
- package/src/{model → screenplay/time/models}/Timestamp.ts +36 -2
- package/src/screenplay/time/models/index.ts +6 -0
- package/src/stage/Cast.ts +147 -62
- package/src/stage/Extras.ts +1 -4
- package/src/stage/ListensToDomainEvents.ts +13 -11
- package/src/stage/Stage.ts +140 -130
- package/src/stage/StageCrewMember.ts +66 -15
- package/src/stage/StageCrewMemberBuilder.ts +13 -12
- package/src/stage/StageCrewMemberBuilderDependencies.ts +5 -15
- package/src/stage/StageManager.ts +44 -44
- package/src/stage/crew/artifact-archiver/ArtifactArchiver.ts +81 -53
- package/src/stage/crew/stream-reporter/StreamReporter.ts +81 -54
- package/src/stage/index.ts +1 -1
- package/src/stage/queues/DomainEventQueue.ts +41 -0
- package/src/stage/queues/DomainEventQueues.ts +88 -0
- package/src/stage/queues/index.ts +2 -0
- package/tsconfig.build.json +10 -0
- package/lib/SerenityConfig.d.ts +0 -45
- package/lib/SerenityConfig.js +0 -12
- package/lib/SerenityConfig.js.map +0 -1
- package/lib/errors/AssertionError.d.ts +0 -18
- package/lib/errors/AssertionError.js +0 -25
- package/lib/errors/AssertionError.js.map +0 -1
- package/lib/errors/ConfigurationError.d.ts +0 -14
- package/lib/errors/ConfigurationError.js +0 -21
- package/lib/errors/ConfigurationError.js.map +0 -1
- package/lib/errors/ImplementationPendingError.d.ts +0 -29
- package/lib/errors/ImplementationPendingError.js +0 -36
- package/lib/errors/ImplementationPendingError.js.map +0 -1
- package/lib/errors/LogicError.d.ts +0 -17
- package/lib/errors/LogicError.js +0 -24
- package/lib/errors/LogicError.js.map +0 -1
- package/lib/errors/RuntimeError.d.ts +0 -43
- package/lib/errors/RuntimeError.js +0 -58
- package/lib/errors/RuntimeError.js.map +0 -1
- package/lib/errors/TestCompromisedError.d.ts +0 -26
- package/lib/errors/TestCompromisedError.js +0 -33
- package/lib/errors/TestCompromisedError.js.map +0 -1
- package/lib/errors/UnknownError.d.ts +0 -14
- package/lib/errors/UnknownError.js +0 -21
- package/lib/errors/UnknownError.js.map +0 -1
- package/lib/io/AssertionReportDiffer.d.ts +0 -12
- package/lib/io/AssertionReportDiffer.js +0 -34
- package/lib/io/AssertionReportDiffer.js.map +0 -1
- package/lib/io/ErrorSerialiser.d.ts +0 -27
- package/lib/io/ErrorSerialiser.js.map +0 -1
- package/lib/io/ErrorStackParser.d.ts +0 -12
- package/lib/io/ErrorStackParser.js +0 -19
- package/lib/io/ErrorStackParser.js.map +0 -1
- package/lib/io/ModuleLoader.js +0 -81
- package/lib/io/ModuleLoader.js.map +0 -1
- package/lib/io/OutputStream.d.ts +0 -16
- package/lib/io/TestRunnerAdapter.d.ts +0 -47
- package/lib/io/TestRunnerAdapter.js.map +0 -1
- package/lib/io/Version.js.map +0 -1
- package/lib/io/formatted.d.ts +0 -16
- package/lib/io/formatted.js +0 -23
- package/lib/io/formatted.js.map +0 -1
- package/lib/io/json/cycle.d.ts +0 -11
- package/lib/io/json/cycle.js +0 -165
- package/lib/io/json/cycle.js.map +0 -1
- package/lib/io/json/index.d.ts +0 -1
- package/lib/io/json/index.js.map +0 -1
- package/lib/model/Duration.js.map +0 -1
- package/lib/model/Timestamp.js +0 -48
- package/lib/model/Timestamp.js.map +0 -1
- package/lib/model/artifacts/AssertionReport.d.ts +0 -7
- package/lib/model/artifacts/AssertionReport.js +0 -11
- package/lib/model/artifacts/AssertionReport.js.map +0 -1
- package/lib/model/tags/ContextTag.d.ts +0 -17
- package/lib/model/tags/ContextTag.js +0 -24
- package/lib/model/tags/ContextTag.js.map +0 -1
- package/lib/screenplay/Ability.d.ts +0 -100
- package/lib/screenplay/Ability.js.map +0 -1
- package/lib/screenplay/AbilityType.d.ts +0 -42
- package/lib/screenplay/AbilityType.js.map +0 -1
- package/lib/screenplay/abilities/TakeNotes.d.ts +0 -151
- package/lib/screenplay/abilities/TakeNotes.js +0 -205
- package/lib/screenplay/abilities/TakeNotes.js.map +0 -1
- package/lib/screenplay/activities/ActivityDescriber.d.ts +0 -9
- package/lib/screenplay/activities/ActivityDescriber.js +0 -18
- package/lib/screenplay/activities/ActivityDescriber.js.map +0 -1
- package/lib/screenplay/activities/OutcomeMatcher.d.ts +0 -5
- package/lib/screenplay/activities/OutcomeMatcher.js +0 -21
- package/lib/screenplay/activities/OutcomeMatcher.js.map +0 -1
- package/lib/screenplay/activities/TrackedActivity.d.ts +0 -17
- package/lib/screenplay/activities/TrackedActivity.js +0 -40
- package/lib/screenplay/activities/TrackedActivity.js.map +0 -1
- package/lib/screenplay/actor/Actor.d.ts +0 -106
- package/lib/screenplay/actor/Actor.js +0 -189
- package/lib/screenplay/actor/Actor.js.map +0 -1
- package/lib/screenplay/actor/AnswersQuestions.d.ts +0 -10
- package/lib/screenplay/actor/AnswersQuestions.js.map +0 -1
- package/lib/screenplay/actor/CanHaveAbilities.d.ts +0 -15
- package/lib/screenplay/actor/CanHaveAbilities.js.map +0 -1
- package/lib/screenplay/actor/CollectsArtifacts.d.ts +0 -17
- package/lib/screenplay/actor/CollectsArtifacts.js.map +0 -1
- package/lib/screenplay/actor/PerformsActivities.d.ts +0 -10
- package/lib/screenplay/actor/PerformsActivities.js.map +0 -1
- package/lib/screenplay/actor/UsesAbilities.d.ts +0 -18
- package/lib/screenplay/actor/UsesAbilities.js.map +0 -1
- package/lib/screenplay/actor/index.d.ts +0 -6
- package/lib/screenplay/actor/index.js.map +0 -1
- package/lib/screenplay/interactions/Log.d.ts +0 -57
- package/lib/screenplay/interactions/Log.js +0 -74
- package/lib/screenplay/interactions/Log.js.map +0 -1
- package/lib/screenplay/interactions/TakeNote.d.ts +0 -87
- package/lib/screenplay/interactions/TakeNote.js +0 -103
- package/lib/screenplay/interactions/TakeNote.js.map +0 -1
- package/lib/screenplay/interactions/index.d.ts +0 -2
- package/lib/screenplay/interactions/index.js.map +0 -1
- package/lib/screenplay/questions/Note.d.ts +0 -79
- package/lib/screenplay/questions/Note.js +0 -96
- package/lib/screenplay/questions/Note.js.map +0 -1
- package/lib/stage/Clock.d.ts +0 -15
- package/lib/stage/Clock.js +0 -23
- package/lib/stage/Clock.js.map +0 -1
- package/src/SerenityConfig.ts +0 -49
- package/src/errors/AssertionError.ts +0 -20
- package/src/errors/ConfigurationError.ts +0 -18
- package/src/errors/ImplementationPendingError.ts +0 -33
- package/src/errors/LogicError.ts +0 -21
- package/src/errors/RuntimeError.ts +0 -60
- package/src/errors/TestCompromisedError.ts +0 -30
- package/src/errors/UnknownError.ts +0 -18
- package/src/io/AssertionReportDiffer.ts +0 -43
- package/src/io/ErrorSerialiser.ts +0 -78
- package/src/io/OutputStream.ts +0 -16
- package/src/io/TestRunnerAdapter.ts +0 -50
- package/src/io/formatted.ts +0 -20
- package/src/io/json/cycle.ts +0 -177
- package/src/io/json/index.ts +0 -1
- package/src/model/artifacts/AssertionReport.ts +0 -7
- package/src/model/tags/ContextTag.ts +0 -21
- package/src/screenplay/Ability.ts +0 -100
- package/src/screenplay/AbilityType.ts +0 -44
- package/src/screenplay/abilities/TakeNotes.ts +0 -216
- package/src/screenplay/activities/ActivityDescriber.ts +0 -20
- package/src/screenplay/activities/OutcomeMatcher.ts +0 -25
- package/src/screenplay/activities/TrackedActivity.ts +0 -50
- package/src/screenplay/actor/Actor.ts +0 -243
- package/src/screenplay/actor/AnswersQuestions.ts +0 -11
- package/src/screenplay/actor/CanHaveAbilities.ts +0 -16
- package/src/screenplay/actor/CollectsArtifacts.ts +0 -18
- package/src/screenplay/actor/PerformsActivities.ts +0 -11
- package/src/screenplay/actor/UsesAbilities.ts +0 -20
- package/src/screenplay/actor/index.ts +0 -6
- package/src/screenplay/interactions/Log.ts +0 -81
- package/src/screenplay/interactions/TakeNote.ts +0 -107
- package/src/screenplay/interactions/index.ts +0 -2
- package/src/screenplay/questions/Note.ts +0 -99
- package/src/stage/Clock.ts +0 -19
- package/tsconfig.eslint.json +0 -10
- /package/lib/{io → adapter}/OutputStream.js +0 -0
- /package/lib/{io → adapter}/TestRunnerAdapter.js +0 -0
- /package/lib/screenplay/{AbilityType.js → abilities/AbilityType.js} +0 -0
- /package/lib/screenplay/{actor → abilities}/CanHaveAbilities.js +0 -0
- /package/lib/screenplay/{actor → abilities}/UsesAbilities.js +0 -0
- /package/lib/screenplay/{actor → activities}/PerformsActivities.js +0 -0
- /package/lib/screenplay/{actor → artifacts}/CollectsArtifacts.js +0 -0
- /package/lib/screenplay/{actor → questions}/AnswersQuestions.js +0 -0
package/src/stage/Stage.ts
CHANGED
|
@@ -1,91 +1,101 @@
|
|
|
1
1
|
import { ensure, isDefined } from 'tiny-types';
|
|
2
2
|
|
|
3
|
-
import { ConfigurationError, LogicError } from '../errors';
|
|
3
|
+
import { ConfigurationError, ErrorFactory, ErrorOptions, LogicError, RaiseErrors, RuntimeError } from '../errors';
|
|
4
4
|
import { AsyncOperationAttempted, AsyncOperationCompleted, AsyncOperationFailed, DomainEvent, SceneFinishes, SceneStarts, TestRunFinishes } from '../events';
|
|
5
|
-
import { CorrelationId, Description,
|
|
6
|
-
import { Actor } from '../screenplay
|
|
5
|
+
import { ActivityDetails, CorrelationId, Description, Name } from '../model';
|
|
6
|
+
import { Actor, Clock, Duration, ScheduleWork, Timestamp } from '../screenplay';
|
|
7
7
|
import { ListensToDomainEvents } from '../stage';
|
|
8
8
|
import { Cast } from './Cast';
|
|
9
9
|
import { StageManager } from './StageManager';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* @
|
|
13
|
-
* The place where {@link Actor}s perform.
|
|
12
|
+
* Stage is the place where {@apilink Actor|actors} perform.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* In more technical terms, the Stage is the main event bus propagating {@apilink DomainEvent|DomainEvents}
|
|
15
|
+
* to {@apilink Actor|Actors} it instantiates and {@apilink StageCrewMember|StageCrewMembers} that have been registered with it.
|
|
17
16
|
*
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
17
|
+
* It is unlikely that you'll ever need to interact with the `Stage` directly in your tests. Instead, you'll use functions like
|
|
18
|
+
* {@apilink actorCalled} and {@apilink actorInTheSpotlight}.
|
|
19
|
+
*
|
|
20
|
+
* ## Learn more
|
|
21
|
+
* - {@apilink configure}
|
|
22
|
+
* - {@apilink engage}
|
|
23
|
+
*
|
|
24
|
+
* @group Stage
|
|
20
25
|
*/
|
|
21
26
|
export class Stage {
|
|
22
27
|
|
|
28
|
+
private static readonly unknownSceneId = new CorrelationId('unknown')
|
|
29
|
+
|
|
23
30
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* who will be dismissed when the scene finishes.
|
|
27
|
-
*
|
|
28
|
-
* @private
|
|
31
|
+
* Actors instantiated after the scene has started,
|
|
32
|
+
* who will be dismissed when the scene finishes.
|
|
29
33
|
*/
|
|
30
34
|
private actorsOnFrontStage: Map<string, Actor> = new Map<string, Actor>();
|
|
31
35
|
|
|
32
36
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* who will be dismissed when the test run finishes.
|
|
36
|
-
*
|
|
37
|
-
* @private
|
|
37
|
+
* Actors instantiated before the scene has started,
|
|
38
|
+
* who will be dismissed when the test run finishes.
|
|
38
39
|
*/
|
|
39
40
|
private actorsOnBackstage: Map<string, Actor> = new Map<string, Actor>();
|
|
40
41
|
|
|
41
42
|
private actorsOnStage: Map<string, Actor> = this.actorsOnBackstage;
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
|
-
* @
|
|
45
|
-
* The most recent actor referenced via the {@link actor} method
|
|
46
|
-
*
|
|
47
|
-
* @private
|
|
45
|
+
* The most recent actor referenced via the {@apilink actor} method
|
|
48
46
|
*/
|
|
49
47
|
private actorInTheSpotlight: Actor = undefined;
|
|
50
48
|
|
|
51
|
-
private currentActivity: CorrelationId = undefined;
|
|
52
|
-
|
|
49
|
+
private currentActivity: { id: CorrelationId, details: ActivityDetails } = undefined;
|
|
50
|
+
|
|
51
|
+
private currentScene: CorrelationId = Stage.unknownSceneId;
|
|
53
52
|
|
|
54
53
|
/**
|
|
55
|
-
* @param
|
|
56
|
-
* @param
|
|
54
|
+
* @param cast
|
|
55
|
+
* @param manager
|
|
56
|
+
* @param errors
|
|
57
|
+
* @param clock
|
|
58
|
+
* @param interactionTimeout
|
|
57
59
|
*/
|
|
58
60
|
constructor(
|
|
59
61
|
private cast: Cast,
|
|
60
62
|
private readonly manager: StageManager,
|
|
63
|
+
private errors: ErrorFactory,
|
|
64
|
+
private readonly clock: Clock,
|
|
65
|
+
private readonly interactionTimeout: Duration,
|
|
61
66
|
) {
|
|
62
67
|
ensure('Cast', cast, isDefined());
|
|
63
68
|
ensure('StageManager', manager, isDefined());
|
|
69
|
+
ensure('ErrorFactory', errors, isDefined());
|
|
70
|
+
ensure('Clock', clock, isDefined());
|
|
71
|
+
ensure('interactionTimeout', interactionTimeout, isDefined());
|
|
64
72
|
}
|
|
65
73
|
|
|
66
74
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* @
|
|
70
|
-
* @param {string} name
|
|
71
|
-
* @return {Actor}
|
|
75
|
+
* An alias for {@apilink Stage.actor}
|
|
76
|
+
*
|
|
77
|
+
* @param name
|
|
72
78
|
*/
|
|
73
79
|
theActorCalled(name: string): Actor {
|
|
74
80
|
return this.actor(name);
|
|
75
81
|
}
|
|
76
82
|
|
|
77
83
|
/**
|
|
78
|
-
*
|
|
79
|
-
* by their name if they've already been instantiated.
|
|
84
|
+
* Instantiates a new {@apilink Actor} or fetches an existing one
|
|
85
|
+
* identified by their name if they've already been instantiated.
|
|
80
86
|
*
|
|
81
|
-
* @param
|
|
82
|
-
*
|
|
87
|
+
* @param name
|
|
88
|
+
* Case-sensitive name of the Actor, e.g. `Alice`
|
|
83
89
|
*/
|
|
84
90
|
actor(name: string): Actor {
|
|
85
91
|
if (! this.instantiatedActorCalled(name)) {
|
|
86
92
|
let actor;
|
|
87
93
|
try {
|
|
88
|
-
const newActor = new Actor(name, this)
|
|
94
|
+
const newActor = new Actor(name, this)
|
|
95
|
+
.whoCan(
|
|
96
|
+
new RaiseErrors(this),
|
|
97
|
+
new ScheduleWork(this.clock, this.interactionTimeout),
|
|
98
|
+
);
|
|
89
99
|
|
|
90
100
|
actor = this.cast.prepare(newActor);
|
|
91
101
|
|
|
@@ -109,12 +119,11 @@ export class Stage {
|
|
|
109
119
|
}
|
|
110
120
|
|
|
111
121
|
/**
|
|
112
|
-
* @
|
|
113
|
-
*
|
|
114
|
-
* Useful when you don't can't or choose not to reference the actor by their name.
|
|
122
|
+
* Returns the last {@apilink Actor} instantiated via {@apilink Stage.actor}.
|
|
123
|
+
* Useful when you don't can't or choose not to reference the actor by their name.
|
|
115
124
|
*
|
|
116
|
-
* @throws {LogicError}
|
|
117
|
-
* @
|
|
125
|
+
* @throws {LogicError}
|
|
126
|
+
* If no {@apilink Actor} has been activated yet
|
|
118
127
|
*/
|
|
119
128
|
theActorInTheSpotlight(): Actor {
|
|
120
129
|
if (! this.actorInTheSpotlight) {
|
|
@@ -125,51 +134,47 @@ export class Stage {
|
|
|
125
134
|
}
|
|
126
135
|
|
|
127
136
|
/**
|
|
128
|
-
* @
|
|
129
|
-
* Returns {true} if there is an {@link Actor} in the spotlight, {false} otherwise.
|
|
130
|
-
*
|
|
131
|
-
* @return {boolean}
|
|
137
|
+
* Returns `true` if there is an {@apilink Actor} in the spotlight, `false` otherwise.
|
|
132
138
|
*/
|
|
133
139
|
theShowHasStarted(): boolean {
|
|
134
140
|
return !! this.actorInTheSpotlight;
|
|
135
141
|
}
|
|
136
142
|
|
|
137
143
|
/**
|
|
138
|
-
* @
|
|
139
|
-
*
|
|
140
|
-
* instantiated via {@link Stage#actor} using the provided {@link Cast}.
|
|
144
|
+
* Configures the Stage to prepare {@apilink Actor|Actors}
|
|
145
|
+
* instantiated via {@apilink Stage.actor} using the provided {@apilink Cast}.
|
|
141
146
|
*
|
|
142
|
-
* @param
|
|
143
|
-
* @returns {void}
|
|
147
|
+
* @param actors
|
|
144
148
|
*/
|
|
145
149
|
engage(actors: Cast): void {
|
|
146
150
|
ensure('Cast', actors, isDefined());
|
|
147
151
|
|
|
148
|
-
this.cast
|
|
152
|
+
this.cast = actors;
|
|
149
153
|
}
|
|
150
154
|
|
|
151
155
|
/**
|
|
152
|
-
* @
|
|
153
|
-
*
|
|
154
|
-
* emitted via {@link Stage#announce}
|
|
156
|
+
* Assigns listeners to be notified of {@apilink DomainEvent|DomainEvents}
|
|
157
|
+
* emitted via {@apilink Stage.announce}.s
|
|
155
158
|
*
|
|
156
|
-
* @param
|
|
157
|
-
* @returns {void}
|
|
159
|
+
* @param listeners
|
|
158
160
|
*/
|
|
159
161
|
assign(...listeners: ListensToDomainEvents[]): void {
|
|
160
162
|
this.manager.register(...listeners);
|
|
161
163
|
}
|
|
162
164
|
|
|
163
165
|
/**
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* @listens {DomainEvent}
|
|
166
|
+
* Notifies all the assigned listeners of the events,
|
|
167
|
+
* emitting them one by one.
|
|
168
168
|
*
|
|
169
|
-
* @param
|
|
170
|
-
* @returns {void}
|
|
169
|
+
* @param events
|
|
171
170
|
*/
|
|
172
|
-
announce(
|
|
171
|
+
announce(...events: Array<DomainEvent>): void {
|
|
172
|
+
events.forEach(event => {
|
|
173
|
+
this.announceSingle(event)
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
private announceSingle(event: DomainEvent): void {
|
|
173
178
|
if (event instanceof SceneStarts) {
|
|
174
179
|
this.actorsOnStage = this.actorsOnFrontStage;
|
|
175
180
|
}
|
|
@@ -188,27 +193,23 @@ export class Stage {
|
|
|
188
193
|
}
|
|
189
194
|
|
|
190
195
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* {@link DomainEvent} objects are instantiated by hand.
|
|
194
|
-
*
|
|
195
|
-
* @returns {Timestamp}
|
|
196
|
+
* Returns current time. This method should be used whenever
|
|
197
|
+
* {@apilink DomainEvent} objects are instantiated by you programmatically.
|
|
196
198
|
*/
|
|
197
199
|
currentTime(): Timestamp {
|
|
198
200
|
return this.manager.currentTime();
|
|
199
201
|
}
|
|
200
202
|
|
|
201
203
|
/**
|
|
202
|
-
* @
|
|
203
|
-
*
|
|
204
|
-
* for the current scene.
|
|
205
|
-
*
|
|
206
|
-
* This method should be used in custom test runner adapters
|
|
207
|
-
* when instantiating a {@link SceneStarts} event.
|
|
204
|
+
* Generates and remembers a {@apilink CorrelationId}
|
|
205
|
+
* for the current scene.
|
|
208
206
|
*
|
|
209
|
-
*
|
|
207
|
+
* This method should be used in custom test runner adapters
|
|
208
|
+
* when instantiating a {@apilink SceneStarts} event.
|
|
210
209
|
*
|
|
211
|
-
*
|
|
210
|
+
* #### Learn more
|
|
211
|
+
* - {@apilink Stage.currentSceneId}
|
|
212
|
+
* - {@apilink CorrelationId}
|
|
212
213
|
*/
|
|
213
214
|
assignNewSceneId(): CorrelationId {
|
|
214
215
|
// todo: inject an id factory to make it easier to test
|
|
@@ -218,106 +219,115 @@ export class Stage {
|
|
|
218
219
|
}
|
|
219
220
|
|
|
220
221
|
/**
|
|
221
|
-
* @
|
|
222
|
-
* Returns the {@link CorrelationId} for the current scene.
|
|
222
|
+
* Returns the {@apilink CorrelationId} for the current scene.
|
|
223
223
|
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
* @returns {CorrelationId}
|
|
224
|
+
* #### Learn more
|
|
225
|
+
* - {@apilink Stage.assignNewSceneId}
|
|
227
226
|
*/
|
|
228
227
|
currentSceneId(): CorrelationId {
|
|
229
228
|
return this.currentScene;
|
|
230
229
|
}
|
|
231
230
|
|
|
232
231
|
/**
|
|
233
|
-
* @
|
|
234
|
-
*
|
|
235
|
-
* for the current {@link Activity}.
|
|
236
|
-
*
|
|
237
|
-
* This method should be used in custom test runner adapters
|
|
238
|
-
* when instantiating an {@link ActivityStarts} event.
|
|
232
|
+
* Generates and remembers a {@apilink CorrelationId}
|
|
233
|
+
* for the current {@apilink Activity}.
|
|
239
234
|
*
|
|
240
|
-
*
|
|
235
|
+
* This method should be used in custom test runner adapters
|
|
236
|
+
* when instantiating the {@apilink ActivityStarts} event.
|
|
241
237
|
*
|
|
242
|
-
*
|
|
238
|
+
* #### Learn more
|
|
239
|
+
* - {@apilink Stage.currentActivityId}
|
|
243
240
|
*/
|
|
244
|
-
assignNewActivityId(): CorrelationId {
|
|
245
|
-
|
|
246
|
-
|
|
241
|
+
assignNewActivityId(activityDetails: ActivityDetails): CorrelationId {
|
|
242
|
+
this.currentActivity = {
|
|
243
|
+
id: CorrelationId.create(),
|
|
244
|
+
details: activityDetails,
|
|
245
|
+
};
|
|
247
246
|
|
|
248
|
-
return this.currentActivity;
|
|
247
|
+
return this.currentActivity.id;
|
|
249
248
|
}
|
|
250
249
|
|
|
251
250
|
/**
|
|
252
|
-
* @
|
|
253
|
-
* Returns the {@link CorrelationId} for the current {@link Activity}.
|
|
254
|
-
*
|
|
255
|
-
* @see {@link Stage#assignNewSceneId}
|
|
251
|
+
* Returns the {@apilink CorrelationId} for the current {@apilink Activity}.
|
|
256
252
|
*
|
|
257
|
-
*
|
|
253
|
+
* #### Learn more
|
|
254
|
+
* - {@apilink Stage.assignNewSceneId}
|
|
258
255
|
*/
|
|
259
256
|
currentActivityId(): CorrelationId {
|
|
260
257
|
if (! this.currentActivity) {
|
|
261
258
|
throw new LogicError(`No activity is being performed. Did you call assignNewActivityId before invoking currentActivityId?`);
|
|
262
259
|
}
|
|
263
260
|
|
|
264
|
-
return this.currentActivity;
|
|
261
|
+
return this.currentActivity.id;
|
|
265
262
|
}
|
|
266
263
|
|
|
267
264
|
/**
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
* post-processing activities performed by Serenity/JS are completed.
|
|
265
|
+
* Returns a Promise that will be resolved when any asynchronous
|
|
266
|
+
* post-processing activities performed by Serenity/JS are completed.
|
|
271
267
|
*
|
|
272
|
-
*
|
|
268
|
+
* Invoked in Serenity/JS test runner adapters to inform the test runner when
|
|
269
|
+
* the scenario has finished and when it's safe for the test runner to proceed
|
|
270
|
+
* with the next test, or finish execution.
|
|
273
271
|
*/
|
|
274
272
|
waitForNextCue(): Promise<void> {
|
|
275
273
|
return this.manager.waitForNextCue();
|
|
276
274
|
}
|
|
277
275
|
|
|
276
|
+
createError<RE extends RuntimeError>(errorType: new (...args: any[]) => RE, options: ErrorOptions): RE {
|
|
277
|
+
return this.errors.create(errorType, {
|
|
278
|
+
location: this.currentActivity?.details.location,
|
|
279
|
+
...options,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
|
|
278
283
|
private instantiatedActorCalled(name: string): Actor | undefined {
|
|
279
284
|
return this.actorsOnBackstage.has(name)
|
|
280
285
|
? this.actorsOnBackstage.get(name)
|
|
281
286
|
: this.actorsOnFrontStage.get(name)
|
|
282
287
|
}
|
|
283
288
|
|
|
284
|
-
private dismiss(activeActors: Map<string, Actor>): Promise<void> {
|
|
289
|
+
private async dismiss(activeActors: Map<string, Actor>): Promise<void> {
|
|
285
290
|
const actors = Array.from(activeActors.values());
|
|
286
291
|
|
|
287
292
|
if (actors.includes(this.actorInTheSpotlight)) {
|
|
288
293
|
this.actorInTheSpotlight = undefined;
|
|
289
294
|
}
|
|
290
295
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
const id = CorrelationId.create();
|
|
296
|
+
// Wait for the Photographer to finish taking any screenshots
|
|
297
|
+
await this.manager.waitForAsyncOperationsToComplete();
|
|
294
298
|
|
|
295
|
-
|
|
296
|
-
new Description(`[${ this.constructor.name }] Dismissing ${ actor.name }...`),
|
|
297
|
-
id,
|
|
298
|
-
));
|
|
299
|
+
const actorsToDismiss = new Map<Actor, CorrelationId>(actors.map(actor => [actor, CorrelationId.create()]));
|
|
299
300
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
301
|
+
for (const [ actor, correlationId ] of actorsToDismiss) {
|
|
302
|
+
this.announce(new AsyncOperationAttempted(
|
|
303
|
+
new Name(this.constructor.name),
|
|
304
|
+
new Description(`Dismissing ${ actor.name }...`),
|
|
305
|
+
correlationId,
|
|
306
|
+
this.currentTime(),
|
|
307
|
+
));
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Try to dismiss each actor
|
|
311
|
+
for (const [ actor, correlationId ] of actorsToDismiss) {
|
|
312
|
+
try {
|
|
313
|
+
await actor.dismiss();
|
|
309
314
|
|
|
310
|
-
|
|
311
|
-
|
|
315
|
+
this.announce(new AsyncOperationCompleted(
|
|
316
|
+
correlationId,
|
|
317
|
+
this.currentTime(),
|
|
318
|
+
));
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
this.announce(new AsyncOperationFailed(error, correlationId, this.currentTime())); // todo: serialise the error!
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
activeActors.clear();
|
|
312
326
|
}
|
|
313
327
|
|
|
314
|
-
/**
|
|
315
|
-
* @private
|
|
316
|
-
* @param {Cast} cast
|
|
317
|
-
*/
|
|
318
328
|
private typeOf(cast: Cast): string {
|
|
319
|
-
return
|
|
320
|
-
?
|
|
321
|
-
:
|
|
329
|
+
return cast.constructor === Object
|
|
330
|
+
? 'Cast'
|
|
331
|
+
: cast.constructor.name;
|
|
322
332
|
}
|
|
323
333
|
}
|
|
@@ -2,27 +2,78 @@ import { ListensToDomainEvents } from './ListensToDomainEvents';
|
|
|
2
2
|
import { Stage } from './Stage';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* You can think of the {@apilink StageCrewMember} as an in-memory microservice that reacts to {@apilink DomainEvent|domain events},
|
|
6
|
+
* published by the {@apilink StageManager}, and originally emitted by {@apilink Actor|actors} performing activities and Serenity/JS
|
|
7
|
+
* test runner adapters notifying the framework about test scenario-specific events like {@apilink SceneStarts} or {@apilink SceneFinishes}.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Every {@apilink StageCrewMember} receives a reference to the {@apilink Stage},
|
|
10
|
+
* and therefore {@apilink StageManager} as well, which enables them to emit {@apilink DomainEvent}s back.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* This interface is useful when you're interested in implementing custom Serenity/JS reporters or supporting services.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* ## Implementing a custom StageCrewMember
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { Stage, StageCrewMember } from '@serenity-js/core'
|
|
18
|
+
* import * as events from '@serenity-js/core/lib/events'
|
|
19
|
+
* import { ArbitraryTag } from '@serenity-js/core/lib/model'
|
|
20
|
+
*
|
|
21
|
+
* export class TestRunnerTagger implements StageCrewMember {
|
|
22
|
+
*
|
|
23
|
+
* static using(tagName: string) {
|
|
24
|
+
* return new TestRunnerTagger(tagName);
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* protected constructor(
|
|
28
|
+
* private readonly tagName: string,
|
|
29
|
+
* private stage?: Stage,
|
|
30
|
+
* ) {
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* assignedTo(stage: Stage): StageCrewMember {
|
|
34
|
+
* this.stage = stage;
|
|
35
|
+
* return this;
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* notifyOf(event: events.DomainEvent): void {
|
|
39
|
+
* if (event instanceof events.TestRunnerDetected) {
|
|
40
|
+
* this.stage.announce(
|
|
41
|
+
* new events.SceneTagged(
|
|
42
|
+
* this.stage.currentSceneId(),
|
|
43
|
+
* new ArbitraryTag(this.tagName),
|
|
44
|
+
* this.stage.currentTime()
|
|
45
|
+
* )
|
|
46
|
+
* )
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* ## Using the custom StageCrewMember
|
|
53
|
+
*
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { configure } from '@serenity-js/core'
|
|
56
|
+
*
|
|
57
|
+
* configure({
|
|
58
|
+
* crew: [
|
|
59
|
+
* TestRunnerTagger.using(`Node:${ process.version }`),
|
|
60
|
+
* ]
|
|
61
|
+
* })
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* ## Learn more
|
|
65
|
+
* - {@apilink SerenityConfig.crew}
|
|
66
|
+
* - {@apilink configure}
|
|
67
|
+
* - {@apilink StageCrewMemberBuilder}
|
|
68
|
+
* - {@apilink ListensToDomainEvents}
|
|
69
|
+
* - {@apilink DomainEvent}
|
|
70
|
+
*
|
|
71
|
+
* @group Stage
|
|
17
72
|
*/
|
|
18
73
|
export interface StageCrewMember extends ListensToDomainEvents {
|
|
19
74
|
|
|
20
75
|
/**
|
|
21
|
-
* @
|
|
22
|
-
* Assigns a {@link Stage} to this {@link StageCrewMember}
|
|
23
|
-
*
|
|
24
|
-
* @type {function(stage: Stage): StageCrewMember}
|
|
25
|
-
* An instance of a {@link Stage} this {@link StageCrewMember} will be assigned to
|
|
76
|
+
* Assigns a {@apilink Stage} to this {@apilink StageCrewMember}
|
|
26
77
|
*/
|
|
27
|
-
assignedTo
|
|
78
|
+
assignedTo(stage: Stage): StageCrewMember;
|
|
28
79
|
}
|
|
@@ -2,22 +2,23 @@ import { ListensToDomainEvents } from './ListensToDomainEvents';
|
|
|
2
2
|
import { StageCrewMemberBuilderDependencies } from './StageCrewMemberBuilderDependencies';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
6
|
-
* Use a {@link StageCrewMemberBuilder} to configure complex {@link StageCrewMember} objects.
|
|
7
|
-
* Useful when you're interested in implementing custom reporters with multiple configuration options.
|
|
5
|
+
* Use a {@apilink StageCrewMemberBuilder} to configure complex {@apilink StageCrewMember} objects.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* Useful when you're interested in implementing custom reporters with multiple configuration options.
|
|
8
|
+
* See {@apilink ConsoleReporter} for an example.
|
|
9
|
+
*
|
|
10
|
+
* ## Learn more
|
|
11
|
+
* - {@apilink StageCrewMember}
|
|
12
|
+
* - {@apilink StageCrewMemberBuilderDependencies}
|
|
13
|
+
* - {@apilink SerenityConfig.crew}
|
|
14
|
+
*
|
|
15
|
+
* @group Stage
|
|
12
16
|
*/
|
|
13
17
|
export interface StageCrewMemberBuilder<T extends ListensToDomainEvents = ListensToDomainEvents> {
|
|
14
18
|
|
|
15
19
|
/**
|
|
16
|
-
* @
|
|
17
|
-
*
|
|
18
|
-
* such as {@link Stage} or {@link OutputStream}
|
|
19
|
-
*
|
|
20
|
-
* @type {function(dependencies: StageCrewMemberBuilderDependencies): T}
|
|
20
|
+
* Instantiates a {@apilink StageCrewMember}, giving it access to shared dependencies
|
|
21
|
+
* such as {@apilink Stage} or {@apilink OutputStream}
|
|
21
22
|
*/
|
|
22
|
-
build
|
|
23
|
+
build(dependencies: StageCrewMemberBuilderDependencies): T;
|
|
23
24
|
}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import { OutputStream } from '../
|
|
1
|
+
import { OutputStream } from '../adapter';
|
|
2
2
|
import { Stage } from './Stage';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
6
|
-
* Dependencies injected by {@link Serenity} into {@link StageCrewMemberBuilder#build}
|
|
5
|
+
* Dependencies injected by {@apilink Serenity.configure} into {@apilink StageCrewMemberBuilder.build}
|
|
7
6
|
*
|
|
8
|
-
*
|
|
7
|
+
* ## Learn more
|
|
8
|
+
* - {@apilink StageCrewMemberBuilder}
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @group Stage
|
|
11
11
|
*/
|
|
12
12
|
export interface StageCrewMemberBuilderDependencies {
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @type {Stage}
|
|
16
|
-
*/
|
|
17
13
|
stage: Stage;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @desc
|
|
21
|
-
*
|
|
22
|
-
* @type {OutputStream}
|
|
23
|
-
*/
|
|
24
14
|
outputStream: OutputStream;
|
|
25
15
|
}
|