@serenity-js/core 3.0.0-rc.9 → 3.0.1
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 +208 -2139
- 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/io/formatted.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Answerable } from '../screenplay';
|
|
2
|
-
import { format } from './format';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @desc
|
|
6
|
-
* A tag function returning a human-readable description of a template containing one or more {@link Answerable}s.
|
|
7
|
-
* This function is deprecated, please use {@link format} instead.
|
|
8
|
-
*
|
|
9
|
-
* @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @deprecated
|
|
13
|
-
*
|
|
14
|
-
* @param {TemplateStringsArray} templates
|
|
15
|
-
* @param {Array<Answerable<any>>} placeholders
|
|
16
|
-
* @returns {string}
|
|
17
|
-
*/
|
|
18
|
-
export function formatted(templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>): string {
|
|
19
|
-
return format({ markQuestions: false })(templates, ...placeholders);
|
|
20
|
-
}
|
package/src/io/json/cycle.ts
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars,unicorn/better-regex,unicorn/escape-case,no-useless-escape,no-control-regex,@typescript-eslint/explicit-module-boundary-types */
|
|
2
|
-
|
|
3
|
-
export function stringify(value: unknown, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string {
|
|
4
|
-
return JSON.stringify(decycle(value), replacer, space);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @desc
|
|
9
|
-
* Converts a JavaScript Object Notation (JSON) string into an object.
|
|
10
|
-
* Supports objects with cyclic references.
|
|
11
|
-
*
|
|
12
|
-
* @param text A valid JSON string.
|
|
13
|
-
* @param reviver A function that transforms the results. This function is called for each member of the object.
|
|
14
|
-
* If a member contains nested objects, the nested objects are transformed before the parent object is.
|
|
15
|
-
*/
|
|
16
|
-
export function parse(text: string, reviver?: (this: any, key: string, value: any) => any) {
|
|
17
|
-
return retrocycle(JSON.parse(text, reviver));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @desc
|
|
22
|
-
* Makes a deep copy of an object or array, assuring that there is at most
|
|
23
|
-
* one instance of each object or array in the resulting structure. The
|
|
24
|
-
* duplicate references (which might be forming cycles) are replaced with
|
|
25
|
-
* an object of the form:
|
|
26
|
-
*
|
|
27
|
-
* ```
|
|
28
|
-
* {"$ref": PATH}
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* where the PATH is a JSONPath string that locates the first occurrence.
|
|
32
|
-
*
|
|
33
|
-
* So,
|
|
34
|
-
* ```
|
|
35
|
-
* var a = [];
|
|
36
|
-
* a[0] = a;
|
|
37
|
-
* return JSON.stringify(decycle(a));
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* produces the string `[{"$ref":"$"}]`.
|
|
41
|
-
*
|
|
42
|
-
* JSONPath is used to locate the unique object. $ indicates the top level of
|
|
43
|
-
* the object or array. [NUMBER] or [STRING] indicates a child element or property.
|
|
44
|
-
*
|
|
45
|
-
* Based on work by Douglas Crockford
|
|
46
|
-
* https://github.com/jan-molak/JSON-js/blob/master/cycle.js
|
|
47
|
-
*
|
|
48
|
-
* @param {any} object
|
|
49
|
-
*
|
|
50
|
-
* @package
|
|
51
|
-
*/
|
|
52
|
-
function decycle(object: any) {
|
|
53
|
-
const objects = new WeakMap<any, string>(); // object to path mappings
|
|
54
|
-
|
|
55
|
-
// The derez function recurses through the object, producing a deep copy
|
|
56
|
-
return (function derez(value, path) {
|
|
57
|
-
|
|
58
|
-
let old_path, // The path of an earlier occurance of value
|
|
59
|
-
nu; // The new object or array
|
|
60
|
-
|
|
61
|
-
if (
|
|
62
|
-
typeof value === 'object'
|
|
63
|
-
&& value !== null
|
|
64
|
-
&& !(value instanceof Boolean)
|
|
65
|
-
&& !(value instanceof Date)
|
|
66
|
-
&& !(value instanceof Number)
|
|
67
|
-
&& !(value instanceof RegExp)
|
|
68
|
-
&& !(value instanceof String)
|
|
69
|
-
) {
|
|
70
|
-
// If the value is an object or array, look to see if we have already
|
|
71
|
-
// encountered it. If so, return a {"$ref":PATH} object.
|
|
72
|
-
|
|
73
|
-
old_path = objects.get(value);
|
|
74
|
-
if (old_path !== undefined) {
|
|
75
|
-
return { $ref: old_path };
|
|
76
|
-
}
|
|
77
|
-
// Otherwise, accumulate the unique value and its path.
|
|
78
|
-
|
|
79
|
-
objects.set(value, path);
|
|
80
|
-
|
|
81
|
-
// If it is an array, replicate the array.
|
|
82
|
-
|
|
83
|
-
if (Array.isArray(value)) {
|
|
84
|
-
nu = [];
|
|
85
|
-
value.forEach(function (element, i) {
|
|
86
|
-
nu[i] = derez(element, path + '[' + i + ']');
|
|
87
|
-
});
|
|
88
|
-
} else {
|
|
89
|
-
|
|
90
|
-
// If it is an object, replicate the object.
|
|
91
|
-
|
|
92
|
-
nu = {};
|
|
93
|
-
Object.keys(value).forEach(function (name) {
|
|
94
|
-
nu[name] = derez(
|
|
95
|
-
value[name],
|
|
96
|
-
path + '[' + JSON.stringify(name) + ']'
|
|
97
|
-
);
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return nu;
|
|
101
|
-
}
|
|
102
|
-
return value;
|
|
103
|
-
}(object, '$'));
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* @desc
|
|
108
|
-
* Restore an object that was reduced by decycle. Members which values are
|
|
109
|
-
* objects of the form
|
|
110
|
-
* ```
|
|
111
|
-
* {$ref: PATH}
|
|
112
|
-
* ```
|
|
113
|
-
* are replaced with references to the value found by the PATH.
|
|
114
|
-
* This will restore cycles. The object will be MUTATED.
|
|
115
|
-
*
|
|
116
|
-
* The eval function is used to locate the values described by a PATH. The
|
|
117
|
-
* root object is kept in a $ variable. A regular expression is used to
|
|
118
|
-
* assure that the PATH is extremely well formed. The regexp contains nested
|
|
119
|
-
* * quantifiers. That has been known to have extremely bad performance
|
|
120
|
-
* problems on some browsers for very long strings. A PATH is expected to be
|
|
121
|
-
* reasonably short. A PATH is allowed to belong to a very restricted subset of
|
|
122
|
-
* Goessner's JSONPath.
|
|
123
|
-
*
|
|
124
|
-
* So,
|
|
125
|
-
* ```
|
|
126
|
-
* var s = '[{"$ref":"$"}]';
|
|
127
|
-
* return retrocycle(JSON.parse(s));
|
|
128
|
-
* ```
|
|
129
|
-
* produces an array containing a single element which is the array itself.
|
|
130
|
-
*
|
|
131
|
-
* Based on work by Douglas Crockford
|
|
132
|
-
* https://github.com/jan-molak/JSON-js/blob/master/cycle.js
|
|
133
|
-
*
|
|
134
|
-
* @param {any} $
|
|
135
|
-
*
|
|
136
|
-
* @package
|
|
137
|
-
*/
|
|
138
|
-
function retrocycle($: any) {
|
|
139
|
-
const px = /^\$(?:\[(?:\d+|"(?:[^\\"\u0000-\u001f]|\\(?:[\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*")\])*$/;
|
|
140
|
-
|
|
141
|
-
(function rez(value) {
|
|
142
|
-
|
|
143
|
-
// The rez function walks recursively through the object looking for $ref
|
|
144
|
-
// properties. When it finds one that has a value that is a path, then it
|
|
145
|
-
// replaces the $ref object with a reference to the value that is found by
|
|
146
|
-
// the path.
|
|
147
|
-
|
|
148
|
-
if (value && typeof value === 'object') {
|
|
149
|
-
if (Array.isArray(value)) {
|
|
150
|
-
value.forEach(function (element, i) {
|
|
151
|
-
if (typeof element === 'object' && element !== null) {
|
|
152
|
-
const path = element.$ref;
|
|
153
|
-
if (typeof path === 'string' && px.test(path)) {
|
|
154
|
-
value[i] = eval(path);
|
|
155
|
-
} else {
|
|
156
|
-
rez(element);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
} else {
|
|
161
|
-
Object.keys(value).forEach(function (name) {
|
|
162
|
-
const item = value[name];
|
|
163
|
-
if (typeof item === 'object' && item !== null) {
|
|
164
|
-
const path = item.$ref;
|
|
165
|
-
if (typeof path === 'string' && px.test(path)) {
|
|
166
|
-
value[name] = eval(path);
|
|
167
|
-
} else {
|
|
168
|
-
rez(item);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}($));
|
|
175
|
-
|
|
176
|
-
return $;
|
|
177
|
-
}
|
package/src/io/json/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './cycle';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { JSONData } from './JSONData';
|
|
2
|
-
|
|
3
|
-
export class AssertionReport extends JSONData {
|
|
4
|
-
static fromJSON(value: { expected: string, actual: string }): AssertionReport {
|
|
5
|
-
return new AssertionReport(Buffer.from(JSON.stringify(value, undefined, 0), 'utf8').toString('base64'));
|
|
6
|
-
}
|
|
7
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Tag } from './Tag';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @desc There are a couple of common use-cases for contexts: running the same test in different browsers,
|
|
5
|
-
* and running the same test on different operating systems.
|
|
6
|
-
* If you use the name of a browser (e.g. “chrome”, “firefox”, “safari”, “ie”),
|
|
7
|
-
* the context will be represented in the reports as the icon of the respective browsers.
|
|
8
|
-
* If you provide an operating system (e.g. “linux”, “windows”, “mac”, “android”, “iphone”),
|
|
9
|
-
* a similar icon will be used. If you use any other term for your context,
|
|
10
|
-
* it will appear in text form in the test results lists, so it is better to keep context names relatively short.
|
|
11
|
-
*
|
|
12
|
-
* @access public
|
|
13
|
-
* @deprecated
|
|
14
|
-
*/
|
|
15
|
-
export class ContextTag extends Tag {
|
|
16
|
-
static readonly Type = 'context';
|
|
17
|
-
|
|
18
|
-
constructor(context: string) {
|
|
19
|
-
super(context, ContextTag.Type);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @desc
|
|
3
|
-
* An Ability enables the {@link Actor} to interact with an external interface of the system under test.
|
|
4
|
-
* Technically speaking, it's a wrapper around a client of said interface.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* import { Ability, Actor, Interaction } from '@serenity-js/core';
|
|
8
|
-
*
|
|
9
|
-
* class MakePhoneCalls implements Ability {
|
|
10
|
-
* static as(actor: UsesAbilities): MakesPhoneCalls {
|
|
11
|
-
* return actor.abilityTo(MakePhoneCalls);
|
|
12
|
-
* }
|
|
13
|
-
*
|
|
14
|
-
* static using(phone: Phone) {
|
|
15
|
-
* return new MakePhoneCalls(phone);
|
|
16
|
-
* }
|
|
17
|
-
*
|
|
18
|
-
* constructor(private readonly phone: Phone) {}
|
|
19
|
-
*
|
|
20
|
-
* // some method that allows us to interact with the external interface of the system under test
|
|
21
|
-
* dial(phoneNumber: string) {
|
|
22
|
-
* // ...
|
|
23
|
-
* }
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* const Connie = Actor.named('Connie').whoCan(MakePhoneCalls.using(phone));
|
|
27
|
-
*
|
|
28
|
-
* const Call = (phoneNumber: string) => Interaction.where(`#actor calls ${ phoneNumber }`, actor =>
|
|
29
|
-
* MakePhoneCalls.as(actor).dial(phoneNumber);
|
|
30
|
-
* );
|
|
31
|
-
*
|
|
32
|
-
* @example <caption>Ability that's automatically initialised and discarded</caption>
|
|
33
|
-
* import {
|
|
34
|
-
* Ability, actorCalled, Discardable, Initialisable,
|
|
35
|
-
* Question, UsesAbilities
|
|
36
|
-
* } from '@serenity-js/core';
|
|
37
|
-
* import { Ensure, equals } from '@serenity-js/assertions';
|
|
38
|
-
*
|
|
39
|
-
* // A low-level client we want the Actor to use, i.e. a database client:
|
|
40
|
-
* const { Client } = require('pg');
|
|
41
|
-
*
|
|
42
|
-
* // A custom Ability to give an Actor access to the low-level client:
|
|
43
|
-
* class QueryPostgresDB implements Initialisable, Discardable, Ability {
|
|
44
|
-
* static as(actor: UsesAbilities) {
|
|
45
|
-
* return actor.abilityTo(QueryPostgresDB);
|
|
46
|
-
* }
|
|
47
|
-
*
|
|
48
|
-
* constructor(private readonly client) {
|
|
49
|
-
* }
|
|
50
|
-
*
|
|
51
|
-
* // invoked by Serenity/JS when actor.attemptsTo is first invoked
|
|
52
|
-
* initialise(): Promise<void> | void {
|
|
53
|
-
* return this.client.connect();
|
|
54
|
-
* }
|
|
55
|
-
*
|
|
56
|
-
* // Helps to ensure that the Ability is not initialised more than once
|
|
57
|
-
* isInitialised(): boolean {
|
|
58
|
-
* return this.client._connected;
|
|
59
|
-
* }
|
|
60
|
-
*
|
|
61
|
-
* // Discards any resources the Ability uses when the Actor is dismissed
|
|
62
|
-
* discard(): Promise<void> | void {
|
|
63
|
-
* return this.client.end();
|
|
64
|
-
* }
|
|
65
|
-
*
|
|
66
|
-
* // Any custom integration APIs the custom Ability
|
|
67
|
-
* // should make available to the Actor.
|
|
68
|
-
* query(query: string) {
|
|
69
|
-
* return this.client.query(query);
|
|
70
|
-
* }
|
|
71
|
-
*
|
|
72
|
-
* // ... other custom integration APIs
|
|
73
|
-
* }
|
|
74
|
-
*
|
|
75
|
-
* // A custom Question to allow the Actor query the system
|
|
76
|
-
* const CurrentDBUser = () =>
|
|
77
|
-
* Question.about('current db user', actor =>
|
|
78
|
-
* QueryPostgresDB.as(actor)
|
|
79
|
-
* .query('SELECT current_user')
|
|
80
|
-
* .then(result => result.rows[0].current_user)
|
|
81
|
-
* );
|
|
82
|
-
*
|
|
83
|
-
* // Example test scenario where the Actor uses an Ability to QueryPostgresDB
|
|
84
|
-
* // to assert on the username the connection has been established with
|
|
85
|
-
* describe('Serenity/JS', () => {
|
|
86
|
-
* it('can initialise and discard abilities automatically', () =>
|
|
87
|
-
* actorCalled('Debbie')
|
|
88
|
-
* .whoCan(new QueryPostgresDB(new Client()))
|
|
89
|
-
* .attemptsTo(
|
|
90
|
-
* Ensure.that(CurrentDBUser(), equals('jan'))
|
|
91
|
-
* ));
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* @see {@link Initialisable}
|
|
95
|
-
* @see {@link Discardable}
|
|
96
|
-
*
|
|
97
|
-
* @access public
|
|
98
|
-
*/
|
|
99
|
-
export interface Ability { // eslint-disable-line @typescript-eslint/no-empty-interface
|
|
100
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Ability } from './Ability';
|
|
2
|
-
import { UsesAbilities } from './actor';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @desc
|
|
6
|
-
* An interface describing the static access method that every {@link Ability} class
|
|
7
|
-
* needs to provide in order to be accessible from within an {@link Interaction}.
|
|
8
|
-
*/
|
|
9
|
-
export interface AbilityType<A extends Ability> extends Function {
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @desc
|
|
13
|
-
* Retrieves the Ability in question from the {@link Actor}, provided that the {@link Actor} has it.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* import { Ability, Actor, Interface } from '@serenity-js/core';
|
|
17
|
-
*
|
|
18
|
-
* class MakePhoneCalls implements Ability {
|
|
19
|
-
* static as(actor: UsesAbilities): MakesPhoneCalls {
|
|
20
|
-
* return actor.abilityTo(MakePhoneCalls);
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* static using(phone: Phone) {
|
|
24
|
-
* return new MakePhoneCalls(phone);
|
|
25
|
-
* }
|
|
26
|
-
*
|
|
27
|
-
* constructor(private readonly phone: Phone) {}
|
|
28
|
-
*
|
|
29
|
-
* // some method that allows us to interact with the external interface of the system under test
|
|
30
|
-
* dial(phoneNumber: string) {
|
|
31
|
-
* // ...
|
|
32
|
-
* }
|
|
33
|
-
* }
|
|
34
|
-
*
|
|
35
|
-
* const Connie = Actor.named('Connie').whoCan(MakePhoneCalls.using(phone));
|
|
36
|
-
*
|
|
37
|
-
* const Call = (phoneNumber: string) => Interaction.where(`#actor calls ${ phoneNumber }`, actor =>
|
|
38
|
-
* MakePhoneCalls.as(actor).dial(phoneNumber);
|
|
39
|
-
* );
|
|
40
|
-
*
|
|
41
|
-
* @param {UsesAbilities} actor
|
|
42
|
-
*/
|
|
43
|
-
as(actor: UsesAbilities): A;
|
|
44
|
-
}
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { LogicError } from '../../errors';
|
|
2
|
-
import { Ability } from '../Ability';
|
|
3
|
-
import { AnswersQuestions, UsesAbilities } from '../actor';
|
|
4
|
-
import { Question } from '../Question';
|
|
5
|
-
import { Discardable } from './Discardable';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @desc
|
|
9
|
-
* Enables the {@link Actor} to {@link TakeNote} of an answer to a given {@link Question}
|
|
10
|
-
* and to retrieve their {@link Note} later.
|
|
11
|
-
*
|
|
12
|
-
* @see {@link Note}
|
|
13
|
-
* @see {@link TakeNote}
|
|
14
|
-
*
|
|
15
|
-
* @abstract
|
|
16
|
-
* @implements {Ability}
|
|
17
|
-
*/
|
|
18
|
-
export abstract class TakeNotes implements Ability {
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @desc
|
|
22
|
-
* Instantiates an ability to {@link TakeNotes} that uses an empty notepad.
|
|
23
|
-
*
|
|
24
|
-
* This method should be used when you need the {@link Actor} to {@link TakeNote}
|
|
25
|
-
* of an answer to some {@link Question} and retrieve such {@link Note} later on in the same scenario,
|
|
26
|
-
* but you don't need the {@link Actor}s to share their notes.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* import { actorCalled, Log, Note, TakeNote, TakeNotes } from '@serenity-js/core'
|
|
30
|
-
* import { BrowseTheWeb, Target, Text } from '@serenity-js/protractor'
|
|
31
|
-
* import { by, protractor } from 'protractor';
|
|
32
|
-
*
|
|
33
|
-
* const actor = actorCalled('Apisitt').whoCan(
|
|
34
|
-
* TakeNotes.usingAnEmptyNotepad(),
|
|
35
|
-
* CallAnApi.at('https://api.example.org'),
|
|
36
|
-
* );
|
|
37
|
-
*
|
|
38
|
-
* actor.attemptsTo(
|
|
39
|
-
* Send.a(GetRequest.to('/customers')),
|
|
40
|
-
* TakeNote.of(LastResponse.status()), // remember the LastResponse.status()
|
|
41
|
-
* // ... perform some other activities
|
|
42
|
-
* Log.the(Note.of(LastResponse.body())), // log it later, or pass to any other interaction
|
|
43
|
-
* );
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* import { actorCalled, Note, TakeNote, TakeNotes } from '@serenity-js/core'
|
|
47
|
-
* import { BrowseTheWeb, Target, Text } from '@serenity-js/protractor'
|
|
48
|
-
* import { by, protractor } from 'protractor';
|
|
49
|
-
*
|
|
50
|
-
* class Vouchers {
|
|
51
|
-
* static code = Target.the('voucher code').located(by.id('voucher'));
|
|
52
|
-
* static appliedVoucher = Target.the('voucher code').located(by.id('applied-voucher'));
|
|
53
|
-
* }
|
|
54
|
-
*
|
|
55
|
-
* const actor = actorCalled('Noah').whoCan(
|
|
56
|
-
* TakeNotes.usingAnEmptyNotepad(),
|
|
57
|
-
* BrowseTheWeb.using(protractor.browser),
|
|
58
|
-
* );
|
|
59
|
-
*
|
|
60
|
-
* actor.attemptsTo(
|
|
61
|
-
* TakeNote.of(Text.of(Vouchers.code)),
|
|
62
|
-
* // ... add the product to a basket, go to checkout, etc.
|
|
63
|
-
* Ensure.that(Text.of(Vouchers.appliedVoucher), equals(Note.of(Text.of(Vouchers.code)))),
|
|
64
|
-
* );
|
|
65
|
-
*
|
|
66
|
-
* @returns {TakeNotes & Discardable}
|
|
67
|
-
*/
|
|
68
|
-
static usingAnEmptyNotepad(): TakeNotes & Discardable {
|
|
69
|
-
return new TakeNotesUsingAnEmptyNotepad();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @desc
|
|
74
|
-
* Instantiates an ability to {@link TakeNotes} that uses a notepad that can be shared amongst {@link Actor}s.
|
|
75
|
-
*
|
|
76
|
-
* This method should be used when you need the {@link Actor}s to {@link TakeNote}s
|
|
77
|
-
* of answers to some {@link Question}s, share those notes amongst themselves,
|
|
78
|
-
* and retrieve such shared {@link Note}s later on in the same scenario.
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* import { actorCalled, Note, TakeNote, TakeNotes } from '@serenity-js/core'
|
|
82
|
-
* import { ManageALocalServer, StartLocalTestServer, StopLocalTestServer } from '@serenity-js/local-server'
|
|
83
|
-
* import { BrowseTheWeb } from '@serenity-js/protractor'
|
|
84
|
-
*
|
|
85
|
-
* const server = http.createServer(function (request, response) {
|
|
86
|
-
* response.setHeader('Connection', 'close');
|
|
87
|
-
* response.end('Hello!');
|
|
88
|
-
* });
|
|
89
|
-
*
|
|
90
|
-
* const Adam = actorCalled('Adam').whoCan(
|
|
91
|
-
* ManageALocalServer.using(server),
|
|
92
|
-
* TakeNotes.usingASharedNotepad(),
|
|
93
|
-
* );
|
|
94
|
-
*
|
|
95
|
-
* const Becky = actorCalled('Becky').whoCan(
|
|
96
|
-
* TakeNotes.usingASharedNotepad(),
|
|
97
|
-
* BrowseTheWeb.using(protractor.browser),
|
|
98
|
-
* );
|
|
99
|
-
*
|
|
100
|
-
* Adam.attemptsTo(
|
|
101
|
-
* StartLocalTestServer.onRandomPort(),
|
|
102
|
-
* TakeNote.of(LocalServer.url()),
|
|
103
|
-
* );
|
|
104
|
-
*
|
|
105
|
-
* Becky.attemptsTo(
|
|
106
|
-
* Navigate.to(Note.of(LocalServer.url())),
|
|
107
|
-
* // perform some UI interactions
|
|
108
|
-
* );
|
|
109
|
-
*
|
|
110
|
-
* @returns {TakeNotes}
|
|
111
|
-
*/
|
|
112
|
-
static usingASharedNotepad(): TakeNotes {
|
|
113
|
-
return new TakeNotesUsingASharedNotepad();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* @desc
|
|
118
|
-
* Retrieves the {@link Ability} to {@link TakeNotes}
|
|
119
|
-
* for a given {@link Actor} to be used in custom {@link Interaction}s.
|
|
120
|
-
*
|
|
121
|
-
* @see {@link Ability}
|
|
122
|
-
* @see {@link Interaction}
|
|
123
|
-
*
|
|
124
|
-
* @param {UsesAbilities & AnswersQuestions} actor
|
|
125
|
-
*
|
|
126
|
-
* @returns {TakeNotes}
|
|
127
|
-
*/
|
|
128
|
-
static as(actor: UsesAbilities & AnswersQuestions): TakeNotes {
|
|
129
|
-
return actor.abilityTo(TakeNotes);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* @desc
|
|
134
|
-
* Instantiates the {@link Ability} to {@link TakeNotes}
|
|
135
|
-
*
|
|
136
|
-
* @param {Map<string, any>} notepad
|
|
137
|
-
*/
|
|
138
|
-
protected constructor(protected readonly notepad: Map<string, any>) {
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* @desc
|
|
143
|
-
* Records the answer to a given {@link Question}
|
|
144
|
-
*
|
|
145
|
-
* @param {Question<Promise<Answer>> | Question<Answer> | string} subject
|
|
146
|
-
* Question or name to record the Answer as
|
|
147
|
-
*
|
|
148
|
-
* @param {Promise<Answer> | Answer} value
|
|
149
|
-
* The Answer to record
|
|
150
|
-
*
|
|
151
|
-
* @returns {void}
|
|
152
|
-
*/
|
|
153
|
-
record<Answer>(subject: Question<Promise<Answer>> | Question<Answer> | string, value: Promise<Answer> | Answer): void {
|
|
154
|
-
this.notepad.set(subject.toString(), value);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* @desc
|
|
159
|
-
* Recalls the answer to a given {@link Question}
|
|
160
|
-
*
|
|
161
|
-
* @param {Question<Promise<Answer>> | Question<Answer> | string} subject
|
|
162
|
-
* Question or name the Answer was recorded as
|
|
163
|
-
*
|
|
164
|
-
* @returns {Promise<Answer>}
|
|
165
|
-
*/
|
|
166
|
-
answerTo<Answer>(subject: Question<Promise<Answer>> | Question<Answer> | string): Promise<Answer> {
|
|
167
|
-
const key = subject.toString();
|
|
168
|
-
|
|
169
|
-
return ! this.notepad.has(key)
|
|
170
|
-
? Promise.reject(new LogicError(`The answer to "${ key }" has never been recorded`))
|
|
171
|
-
: Promise.resolve(this.notepad.get(key));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* @package
|
|
177
|
-
*/
|
|
178
|
-
class TakeNotesUsingAnEmptyNotepad extends TakeNotes implements Discardable {
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* @desc
|
|
182
|
-
* Instantiates the {@link Ability} to {@link TakeNotes}
|
|
183
|
-
*
|
|
184
|
-
* @param {Map<string, any>} notepad
|
|
185
|
-
*/
|
|
186
|
-
constructor() {
|
|
187
|
-
super(new Map<string, any>());
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* @desc
|
|
192
|
-
* Enables the {@link Actor} to clear the notepad when the {@link SceneFinishes}.
|
|
193
|
-
*
|
|
194
|
-
* @returns {Promise<void> | void}
|
|
195
|
-
*/
|
|
196
|
-
discard(): Promise<void> | void {
|
|
197
|
-
this.notepad.clear();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* @package
|
|
203
|
-
*/
|
|
204
|
-
class TakeNotesUsingASharedNotepad extends TakeNotes {
|
|
205
|
-
private static sharedNotepad = new Map<string, any>();
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* @desc
|
|
209
|
-
* Instantiates the {@link Ability} to {@link TakeNotes}
|
|
210
|
-
*
|
|
211
|
-
* @param {Map<string, any>} notepad
|
|
212
|
-
*/
|
|
213
|
-
constructor() {
|
|
214
|
-
super(TakeNotesUsingASharedNotepad.sharedNotepad);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Name } from '../../model';
|
|
2
|
-
import { Activity } from '../Activity';
|
|
3
|
-
|
|
4
|
-
/** @package */
|
|
5
|
-
export class ActivityDescriber {
|
|
6
|
-
|
|
7
|
-
describe(activity: Activity, actor: { name: string }): Name {
|
|
8
|
-
const template = activity.toString() !== ({}).toString()
|
|
9
|
-
? activity.toString()
|
|
10
|
-
: `#actor performs ${ activity.constructor.name }`;
|
|
11
|
-
|
|
12
|
-
return new Name(
|
|
13
|
-
this.includeActorName(template, actor),
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
private includeActorName(template: string, actor: { name: string }) {
|
|
18
|
-
return template.replace('#actor', actor.name);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { match } from 'tiny-types';
|
|
2
|
-
|
|
3
|
-
import { AssertionError, ImplementationPendingError, TestCompromisedError } from '../../errors';
|
|
4
|
-
import {
|
|
5
|
-
ExecutionCompromised,
|
|
6
|
-
ExecutionFailedWithAssertionError,
|
|
7
|
-
ExecutionFailedWithError,
|
|
8
|
-
ImplementationPending,
|
|
9
|
-
ProblemIndication,
|
|
10
|
-
} from '../../model';
|
|
11
|
-
|
|
12
|
-
/** @package */
|
|
13
|
-
export class OutcomeMatcher {
|
|
14
|
-
outcomeFor(error: Error | any): ProblemIndication {
|
|
15
|
-
return match<Error, ProblemIndication>(error)
|
|
16
|
-
.when(ImplementationPendingError, _ => new ImplementationPending(error))
|
|
17
|
-
.when(TestCompromisedError, _ => new ExecutionCompromised(error))
|
|
18
|
-
.when(AssertionError, _ => new ExecutionFailedWithAssertionError(error))
|
|
19
|
-
.when(Error, _ =>
|
|
20
|
-
/AssertionError/.test(error.constructor.name) // mocha
|
|
21
|
-
? new ExecutionFailedWithAssertionError(error)
|
|
22
|
-
: new ExecutionFailedWithError(error))
|
|
23
|
-
.else(_ => new ExecutionFailedWithError(error));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { InteractionFinished, InteractionStarts, TaskFinished, TaskStarts } from '../../events';
|
|
2
|
-
import { ActivityDetails, ExecutionSuccessful } from '../../model';
|
|
3
|
-
import { Stage } from '../../stage';
|
|
4
|
-
import { Activity } from '../Activity';
|
|
5
|
-
import { AnswersQuestions, PerformsActivities, UsesAbilities } from '../actor';
|
|
6
|
-
import { Interaction } from '../Interaction';
|
|
7
|
-
import { ActivityDescriber } from './ActivityDescriber';
|
|
8
|
-
import { OutcomeMatcher } from './OutcomeMatcher';
|
|
9
|
-
|
|
10
|
-
/** @package */
|
|
11
|
-
export class TrackedActivity implements Activity {
|
|
12
|
-
|
|
13
|
-
protected static readonly describer = new ActivityDescriber();
|
|
14
|
-
protected static readonly outcomes = new OutcomeMatcher();
|
|
15
|
-
|
|
16
|
-
constructor(
|
|
17
|
-
protected readonly activity: Activity,
|
|
18
|
-
protected readonly stage: Stage,
|
|
19
|
-
) {
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
performAs(actor: (PerformsActivities | UsesAbilities | AnswersQuestions) & { name: string }): PromiseLike<void> {
|
|
23
|
-
const
|
|
24
|
-
sceneId = this.stage.currentSceneId(),
|
|
25
|
-
activityId = this.stage.assignNewActivityId(),
|
|
26
|
-
details = new ActivityDetails(TrackedActivity.describer.describe(this.activity, actor));
|
|
27
|
-
|
|
28
|
-
const [ activityStarts, activityFinished] = this.activity instanceof Interaction
|
|
29
|
-
? [ InteractionStarts, InteractionFinished ]
|
|
30
|
-
: [ TaskStarts, TaskFinished ];
|
|
31
|
-
|
|
32
|
-
return Promise.resolve()
|
|
33
|
-
.then(() => this.stage.announce(new activityStarts(sceneId, activityId, details, this.stage.currentTime())))
|
|
34
|
-
.then(() => this.activity.performAs(actor))
|
|
35
|
-
.then(() => {
|
|
36
|
-
const outcome = new ExecutionSuccessful();
|
|
37
|
-
this.stage.announce(new activityFinished(sceneId, activityId, details, outcome, this.stage.currentTime()));
|
|
38
|
-
})
|
|
39
|
-
.catch(error => {
|
|
40
|
-
const outcome = TrackedActivity.outcomes.outcomeFor(error);
|
|
41
|
-
this.stage.announce(new activityFinished(sceneId, activityId, details, outcome, this.stage.currentTime()));
|
|
42
|
-
|
|
43
|
-
throw error;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
toString(): string {
|
|
48
|
-
return this.activity.toString();
|
|
49
|
-
}
|
|
50
|
-
}
|