@serenity-js/protractor 2.32.3 → 3.0.0-rc.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 +72 -0
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -2
- package/lib/index.js.map +1 -1
- package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithProtractor.d.ts} +52 -160
- package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithProtractor.js} +169 -218
- package/lib/screenplay/abilities/BrowseTheWebWithProtractor.js.map +1 -0
- package/lib/screenplay/abilities/index.d.ts +1 -1
- package/lib/screenplay/abilities/index.js +1 -1
- package/lib/screenplay/abilities/index.js.map +1 -1
- package/lib/screenplay/index.d.ts +1 -0
- package/lib/screenplay/index.js +1 -0
- package/lib/screenplay/index.js.map +1 -1
- package/lib/screenplay/interactions/UseAngular.js +2 -2
- package/lib/screenplay/interactions/UseAngular.js.map +1 -1
- package/lib/screenplay/interactions/index.d.ts +0 -19
- package/lib/screenplay/interactions/index.js +0 -19
- package/lib/screenplay/interactions/index.js.map +1 -1
- package/lib/screenplay/models/ProtractorCookie.d.ts +11 -0
- package/lib/screenplay/models/ProtractorCookie.js +39 -0
- package/lib/screenplay/models/ProtractorCookie.js.map +1 -0
- package/lib/screenplay/models/ProtractorModalDialog.d.ts +11 -0
- package/lib/screenplay/models/ProtractorModalDialog.js +43 -0
- package/lib/screenplay/models/ProtractorModalDialog.js.map +1 -0
- package/lib/screenplay/models/ProtractorNativeElementRoot.d.ts +5 -0
- package/lib/screenplay/{interactions/EnterBuilder.js → models/ProtractorNativeElementRoot.js} +1 -1
- package/lib/screenplay/models/ProtractorNativeElementRoot.js.map +1 -0
- package/lib/screenplay/models/ProtractorPage.d.ts +24 -0
- package/lib/screenplay/models/ProtractorPage.js +92 -0
- package/lib/screenplay/models/ProtractorPage.js.map +1 -0
- package/lib/screenplay/models/ProtractorPageElement.d.ts +23 -0
- package/lib/screenplay/models/ProtractorPageElement.js +112 -0
- package/lib/screenplay/models/ProtractorPageElement.js.map +1 -0
- package/lib/screenplay/models/ProtractorPageElements.d.ts +16 -0
- package/lib/screenplay/models/ProtractorPageElements.js +62 -0
- package/lib/screenplay/models/ProtractorPageElements.js.map +1 -0
- package/lib/screenplay/models/index.d.ts +6 -0
- package/lib/{expectations → screenplay/models}/index.js +6 -6
- package/lib/screenplay/models/index.js.map +1 -0
- package/lib/{promiseOf.d.ts → screenplay/promised.d.ts} +1 -1
- package/lib/{promiseOf.js → screenplay/promised.js} +4 -4
- package/lib/screenplay/promised.js.map +1 -0
- package/lib/screenplay/promisedWebElement.d.ts +11 -0
- package/lib/screenplay/promisedWebElement.js +27 -0
- package/lib/screenplay/promisedWebElement.js.map +1 -0
- package/lib/screenplay/questions/ProtractorParam.d.ts +24 -29
- package/lib/screenplay/questions/ProtractorParam.js +26 -33
- package/lib/screenplay/questions/ProtractorParam.js.map +1 -1
- package/lib/screenplay/questions/index.d.ts +0 -13
- package/lib/screenplay/questions/index.js +0 -16
- package/lib/screenplay/questions/index.js.map +1 -1
- package/package.json +21 -23
- package/src/index.ts +0 -2
- package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithProtractor.ts} +216 -241
- package/src/screenplay/abilities/index.ts +1 -1
- package/src/screenplay/index.ts +1 -0
- package/src/screenplay/interactions/UseAngular.ts +3 -3
- package/src/screenplay/interactions/index.ts +0 -19
- package/src/screenplay/models/ProtractorCookie.ts +41 -0
- package/src/screenplay/models/ProtractorModalDialog.ts +49 -0
- package/src/screenplay/models/ProtractorNativeElementRoot.ts +6 -0
- package/src/screenplay/models/ProtractorPage.ts +116 -0
- package/src/screenplay/models/ProtractorPageElement.ts +167 -0
- package/src/screenplay/models/ProtractorPageElements.ts +86 -0
- package/src/screenplay/models/index.ts +7 -0
- package/src/{promiseOf.ts → screenplay/promised.ts} +1 -1
- package/src/screenplay/promisedWebElement.ts +28 -0
- package/src/screenplay/questions/ProtractorParam.ts +29 -38
- package/src/screenplay/questions/index.ts +0 -13
- package/lib/expectations/ElementFinderExpectation.d.ts +0 -11
- package/lib/expectations/ElementFinderExpectation.js +0 -24
- package/lib/expectations/ElementFinderExpectation.js.map +0 -1
- package/lib/expectations/index.d.ts +0 -6
- package/lib/expectations/index.js.map +0 -1
- package/lib/expectations/isActive.d.ts +0 -13
- package/lib/expectations/isActive.js +0 -19
- package/lib/expectations/isActive.js.map +0 -1
- package/lib/expectations/isClickable.d.ts +0 -13
- package/lib/expectations/isClickable.js +0 -22
- package/lib/expectations/isClickable.js.map +0 -1
- package/lib/expectations/isEnabled.d.ts +0 -13
- package/lib/expectations/isEnabled.js +0 -19
- package/lib/expectations/isEnabled.js.map +0 -1
- package/lib/expectations/isPresent.d.ts +0 -14
- package/lib/expectations/isPresent.js +0 -20
- package/lib/expectations/isPresent.js.map +0 -1
- package/lib/expectations/isSelected.d.ts +0 -13
- package/lib/expectations/isSelected.js +0 -22
- package/lib/expectations/isSelected.js.map +0 -1
- package/lib/expectations/isVisible.d.ts +0 -13
- package/lib/expectations/isVisible.js +0 -25
- package/lib/expectations/isVisible.js.map +0 -1
- package/lib/promiseOf.js.map +0 -1
- package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
- package/lib/screenplay/interactions/Accept.d.ts +0 -81
- package/lib/screenplay/interactions/Accept.js +0 -95
- package/lib/screenplay/interactions/Accept.js.map +0 -1
- package/lib/screenplay/interactions/Clear.d.ts +0 -88
- package/lib/screenplay/interactions/Clear.js +0 -121
- package/lib/screenplay/interactions/Clear.js.map +0 -1
- package/lib/screenplay/interactions/Click.d.ts +0 -81
- package/lib/screenplay/interactions/Click.js +0 -95
- package/lib/screenplay/interactions/Click.js.map +0 -1
- package/lib/screenplay/interactions/Close.d.ts +0 -89
- package/lib/screenplay/interactions/Close.js +0 -169
- package/lib/screenplay/interactions/Close.js.map +0 -1
- package/lib/screenplay/interactions/DeleteCookies.d.ts +0 -72
- package/lib/screenplay/interactions/DeleteCookies.js +0 -149
- package/lib/screenplay/interactions/DeleteCookies.js.map +0 -1
- package/lib/screenplay/interactions/Dismiss.d.ts +0 -85
- package/lib/screenplay/interactions/Dismiss.js +0 -99
- package/lib/screenplay/interactions/Dismiss.js.map +0 -1
- package/lib/screenplay/interactions/DoubleClick.d.ts +0 -99
- package/lib/screenplay/interactions/DoubleClick.js +0 -121
- package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
- package/lib/screenplay/interactions/Enter.d.ts +0 -81
- package/lib/screenplay/interactions/Enter.js +0 -96
- package/lib/screenplay/interactions/Enter.js.map +0 -1
- package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -27
- package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
- package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -171
- package/lib/screenplay/interactions/ExecuteScript.js +0 -291
- package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
- package/lib/screenplay/interactions/Hover.d.ts +0 -86
- package/lib/screenplay/interactions/Hover.js +0 -103
- package/lib/screenplay/interactions/Hover.js.map +0 -1
- package/lib/screenplay/interactions/Navigate.d.ts +0 -149
- package/lib/screenplay/interactions/Navigate.js +0 -345
- package/lib/screenplay/interactions/Navigate.js.map +0 -1
- package/lib/screenplay/interactions/Press.d.ts +0 -90
- package/lib/screenplay/interactions/Press.js +0 -127
- package/lib/screenplay/interactions/Press.js.map +0 -1
- package/lib/screenplay/interactions/PressBuilder.d.ts +0 -27
- package/lib/screenplay/interactions/PressBuilder.js +0 -3
- package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
- package/lib/screenplay/interactions/ResizeBrowserWindow.d.ts +0 -69
- package/lib/screenplay/interactions/ResizeBrowserWindow.js +0 -144
- package/lib/screenplay/interactions/ResizeBrowserWindow.js.map +0 -1
- package/lib/screenplay/interactions/RightClick.d.ts +0 -97
- package/lib/screenplay/interactions/RightClick.js +0 -113
- package/lib/screenplay/interactions/RightClick.js.map +0 -1
- package/lib/screenplay/interactions/Scroll.d.ts +0 -83
- package/lib/screenplay/interactions/Scroll.js +0 -98
- package/lib/screenplay/interactions/Scroll.js.map +0 -1
- package/lib/screenplay/interactions/Select.d.ts +0 -212
- package/lib/screenplay/interactions/Select.js +0 -342
- package/lib/screenplay/interactions/Select.js.map +0 -1
- package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
- package/lib/screenplay/interactions/SelectBuilder.js +0 -3
- package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
- package/lib/screenplay/interactions/Switch.d.ts +0 -210
- package/lib/screenplay/interactions/Switch.js +0 -345
- package/lib/screenplay/interactions/Switch.js.map +0 -1
- package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -67
- package/lib/screenplay/interactions/TakeScreenshot.js +0 -86
- package/lib/screenplay/interactions/TakeScreenshot.js.map +0 -1
- package/lib/screenplay/interactions/Wait.d.ts +0 -147
- package/lib/screenplay/interactions/Wait.js +0 -247
- package/lib/screenplay/interactions/Wait.js.map +0 -1
- package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -33
- package/lib/screenplay/interactions/WaitBuilder.js +0 -3
- package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
- package/lib/screenplay/questions/Attribute.d.ts +0 -29
- package/lib/screenplay/questions/Attribute.js +0 -56
- package/lib/screenplay/questions/Attribute.js.map +0 -1
- package/lib/screenplay/questions/Browser.d.ts +0 -47
- package/lib/screenplay/questions/Browser.js +0 -55
- package/lib/screenplay/questions/Browser.js.map +0 -1
- package/lib/screenplay/questions/CSSClasses.d.ts +0 -94
- package/lib/screenplay/questions/CSSClasses.js +0 -118
- package/lib/screenplay/questions/CSSClasses.js.map +0 -1
- package/lib/screenplay/questions/Cookie.d.ts +0 -9
- package/lib/screenplay/questions/Cookie.js +0 -65
- package/lib/screenplay/questions/Cookie.js.map +0 -1
- package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
- package/lib/screenplay/questions/LastScriptExecution.js +0 -22
- package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
- package/lib/screenplay/questions/ModalDialog.d.ts +0 -120
- package/lib/screenplay/questions/ModalDialog.js +0 -142
- package/lib/screenplay/questions/ModalDialog.js.map +0 -1
- package/lib/screenplay/questions/Pick.d.ts +0 -72
- package/lib/screenplay/questions/Pick.js +0 -254
- package/lib/screenplay/questions/Pick.js.map +0 -1
- package/lib/screenplay/questions/Selected.d.ts +0 -185
- package/lib/screenplay/questions/Selected.js +0 -254
- package/lib/screenplay/questions/Selected.js.map +0 -1
- package/lib/screenplay/questions/Value.d.ts +0 -47
- package/lib/screenplay/questions/Value.js +0 -67
- package/lib/screenplay/questions/Value.js.map +0 -1
- package/lib/screenplay/questions/Website.d.ts +0 -15
- package/lib/screenplay/questions/Website.js +0 -25
- package/lib/screenplay/questions/Website.js.map +0 -1
- package/lib/screenplay/questions/Window.d.ts +0 -23
- package/lib/screenplay/questions/Window.js +0 -28
- package/lib/screenplay/questions/Window.js.map +0 -1
- package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.d.ts +0 -89
- package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js +0 -138
- package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js.map +0 -1
- package/lib/screenplay/questions/lists/index.d.ts +0 -1
- package/lib/screenplay/questions/lists/index.js +0 -14
- package/lib/screenplay/questions/lists/index.js.map +0 -1
- package/lib/screenplay/questions/targets/Target.d.ts +0 -168
- package/lib/screenplay/questions/targets/Target.js +0 -190
- package/lib/screenplay/questions/targets/Target.js.map +0 -1
- package/lib/screenplay/questions/targets/TargetElement.d.ts +0 -50
- package/lib/screenplay/questions/targets/TargetElement.js +0 -62
- package/lib/screenplay/questions/targets/TargetElement.js.map +0 -1
- package/lib/screenplay/questions/targets/TargetElements.d.ts +0 -102
- package/lib/screenplay/questions/targets/TargetElements.js +0 -124
- package/lib/screenplay/questions/targets/TargetElements.js.map +0 -1
- package/lib/screenplay/questions/targets/TargetNestedElement.d.ts +0 -49
- package/lib/screenplay/questions/targets/TargetNestedElement.js +0 -61
- package/lib/screenplay/questions/targets/TargetNestedElement.js.map +0 -1
- package/lib/screenplay/questions/targets/TargetNestedElements.d.ts +0 -101
- package/lib/screenplay/questions/targets/TargetNestedElements.js +0 -123
- package/lib/screenplay/questions/targets/TargetNestedElements.js.map +0 -1
- package/lib/screenplay/questions/targets/builders.d.ts +0 -8
- package/lib/screenplay/questions/targets/builders.js +0 -3
- package/lib/screenplay/questions/targets/builders.js.map +0 -1
- package/lib/screenplay/questions/targets/index.d.ts +0 -5
- package/lib/screenplay/questions/targets/index.js +0 -18
- package/lib/screenplay/questions/targets/index.js.map +0 -1
- package/lib/screenplay/questions/targets/override.d.ts +0 -7
- package/lib/screenplay/questions/targets/override.js +0 -21
- package/lib/screenplay/questions/targets/override.js.map +0 -1
- package/lib/screenplay/questions/text/Text.d.ts +0 -41
- package/lib/screenplay/questions/text/Text.js +0 -50
- package/lib/screenplay/questions/text/Text.js.map +0 -1
- package/lib/screenplay/questions/text/TextOfMultipleElements.d.ts +0 -23
- package/lib/screenplay/questions/text/TextOfMultipleElements.js +0 -37
- package/lib/screenplay/questions/text/TextOfMultipleElements.js.map +0 -1
- package/lib/screenplay/questions/text/TextOfSingleElement.d.ts +0 -23
- package/lib/screenplay/questions/text/TextOfSingleElement.js +0 -35
- package/lib/screenplay/questions/text/TextOfSingleElement.js.map +0 -1
- package/lib/screenplay/questions/text/index.d.ts +0 -1
- package/lib/screenplay/questions/text/index.js +0 -14
- package/lib/screenplay/questions/text/index.js.map +0 -1
- package/lib/screenplay/withAnswerOf.d.ts +0 -8
- package/lib/screenplay/withAnswerOf.js +0 -18
- package/lib/screenplay/withAnswerOf.js.map +0 -1
- package/lib/stage/crew/index.d.ts +0 -1
- package/lib/stage/crew/index.js +0 -14
- package/lib/stage/crew/index.js.map +0 -1
- package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
- package/lib/stage/crew/photographer/Photographer.js +0 -102
- package/lib/stage/crew/photographer/Photographer.js.map +0 -1
- package/lib/stage/crew/photographer/index.d.ts +0 -2
- package/lib/stage/crew/photographer/index.js +0 -15
- package/lib/stage/crew/photographer/index.js.map +0 -1
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
- package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
- package/lib/stage/crew/photographer/strategies/index.js +0 -17
- package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
- package/lib/stage/index.d.ts +0 -1
- package/lib/stage/index.js +0 -14
- package/lib/stage/index.js.map +0 -1
- package/src/expectations/ElementFinderExpectation.ts +0 -29
- package/src/expectations/index.ts +0 -6
- package/src/expectations/isActive.ts +0 -24
- package/src/expectations/isClickable.ts +0 -20
- package/src/expectations/isEnabled.ts +0 -18
- package/src/expectations/isPresent.ts +0 -19
- package/src/expectations/isSelected.ts +0 -23
- package/src/expectations/isVisible.ts +0 -27
- package/src/screenplay/interactions/Accept.ts +0 -95
- package/src/screenplay/interactions/Clear.ts +0 -130
- package/src/screenplay/interactions/Click.ts +0 -96
- package/src/screenplay/interactions/Close.ts +0 -184
- package/src/screenplay/interactions/DeleteCookies.ts +0 -154
- package/src/screenplay/interactions/Dismiss.ts +0 -99
- package/src/screenplay/interactions/DoubleClick.ts +0 -124
- package/src/screenplay/interactions/Enter.ts +0 -104
- package/src/screenplay/interactions/EnterBuilder.ts +0 -29
- package/src/screenplay/interactions/ExecuteScript.ts +0 -325
- package/src/screenplay/interactions/Hover.ts +0 -106
- package/src/screenplay/interactions/Navigate.ts +0 -363
- package/src/screenplay/interactions/Press.ts +0 -137
- package/src/screenplay/interactions/PressBuilder.ts +0 -29
- package/src/screenplay/interactions/ResizeBrowserWindow.ts +0 -148
- package/src/screenplay/interactions/RightClick.ts +0 -114
- package/src/screenplay/interactions/Scroll.ts +0 -99
- package/src/screenplay/interactions/Select.ts +0 -402
- package/src/screenplay/interactions/SelectBuilder.ts +0 -35
- package/src/screenplay/interactions/Switch.ts +0 -393
- package/src/screenplay/interactions/TakeScreenshot.ts +0 -89
- package/src/screenplay/interactions/Wait.ts +0 -267
- package/src/screenplay/interactions/WaitBuilder.ts +0 -35
- package/src/screenplay/questions/Attribute.ts +0 -67
- package/src/screenplay/questions/Browser.ts +0 -55
- package/src/screenplay/questions/CSSClasses.ts +0 -121
- package/src/screenplay/questions/Cookie.ts +0 -70
- package/src/screenplay/questions/LastScriptExecution.ts +0 -21
- package/src/screenplay/questions/ModalDialog.ts +0 -149
- package/src/screenplay/questions/Pick.ts +0 -334
- package/src/screenplay/questions/Selected.ts +0 -268
- package/src/screenplay/questions/Value.ts +0 -73
- package/src/screenplay/questions/Website.ts +0 -27
- package/src/screenplay/questions/Window.ts +0 -29
- package/src/screenplay/questions/lists/ElementArrayFinderListAdapter.ts +0 -158
- package/src/screenplay/questions/lists/index.ts +0 -1
- package/src/screenplay/questions/targets/Target.ts +0 -198
- package/src/screenplay/questions/targets/TargetElement.ts +0 -70
- package/src/screenplay/questions/targets/TargetElements.ts +0 -142
- package/src/screenplay/questions/targets/TargetNestedElement.ts +0 -71
- package/src/screenplay/questions/targets/TargetNestedElements.ts +0 -142
- package/src/screenplay/questions/targets/builders.ts +0 -10
- package/src/screenplay/questions/targets/index.ts +0 -5
- package/src/screenplay/questions/targets/override.ts +0 -17
- package/src/screenplay/questions/text/Text.ts +0 -55
- package/src/screenplay/questions/text/TextOfMultipleElements.ts +0 -40
- package/src/screenplay/questions/text/TextOfSingleElement.ts +0 -37
- package/src/screenplay/questions/text/index.ts +0 -1
- package/src/screenplay/withAnswerOf.ts +0 -19
- package/src/stage/crew/index.ts +0 -1
- package/src/stage/crew/photographer/Photographer.ts +0 -108
- package/src/stage/crew/photographer/index.ts +0 -2
- package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -102
- package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
- package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
- package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
- package/src/stage/crew/photographer/strategies/index.ts +0 -4
- package/src/stage/index.ts +0 -1
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TakePhotosBeforeAndAfterInteractions = void 0;
|
|
4
|
-
const events_1 = require("@serenity-js/core/lib/events");
|
|
5
|
-
const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
|
|
6
|
-
/**
|
|
7
|
-
* @desc
|
|
8
|
-
* Configures the {@link Photographer} to take photos (a.k.a. screenshots) both before and after
|
|
9
|
-
* every single {@link @serenity-js/core/lib/screenplay~Interaction} performed
|
|
10
|
-
* by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight.
|
|
11
|
-
*
|
|
12
|
-
* *Please note* that this strategy will result in _a lot_ of screenshots being taken,
|
|
13
|
-
* which will seriously affect the performance of your tests.
|
|
14
|
-
* For this reason, it's best to use it only for debugging purposes.
|
|
15
|
-
*
|
|
16
|
-
* @extends {PhotoTakingStrategy}
|
|
17
|
-
*/
|
|
18
|
-
class TakePhotosBeforeAndAfterInteractions extends PhotoTakingStrategy_1.PhotoTakingStrategy {
|
|
19
|
-
shouldTakeAPhotoOf(event) {
|
|
20
|
-
return event instanceof events_1.InteractionStarts
|
|
21
|
-
|| event instanceof events_1.InteractionFinished;
|
|
22
|
-
}
|
|
23
|
-
photoNameFor(event) {
|
|
24
|
-
return event instanceof events_1.InteractionStarts
|
|
25
|
-
? `Before ${event.details.name.value}`
|
|
26
|
-
: `After ${event.details.name.value}`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.TakePhotosBeforeAndAfterInteractions = TakePhotosBeforeAndAfterInteractions;
|
|
30
|
-
//# sourceMappingURL=TakePhotosBeforeAndAfterInteractions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TakePhotosBeforeAndAfterInteractions.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts"],"names":[],"mappings":";;;AAAA,yDAAmG;AAEnG,+DAA4D;AAE5D;;;;;;;;;;;GAWG;AACH,MAAa,oCAAqC,SAAQ,yCAAmB;IAC/D,kBAAkB,CAAC,KAAkB;QAC3C,OAAO,KAAK,YAAY,0BAAiB;eAClC,KAAK,YAAY,4BAAmB,CAAC;IAChD,CAAC;IAES,YAAY,CAAC,KAA8C;QACjE,OAAO,KAAK,YAAY,0BAAiB;YACrC,CAAC,CAAC,UAAW,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE;YACxC,CAAC,CAAC,SAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAXD,oFAWC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { DomainEvent, InteractionFinished } from '@serenity-js/core/lib/events';
|
|
2
|
-
import { PhotoTakingStrategy } from './PhotoTakingStrategy';
|
|
3
|
-
/**
|
|
4
|
-
* @desc
|
|
5
|
-
* Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
|
|
6
|
-
* the {@link @serenity-js/core/lib/screenplay~Interaction} performed
|
|
7
|
-
* by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight results in an error.
|
|
8
|
-
*
|
|
9
|
-
* This strategy works best when you are interested in the screenshots only when
|
|
10
|
-
* the a fails.
|
|
11
|
-
*
|
|
12
|
-
* @extends {PhotoTakingStrategy}
|
|
13
|
-
*/
|
|
14
|
-
export declare class TakePhotosOfFailures extends PhotoTakingStrategy {
|
|
15
|
-
protected shouldTakeAPhotoOf(event: DomainEvent): boolean;
|
|
16
|
-
protected photoNameFor(event: InteractionFinished): string;
|
|
17
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TakePhotosOfFailures = void 0;
|
|
4
|
-
const events_1 = require("@serenity-js/core/lib/events");
|
|
5
|
-
const model_1 = require("@serenity-js/core/lib/model");
|
|
6
|
-
const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
|
|
7
|
-
/**
|
|
8
|
-
* @desc
|
|
9
|
-
* Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
|
|
10
|
-
* the {@link @serenity-js/core/lib/screenplay~Interaction} performed
|
|
11
|
-
* by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight results in an error.
|
|
12
|
-
*
|
|
13
|
-
* This strategy works best when you are interested in the screenshots only when
|
|
14
|
-
* the a fails.
|
|
15
|
-
*
|
|
16
|
-
* @extends {PhotoTakingStrategy}
|
|
17
|
-
*/
|
|
18
|
-
class TakePhotosOfFailures extends PhotoTakingStrategy_1.PhotoTakingStrategy {
|
|
19
|
-
shouldTakeAPhotoOf(event) {
|
|
20
|
-
return event instanceof events_1.InteractionFinished
|
|
21
|
-
&& event.outcome.isWorseThan(model_1.ImplementationPending);
|
|
22
|
-
}
|
|
23
|
-
photoNameFor(event) {
|
|
24
|
-
return event.details.name.value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.TakePhotosOfFailures = TakePhotosOfFailures;
|
|
28
|
-
//# sourceMappingURL=TakePhotosOfFailures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TakePhotosOfFailures.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts"],"names":[],"mappings":";;;AAAA,yDAAgF;AAChF,uDAAoE;AAEpE,+DAA4D;AAE5D;;;;;;;;;;GAUG;AACH,MAAa,oBAAqB,SAAQ,yCAAmB;IAC/C,kBAAkB,CAAC,KAAkB;QAC3C,OAAO,KAAK,YAAY,4BAAmB;eACpC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,6BAAqB,CAAC,CAAC;IAC5D,CAAC;IAES,YAAY,CAAC,KAA0B;QAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;CACJ;AATD,oDASC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DomainEvent, InteractionFinished } from '@serenity-js/core/lib/events';
|
|
2
|
-
import { PhotoTakingStrategy } from './PhotoTakingStrategy';
|
|
3
|
-
/**
|
|
4
|
-
* @desc
|
|
5
|
-
* Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
|
|
6
|
-
* the the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
|
|
7
|
-
* performs any {@link @serenity-js/core/lib/screenplay~Interaction}.
|
|
8
|
-
*
|
|
9
|
-
* This strategy works best when you want the results of your automated tests
|
|
10
|
-
* to become comprehensive living documentation of your system.
|
|
11
|
-
*
|
|
12
|
-
* *Please note* that taking screenshots affects the performance of your tests.
|
|
13
|
-
*
|
|
14
|
-
* @extends {PhotoTakingStrategy}
|
|
15
|
-
*/
|
|
16
|
-
export declare class TakePhotosOfInteractions extends PhotoTakingStrategy {
|
|
17
|
-
protected shouldTakeAPhotoOf(event: DomainEvent): boolean;
|
|
18
|
-
protected photoNameFor(event: InteractionFinished): string;
|
|
19
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TakePhotosOfInteractions = void 0;
|
|
4
|
-
const events_1 = require("@serenity-js/core/lib/events");
|
|
5
|
-
const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
|
|
6
|
-
/**
|
|
7
|
-
* @desc
|
|
8
|
-
* Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
|
|
9
|
-
* the the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
|
|
10
|
-
* performs any {@link @serenity-js/core/lib/screenplay~Interaction}.
|
|
11
|
-
*
|
|
12
|
-
* This strategy works best when you want the results of your automated tests
|
|
13
|
-
* to become comprehensive living documentation of your system.
|
|
14
|
-
*
|
|
15
|
-
* *Please note* that taking screenshots affects the performance of your tests.
|
|
16
|
-
*
|
|
17
|
-
* @extends {PhotoTakingStrategy}
|
|
18
|
-
*/
|
|
19
|
-
class TakePhotosOfInteractions extends PhotoTakingStrategy_1.PhotoTakingStrategy {
|
|
20
|
-
shouldTakeAPhotoOf(event) {
|
|
21
|
-
return event instanceof events_1.InteractionFinished;
|
|
22
|
-
}
|
|
23
|
-
photoNameFor(event) {
|
|
24
|
-
return event.details.name.value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.TakePhotosOfInteractions = TakePhotosOfInteractions;
|
|
28
|
-
//# sourceMappingURL=TakePhotosOfInteractions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TakePhotosOfInteractions.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts"],"names":[],"mappings":";;;AAAA,yDAAgF;AAEhF,+DAA4D;AAE5D;;;;;;;;;;;;GAYG;AACH,MAAa,wBAAyB,SAAQ,yCAAmB;IACnD,kBAAkB,CAAC,KAAkB;QAC3C,OAAO,KAAK,YAAY,4BAAmB,CAAC;IAChD,CAAC;IAES,YAAY,CAAC,KAA0B;QAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;CACJ;AARD,4DAQC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./PhotoTakingStrategy"), exports);
|
|
14
|
-
__exportStar(require("./TakePhotosBeforeAndAfterInteractions"), exports);
|
|
15
|
-
__exportStar(require("./TakePhotosOfFailures"), exports);
|
|
16
|
-
__exportStar(require("./TakePhotosOfInteractions"), exports);
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAAsC;AACtC,yEAAuD;AACvD,yDAAuC;AACvC,6DAA2C"}
|
package/lib/stage/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './crew';
|
package/lib/stage/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./crew"), exports);
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
package/lib/stage/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { AnswersQuestions, Expectation, ExpectationMet, ExpectationNotMet, ExpectationOutcome } from '@serenity-js/core';
|
|
2
|
-
import { ElementFinder } from 'protractor';
|
|
3
|
-
|
|
4
|
-
import { promiseOf } from '../promiseOf';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @access private
|
|
8
|
-
*/
|
|
9
|
-
export class ElementFinderExpectation extends Expectation<any, ElementFinder> {
|
|
10
|
-
static forElementTo(message: string, fn: (actual: ElementFinder) => PromiseLike<boolean>): Expectation<any, ElementFinder> {
|
|
11
|
-
return new ElementFinderExpectation(message, fn);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
constructor(
|
|
15
|
-
subject: string,
|
|
16
|
-
private readonly fn: (actual: ElementFinder) => PromiseLike<boolean>,
|
|
17
|
-
) {
|
|
18
|
-
super(subject);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
answeredBy(actor: AnswersQuestions): (actual: ElementFinder) => Promise<ExpectationOutcome<boolean, ElementFinder>> {
|
|
22
|
-
|
|
23
|
-
return (actual: ElementFinder) =>
|
|
24
|
-
promiseOf(this.fn(actual)).then(_ => _
|
|
25
|
-
? new ExpectationMet(this.toString(), undefined, actual)
|
|
26
|
-
: new ExpectationNotMet(this.toString(), undefined, actual),
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Expectation } from '@serenity-js/core';
|
|
2
|
-
import { ElementFinder, WebElement } from 'protractor';
|
|
3
|
-
|
|
4
|
-
import { ElementFinderExpectation } from './ElementFinderExpectation';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @desc
|
|
8
|
-
* Expectation that the element is active.
|
|
9
|
-
*
|
|
10
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
11
|
-
*
|
|
12
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
13
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
14
|
-
* @see {@link Wait}
|
|
15
|
-
*/
|
|
16
|
-
export function isActive(): Expectation<boolean, ElementFinder> {
|
|
17
|
-
return ElementFinderExpectation.forElementTo('become active', (actual: ElementFinder) =>
|
|
18
|
-
actual.getWebElement().then(element =>
|
|
19
|
-
element.getDriver().switchTo().activeElement().then((active: WebElement) =>
|
|
20
|
-
actual.equals(active),
|
|
21
|
-
),
|
|
22
|
-
),
|
|
23
|
-
);
|
|
24
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { and } from '@serenity-js/assertions';
|
|
2
|
-
import { Expectation } from '@serenity-js/core';
|
|
3
|
-
import { ElementFinder } from 'protractor';
|
|
4
|
-
|
|
5
|
-
import { isEnabled } from './isEnabled';
|
|
6
|
-
import { isVisible } from './isVisible';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @desc
|
|
10
|
-
* Expectation that the element is visible and enabled, and therefore clickable
|
|
11
|
-
*
|
|
12
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
13
|
-
*
|
|
14
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
15
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
16
|
-
* @see {@link Wait}
|
|
17
|
-
*/
|
|
18
|
-
export function isClickable(): Expectation<any, ElementFinder> {
|
|
19
|
-
return Expectation.to<ElementFinder>('become clickable').soThatActual(and(isVisible(), isEnabled()));
|
|
20
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Expectation } from '@serenity-js/core';
|
|
2
|
-
import { ElementFinder } from 'protractor';
|
|
3
|
-
|
|
4
|
-
import { ElementFinderExpectation } from './ElementFinderExpectation';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @desc
|
|
8
|
-
* Expectation that the element is enabled.
|
|
9
|
-
*
|
|
10
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
11
|
-
*
|
|
12
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
13
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
14
|
-
* @see {@link Wait}
|
|
15
|
-
*/
|
|
16
|
-
export function isEnabled(): Expectation<boolean, ElementFinder> {
|
|
17
|
-
return ElementFinderExpectation.forElementTo('become enabled', actual => actual.isEnabled());
|
|
18
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Expectation } from '@serenity-js/core';
|
|
2
|
-
import { ElementFinder } from 'protractor';
|
|
3
|
-
|
|
4
|
-
import { ElementFinderExpectation } from './ElementFinderExpectation';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @desc
|
|
8
|
-
* Expectation that the element is present in the DOM of a page.
|
|
9
|
-
* Please note that this does not necessarily mean that the element is visible.
|
|
10
|
-
*
|
|
11
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
12
|
-
*
|
|
13
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
14
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
15
|
-
* @see {@link Wait}
|
|
16
|
-
*/
|
|
17
|
-
export function isPresent(): Expectation<boolean, ElementFinder> {
|
|
18
|
-
return ElementFinderExpectation.forElementTo('become present', actual => actual.isPresent());
|
|
19
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { and } from '@serenity-js/assertions';
|
|
2
|
-
import { Expectation } from '@serenity-js/core';
|
|
3
|
-
import { ElementFinder } from 'protractor';
|
|
4
|
-
|
|
5
|
-
import { ElementFinderExpectation } from './ElementFinderExpectation';
|
|
6
|
-
import { isPresent } from './isPresent';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @desc
|
|
10
|
-
* Expectation that the element is present and selected
|
|
11
|
-
*
|
|
12
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
13
|
-
*
|
|
14
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
15
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
16
|
-
* @see {@link Wait}
|
|
17
|
-
*/
|
|
18
|
-
export function isSelected(): Expectation<any, ElementFinder> {
|
|
19
|
-
return Expectation.to<ElementFinder>('become selected').soThatActual(and(
|
|
20
|
-
isPresent(),
|
|
21
|
-
ElementFinderExpectation.forElementTo('become selected', actual => actual.isSelected()),
|
|
22
|
-
));
|
|
23
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { and } from '@serenity-js/assertions';
|
|
2
|
-
import { Expectation } from '@serenity-js/core';
|
|
3
|
-
import { ElementFinder } from 'protractor';
|
|
4
|
-
|
|
5
|
-
import { ElementFinderExpectation } from './ElementFinderExpectation';
|
|
6
|
-
import { isPresent } from './isPresent';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @desc
|
|
10
|
-
* Expectation that the element is present in the DOM of the page and visible.
|
|
11
|
-
*
|
|
12
|
-
* @returns {@serenity-js/core/lib/screenplay/questions~Expectation<boolean, ElementFinder>}
|
|
13
|
-
*
|
|
14
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
15
|
-
* @see {@link @serenity-js/core/lib/screenplay/questions~Check}
|
|
16
|
-
* @see {@link Wait}
|
|
17
|
-
*/
|
|
18
|
-
export function isVisible(): Expectation<any, ElementFinder> {
|
|
19
|
-
return Expectation.to<ElementFinder>('become visible').soThatActual(and(
|
|
20
|
-
isPresent(),
|
|
21
|
-
isDisplayed(),
|
|
22
|
-
));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function isDisplayed(): Expectation<any, ElementFinder> {
|
|
26
|
-
return ElementFinderExpectation.forElementTo('become displayed', actual => actual.isDisplayed());
|
|
27
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { AnswersQuestions, Interaction, Question, UsesAbilities } from '@serenity-js/core';
|
|
2
|
-
import { formatted } from '@serenity-js/core/lib/io';
|
|
3
|
-
import { AlertPromise } from 'selenium-webdriver';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @desc
|
|
7
|
-
* Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to accept
|
|
8
|
-
* a {@link ModalDialog}.
|
|
9
|
-
*
|
|
10
|
-
* @example <caption>Example widget</caption>
|
|
11
|
-
* <button
|
|
12
|
-
* data-test="trigger"
|
|
13
|
-
* onclick="alert('hello!')">Trigger Alert</button>
|
|
14
|
-
*
|
|
15
|
-
* @example <caption>Lean Page Object</caption>
|
|
16
|
-
* import { Target } from '@serenity-js/protractor';
|
|
17
|
-
* import { by } from 'protractor';
|
|
18
|
-
*
|
|
19
|
-
* class Widget {
|
|
20
|
-
* static trigger = Target.the('trigger button')
|
|
21
|
-
* .located(by.css('[data-test="trigger"]'));
|
|
22
|
-
* }
|
|
23
|
-
*
|
|
24
|
-
* @example <caption>Accepting a modal dialog window</caption>
|
|
25
|
-
* import { actorCalled } from '@serenity-js/core';
|
|
26
|
-
* import { Accept, BrowseTheWeb, Click, ModalDialog } from '@serenity-js/protractor';
|
|
27
|
-
* import { protractor } from 'protractor';
|
|
28
|
-
*
|
|
29
|
-
* actorCalled('Nick')
|
|
30
|
-
* .whoCan(BrowseTheWeb.using(protractor.browser))
|
|
31
|
-
* .attemptsTo(
|
|
32
|
-
* Click.on(Widget.trigger),
|
|
33
|
-
* Accept.the(ModalDialog.window()),
|
|
34
|
-
* );
|
|
35
|
-
*
|
|
36
|
-
* @extends {@serenity-js/core/lib/screenplay~Interaction}
|
|
37
|
-
*
|
|
38
|
-
* @see {@link BrowseTheWeb}
|
|
39
|
-
* @see {@link Click}
|
|
40
|
-
* @see {@link Dismiss}
|
|
41
|
-
* @see {@link ModalDialog}
|
|
42
|
-
*/
|
|
43
|
-
export class Accept extends Interaction {
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @desc
|
|
47
|
-
* Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}
|
|
48
|
-
* with a {@link ModalDialog.window} the {@link @serenity-js/core/lib/screenplay/actor~Actor}
|
|
49
|
-
* will accept.
|
|
50
|
-
*
|
|
51
|
-
* @param {@serenity-js/core/lib/screenplay~Question<AlertPromise> | AlertPromise} modalDialogWindow
|
|
52
|
-
* @returns {@serenity-js/core/lib/screenplay~Interaction}
|
|
53
|
-
*
|
|
54
|
-
* @see {@link @serenity-js/core/lib/screenplay~Question}
|
|
55
|
-
*/
|
|
56
|
-
static the(modalDialogWindow: Question<AlertPromise> | AlertPromise): Interaction {
|
|
57
|
-
return new Accept(modalDialogWindow);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* @param {@serenity-js/core/lib/screenplay~Question<AlertPromise> | AlertPromise} modalDialogWindow
|
|
62
|
-
*/
|
|
63
|
-
constructor(private readonly modalDialogWindow: Question<AlertPromise> | AlertPromise) {
|
|
64
|
-
super();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @desc
|
|
69
|
-
* Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
|
|
70
|
-
* perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
|
|
71
|
-
*
|
|
72
|
-
* @param {UsesAbilities & AnswersQuestions} actor
|
|
73
|
-
* An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
|
|
74
|
-
*
|
|
75
|
-
* @returns {PromiseLike<void>}
|
|
76
|
-
*
|
|
77
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
|
|
78
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
|
|
79
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
|
|
80
|
-
*/
|
|
81
|
-
performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
|
|
82
|
-
return actor.answer(this.modalDialogWindow)
|
|
83
|
-
.then(alert => alert.accept());
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @desc
|
|
88
|
-
* Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
|
|
89
|
-
*
|
|
90
|
-
* @returns {string}
|
|
91
|
-
*/
|
|
92
|
-
toString(): string {
|
|
93
|
-
return formatted `#actor accepts ${ this.modalDialogWindow }`;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { AnswersQuestions, Interaction, LogicError, Question, UsesAbilities } from '@serenity-js/core';
|
|
2
|
-
import { formatted } from '@serenity-js/core/lib/io';
|
|
3
|
-
import { ElementFinder, protractor } from 'protractor';
|
|
4
|
-
|
|
5
|
-
import { Value } from '../questions';
|
|
6
|
-
import { withAnswerOf } from '../withAnswerOf';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @desc
|
|
10
|
-
* Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
|
|
11
|
-
* clear the `value` of a [form `input`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
|
|
12
|
-
*
|
|
13
|
-
* @example <caption>Example widget</caption>
|
|
14
|
-
* <form>
|
|
15
|
-
* <input type="text" name="example" id="example" />
|
|
16
|
-
* </form>
|
|
17
|
-
*
|
|
18
|
-
* @example <caption>Lean Page Object describing the widget</caption>
|
|
19
|
-
* import { Target } from '@serenity-js/protractor';
|
|
20
|
-
* import { by } from 'protractor';
|
|
21
|
-
*
|
|
22
|
-
* class Form {
|
|
23
|
-
* static exampleInput = Target.the('example input')
|
|
24
|
-
* .located(by.id('example'));
|
|
25
|
-
* }
|
|
26
|
-
*
|
|
27
|
-
* @example <caption>Clearing the value of an input field</caption>
|
|
28
|
-
* import { actorCalled } from '@serenity-js/core';
|
|
29
|
-
* import { BrowseTheWeb, Clear, Enter, Value } from '@serenity-js/protractor';
|
|
30
|
-
* import { Ensure, equals } from '@serenity-js/assertions';
|
|
31
|
-
* import { protractor } from 'protractor';
|
|
32
|
-
*
|
|
33
|
-
* actorCalled('Inés')
|
|
34
|
-
* .whoCan(BrowseTheWeb.using(protractor.browser))
|
|
35
|
-
* .attemptsTo(
|
|
36
|
-
* Enter.theValue('Hello world!').into(Form.exampleInput),
|
|
37
|
-
* Ensure.that(Value.of(Form.exampleInput), equals('Hello world!')),
|
|
38
|
-
*
|
|
39
|
-
* Clear.theValueOf(Form.exampleInput),
|
|
40
|
-
* Ensure.that(Value.of(Form.exampleInput), equals('')),
|
|
41
|
-
* );
|
|
42
|
-
*
|
|
43
|
-
* @see {@link BrowseTheWeb}
|
|
44
|
-
* @see {@link Enter}
|
|
45
|
-
* @see {@link Value}
|
|
46
|
-
* @see {@link Target}
|
|
47
|
-
* @see {@link @serenity-js/assertions~Ensure}
|
|
48
|
-
* @see {@link @serenity-js/assertions/lib/expectations~equals}
|
|
49
|
-
*
|
|
50
|
-
* @extends {@serenity-js/core/lib/screenplay~Interaction}
|
|
51
|
-
*/
|
|
52
|
-
export class Clear extends Interaction {
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @desc
|
|
56
|
-
* Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
|
|
57
|
-
*
|
|
58
|
-
* @param {Question<ElementFinder> | ElementFinder} field
|
|
59
|
-
* The field to be cleared
|
|
60
|
-
* @returns {@serenity-js/core/lib/screenplay~Interaction}
|
|
61
|
-
*/
|
|
62
|
-
static theValueOf(field: Question<ElementFinder> | ElementFinder): Interaction {
|
|
63
|
-
return new Clear(field);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @param {Question<ElementFinder> | ElementFinder} field
|
|
68
|
-
* The field to be cleared
|
|
69
|
-
*/
|
|
70
|
-
constructor(private readonly field: Question<ElementFinder> | ElementFinder) {
|
|
71
|
-
super();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @desc
|
|
76
|
-
* Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
|
|
77
|
-
* perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
|
|
78
|
-
*
|
|
79
|
-
* @param {UsesAbilities & AnswersQuestions} actor
|
|
80
|
-
* An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
|
|
81
|
-
*
|
|
82
|
-
* @returns {PromiseLike<void>}
|
|
83
|
-
*
|
|
84
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
|
|
85
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
|
|
86
|
-
* @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
|
|
87
|
-
*/
|
|
88
|
-
performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
|
|
89
|
-
return new Value(this.field).answeredBy(actor).then(value => {
|
|
90
|
-
if (value === null) {
|
|
91
|
-
throw new LogicError(
|
|
92
|
-
`${ this.capitaliseFirstLetter(this.field.toString()) } doesn't seem to have a 'value' attribute that could be cleared.`,
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (value !== undefined) {
|
|
97
|
-
return withAnswerOf(actor, this.field, (elf: ElementFinder) => {
|
|
98
|
-
return this.removeCharactersFrom(elf, value.length);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* @desc
|
|
106
|
-
* Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
|
|
107
|
-
*
|
|
108
|
-
* @returns {string}
|
|
109
|
-
*/
|
|
110
|
-
toString(): string {
|
|
111
|
-
return formatted `#actor clears the value of ${ this.field }`;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
private capitaliseFirstLetter(text: string) {
|
|
115
|
-
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
private removeCharactersFrom(elf: ElementFinder, numberOfCharacters: number): PromiseLike<void> {
|
|
119
|
-
return numberOfCharacters === 0
|
|
120
|
-
? Promise.resolve(void 0)
|
|
121
|
-
: elf.sendKeys(
|
|
122
|
-
protractor.Key.END,
|
|
123
|
-
...this.times(numberOfCharacters, protractor.Key.BACK_SPACE),
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
private times(length: number, key: string) {
|
|
128
|
-
return Array.from({ length }).map(() => key);
|
|
129
|
-
}
|
|
130
|
-
}
|