@serenity-js/protractor 2.32.7 → 3.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/CHANGELOG.md +359 -0
  2. package/lib/adapter/ProtractorFrameworkAdapter.js +5 -0
  3. package/lib/adapter/ProtractorFrameworkAdapter.js.map +1 -1
  4. package/lib/index.d.ts +0 -2
  5. package/lib/index.js +0 -2
  6. package/lib/index.js.map +1 -1
  7. package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithProtractor.d.ts} +38 -164
  8. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithProtractor.js} +139 -225
  9. package/lib/screenplay/abilities/BrowseTheWebWithProtractor.js.map +1 -0
  10. package/lib/screenplay/abilities/index.d.ts +1 -1
  11. package/lib/screenplay/abilities/index.js +1 -1
  12. package/lib/screenplay/abilities/index.js.map +1 -1
  13. package/lib/screenplay/index.d.ts +1 -0
  14. package/lib/screenplay/index.js +1 -0
  15. package/lib/screenplay/index.js.map +1 -1
  16. package/lib/screenplay/interactions/UseAngular.js +2 -2
  17. package/lib/screenplay/interactions/UseAngular.js.map +1 -1
  18. package/lib/screenplay/interactions/index.d.ts +0 -19
  19. package/lib/screenplay/interactions/index.js +0 -19
  20. package/lib/screenplay/interactions/index.js.map +1 -1
  21. package/lib/screenplay/models/ProtractorCookie.d.ts +11 -0
  22. package/lib/screenplay/models/ProtractorCookie.js +39 -0
  23. package/lib/screenplay/models/ProtractorCookie.js.map +1 -0
  24. package/lib/screenplay/models/ProtractorModalDialog.d.ts +11 -0
  25. package/lib/screenplay/models/ProtractorModalDialog.js +43 -0
  26. package/lib/screenplay/models/ProtractorModalDialog.js.map +1 -0
  27. package/lib/screenplay/models/ProtractorPage.d.ts +24 -0
  28. package/lib/screenplay/models/ProtractorPage.js +92 -0
  29. package/lib/screenplay/models/ProtractorPage.js.map +1 -0
  30. package/lib/screenplay/models/ProtractorPageElement.d.ts +21 -0
  31. package/lib/screenplay/models/ProtractorPageElement.js +230 -0
  32. package/lib/screenplay/models/ProtractorPageElement.js.map +1 -0
  33. package/lib/screenplay/models/index.d.ts +4 -0
  34. package/lib/screenplay/{questions/lists → models}/index.js +4 -1
  35. package/lib/screenplay/models/index.js.map +1 -0
  36. package/lib/screenplay/models/locators/ProtractorLocator.d.ts +9 -0
  37. package/lib/screenplay/models/locators/ProtractorLocator.js +28 -0
  38. package/lib/screenplay/models/locators/ProtractorLocator.js.map +1 -0
  39. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.d.ts +5 -0
  40. package/lib/screenplay/{interactions/EnterBuilder.js → models/locators/ProtractorNativeElementRoot.js} +1 -1
  41. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.js.map +1 -0
  42. package/lib/screenplay/models/locators/index.d.ts +2 -0
  43. package/lib/{stage/crew → screenplay/models/locators}/index.js +2 -1
  44. package/lib/screenplay/models/locators/index.js.map +1 -0
  45. package/lib/{promiseOf.d.ts → screenplay/promised.d.ts} +1 -1
  46. package/lib/{promiseOf.js → screenplay/promised.js} +4 -4
  47. package/lib/screenplay/promised.js.map +1 -0
  48. package/lib/screenplay/questions/ProtractorParam.d.ts +24 -29
  49. package/lib/screenplay/questions/ProtractorParam.js +26 -33
  50. package/lib/screenplay/questions/ProtractorParam.js.map +1 -1
  51. package/lib/screenplay/questions/index.d.ts +0 -13
  52. package/lib/screenplay/questions/index.js +0 -16
  53. package/lib/screenplay/questions/index.js.map +1 -1
  54. package/lib/screenplay/unpromisedWebElement.d.ts +11 -0
  55. package/lib/screenplay/unpromisedWebElement.js +24 -0
  56. package/lib/screenplay/unpromisedWebElement.js.map +1 -0
  57. package/package.json +21 -22
  58. package/src/adapter/ProtractorFrameworkAdapter.ts +5 -0
  59. package/src/index.ts +0 -2
  60. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithProtractor.ts} +171 -247
  61. package/src/screenplay/abilities/index.ts +1 -1
  62. package/src/screenplay/index.ts +1 -0
  63. package/src/screenplay/interactions/UseAngular.ts +3 -3
  64. package/src/screenplay/interactions/index.ts +0 -19
  65. package/src/screenplay/models/ProtractorCookie.ts +41 -0
  66. package/src/screenplay/models/ProtractorModalDialog.ts +49 -0
  67. package/src/screenplay/models/ProtractorPage.ts +116 -0
  68. package/src/screenplay/models/ProtractorPageElement.ts +285 -0
  69. package/src/screenplay/models/index.ts +5 -0
  70. package/src/screenplay/models/locators/ProtractorLocator.ts +50 -0
  71. package/src/screenplay/models/locators/ProtractorNativeElementRoot.ts +6 -0
  72. package/src/screenplay/models/locators/index.ts +2 -0
  73. package/src/{promiseOf.ts → screenplay/promised.ts} +1 -1
  74. package/src/screenplay/questions/ProtractorParam.ts +29 -38
  75. package/src/screenplay/questions/index.ts +0 -13
  76. package/src/screenplay/unpromisedWebElement.ts +25 -0
  77. package/lib/expectations/ElementFinderExpectation.d.ts +0 -11
  78. package/lib/expectations/ElementFinderExpectation.js +0 -24
  79. package/lib/expectations/ElementFinderExpectation.js.map +0 -1
  80. package/lib/expectations/index.d.ts +0 -6
  81. package/lib/expectations/index.js +0 -19
  82. package/lib/expectations/index.js.map +0 -1
  83. package/lib/expectations/isActive.d.ts +0 -13
  84. package/lib/expectations/isActive.js +0 -19
  85. package/lib/expectations/isActive.js.map +0 -1
  86. package/lib/expectations/isClickable.d.ts +0 -13
  87. package/lib/expectations/isClickable.js +0 -22
  88. package/lib/expectations/isClickable.js.map +0 -1
  89. package/lib/expectations/isEnabled.d.ts +0 -13
  90. package/lib/expectations/isEnabled.js +0 -19
  91. package/lib/expectations/isEnabled.js.map +0 -1
  92. package/lib/expectations/isPresent.d.ts +0 -14
  93. package/lib/expectations/isPresent.js +0 -20
  94. package/lib/expectations/isPresent.js.map +0 -1
  95. package/lib/expectations/isSelected.d.ts +0 -13
  96. package/lib/expectations/isSelected.js +0 -22
  97. package/lib/expectations/isSelected.js.map +0 -1
  98. package/lib/expectations/isVisible.d.ts +0 -13
  99. package/lib/expectations/isVisible.js +0 -25
  100. package/lib/expectations/isVisible.js.map +0 -1
  101. package/lib/promiseOf.js.map +0 -1
  102. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  103. package/lib/screenplay/interactions/Accept.d.ts +0 -81
  104. package/lib/screenplay/interactions/Accept.js +0 -95
  105. package/lib/screenplay/interactions/Accept.js.map +0 -1
  106. package/lib/screenplay/interactions/Clear.d.ts +0 -88
  107. package/lib/screenplay/interactions/Clear.js +0 -121
  108. package/lib/screenplay/interactions/Clear.js.map +0 -1
  109. package/lib/screenplay/interactions/Click.d.ts +0 -81
  110. package/lib/screenplay/interactions/Click.js +0 -95
  111. package/lib/screenplay/interactions/Click.js.map +0 -1
  112. package/lib/screenplay/interactions/Close.d.ts +0 -89
  113. package/lib/screenplay/interactions/Close.js +0 -169
  114. package/lib/screenplay/interactions/Close.js.map +0 -1
  115. package/lib/screenplay/interactions/DeleteCookies.d.ts +0 -72
  116. package/lib/screenplay/interactions/DeleteCookies.js +0 -149
  117. package/lib/screenplay/interactions/DeleteCookies.js.map +0 -1
  118. package/lib/screenplay/interactions/Dismiss.d.ts +0 -85
  119. package/lib/screenplay/interactions/Dismiss.js +0 -99
  120. package/lib/screenplay/interactions/Dismiss.js.map +0 -1
  121. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -99
  122. package/lib/screenplay/interactions/DoubleClick.js +0 -121
  123. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  124. package/lib/screenplay/interactions/Enter.d.ts +0 -81
  125. package/lib/screenplay/interactions/Enter.js +0 -96
  126. package/lib/screenplay/interactions/Enter.js.map +0 -1
  127. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -27
  128. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  129. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -171
  130. package/lib/screenplay/interactions/ExecuteScript.js +0 -291
  131. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  132. package/lib/screenplay/interactions/Hover.d.ts +0 -86
  133. package/lib/screenplay/interactions/Hover.js +0 -103
  134. package/lib/screenplay/interactions/Hover.js.map +0 -1
  135. package/lib/screenplay/interactions/Navigate.d.ts +0 -149
  136. package/lib/screenplay/interactions/Navigate.js +0 -345
  137. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  138. package/lib/screenplay/interactions/Press.d.ts +0 -90
  139. package/lib/screenplay/interactions/Press.js +0 -127
  140. package/lib/screenplay/interactions/Press.js.map +0 -1
  141. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -27
  142. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  143. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  144. package/lib/screenplay/interactions/ResizeBrowserWindow.d.ts +0 -69
  145. package/lib/screenplay/interactions/ResizeBrowserWindow.js +0 -144
  146. package/lib/screenplay/interactions/ResizeBrowserWindow.js.map +0 -1
  147. package/lib/screenplay/interactions/RightClick.d.ts +0 -97
  148. package/lib/screenplay/interactions/RightClick.js +0 -113
  149. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  150. package/lib/screenplay/interactions/Scroll.d.ts +0 -83
  151. package/lib/screenplay/interactions/Scroll.js +0 -98
  152. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  153. package/lib/screenplay/interactions/Select.d.ts +0 -212
  154. package/lib/screenplay/interactions/Select.js +0 -342
  155. package/lib/screenplay/interactions/Select.js.map +0 -1
  156. package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
  157. package/lib/screenplay/interactions/SelectBuilder.js +0 -3
  158. package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
  159. package/lib/screenplay/interactions/Switch.d.ts +0 -210
  160. package/lib/screenplay/interactions/Switch.js +0 -345
  161. package/lib/screenplay/interactions/Switch.js.map +0 -1
  162. package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -67
  163. package/lib/screenplay/interactions/TakeScreenshot.js +0 -86
  164. package/lib/screenplay/interactions/TakeScreenshot.js.map +0 -1
  165. package/lib/screenplay/interactions/Wait.d.ts +0 -147
  166. package/lib/screenplay/interactions/Wait.js +0 -247
  167. package/lib/screenplay/interactions/Wait.js.map +0 -1
  168. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -33
  169. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  170. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  171. package/lib/screenplay/questions/Attribute.d.ts +0 -29
  172. package/lib/screenplay/questions/Attribute.js +0 -56
  173. package/lib/screenplay/questions/Attribute.js.map +0 -1
  174. package/lib/screenplay/questions/Browser.d.ts +0 -47
  175. package/lib/screenplay/questions/Browser.js +0 -55
  176. package/lib/screenplay/questions/Browser.js.map +0 -1
  177. package/lib/screenplay/questions/CSSClasses.d.ts +0 -94
  178. package/lib/screenplay/questions/CSSClasses.js +0 -118
  179. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  180. package/lib/screenplay/questions/Cookie.d.ts +0 -9
  181. package/lib/screenplay/questions/Cookie.js +0 -65
  182. package/lib/screenplay/questions/Cookie.js.map +0 -1
  183. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  184. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  185. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  186. package/lib/screenplay/questions/ModalDialog.d.ts +0 -120
  187. package/lib/screenplay/questions/ModalDialog.js +0 -142
  188. package/lib/screenplay/questions/ModalDialog.js.map +0 -1
  189. package/lib/screenplay/questions/Pick.d.ts +0 -72
  190. package/lib/screenplay/questions/Pick.js +0 -254
  191. package/lib/screenplay/questions/Pick.js.map +0 -1
  192. package/lib/screenplay/questions/Selected.d.ts +0 -185
  193. package/lib/screenplay/questions/Selected.js +0 -254
  194. package/lib/screenplay/questions/Selected.js.map +0 -1
  195. package/lib/screenplay/questions/Value.d.ts +0 -47
  196. package/lib/screenplay/questions/Value.js +0 -67
  197. package/lib/screenplay/questions/Value.js.map +0 -1
  198. package/lib/screenplay/questions/Website.d.ts +0 -15
  199. package/lib/screenplay/questions/Website.js +0 -25
  200. package/lib/screenplay/questions/Website.js.map +0 -1
  201. package/lib/screenplay/questions/Window.d.ts +0 -23
  202. package/lib/screenplay/questions/Window.js +0 -28
  203. package/lib/screenplay/questions/Window.js.map +0 -1
  204. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.d.ts +0 -89
  205. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js +0 -138
  206. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js.map +0 -1
  207. package/lib/screenplay/questions/lists/index.d.ts +0 -1
  208. package/lib/screenplay/questions/lists/index.js.map +0 -1
  209. package/lib/screenplay/questions/targets/Target.d.ts +0 -168
  210. package/lib/screenplay/questions/targets/Target.js +0 -190
  211. package/lib/screenplay/questions/targets/Target.js.map +0 -1
  212. package/lib/screenplay/questions/targets/TargetElement.d.ts +0 -50
  213. package/lib/screenplay/questions/targets/TargetElement.js +0 -62
  214. package/lib/screenplay/questions/targets/TargetElement.js.map +0 -1
  215. package/lib/screenplay/questions/targets/TargetElements.d.ts +0 -102
  216. package/lib/screenplay/questions/targets/TargetElements.js +0 -124
  217. package/lib/screenplay/questions/targets/TargetElements.js.map +0 -1
  218. package/lib/screenplay/questions/targets/TargetNestedElement.d.ts +0 -49
  219. package/lib/screenplay/questions/targets/TargetNestedElement.js +0 -61
  220. package/lib/screenplay/questions/targets/TargetNestedElement.js.map +0 -1
  221. package/lib/screenplay/questions/targets/TargetNestedElements.d.ts +0 -101
  222. package/lib/screenplay/questions/targets/TargetNestedElements.js +0 -123
  223. package/lib/screenplay/questions/targets/TargetNestedElements.js.map +0 -1
  224. package/lib/screenplay/questions/targets/builders.d.ts +0 -8
  225. package/lib/screenplay/questions/targets/builders.js +0 -3
  226. package/lib/screenplay/questions/targets/builders.js.map +0 -1
  227. package/lib/screenplay/questions/targets/index.d.ts +0 -5
  228. package/lib/screenplay/questions/targets/index.js +0 -18
  229. package/lib/screenplay/questions/targets/index.js.map +0 -1
  230. package/lib/screenplay/questions/targets/override.d.ts +0 -7
  231. package/lib/screenplay/questions/targets/override.js +0 -21
  232. package/lib/screenplay/questions/targets/override.js.map +0 -1
  233. package/lib/screenplay/questions/text/Text.d.ts +0 -41
  234. package/lib/screenplay/questions/text/Text.js +0 -50
  235. package/lib/screenplay/questions/text/Text.js.map +0 -1
  236. package/lib/screenplay/questions/text/TextOfMultipleElements.d.ts +0 -23
  237. package/lib/screenplay/questions/text/TextOfMultipleElements.js +0 -37
  238. package/lib/screenplay/questions/text/TextOfMultipleElements.js.map +0 -1
  239. package/lib/screenplay/questions/text/TextOfSingleElement.d.ts +0 -23
  240. package/lib/screenplay/questions/text/TextOfSingleElement.js +0 -35
  241. package/lib/screenplay/questions/text/TextOfSingleElement.js.map +0 -1
  242. package/lib/screenplay/questions/text/index.d.ts +0 -1
  243. package/lib/screenplay/questions/text/index.js +0 -14
  244. package/lib/screenplay/questions/text/index.js.map +0 -1
  245. package/lib/screenplay/withAnswerOf.d.ts +0 -8
  246. package/lib/screenplay/withAnswerOf.js +0 -18
  247. package/lib/screenplay/withAnswerOf.js.map +0 -1
  248. package/lib/stage/crew/index.d.ts +0 -1
  249. package/lib/stage/crew/index.js.map +0 -1
  250. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  251. package/lib/stage/crew/photographer/Photographer.js +0 -102
  252. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  253. package/lib/stage/crew/photographer/index.d.ts +0 -2
  254. package/lib/stage/crew/photographer/index.js +0 -15
  255. package/lib/stage/crew/photographer/index.js.map +0 -1
  256. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  257. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  258. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  259. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  260. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  261. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  262. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  263. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  264. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  265. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  266. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  267. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  268. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  269. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  270. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  271. package/lib/stage/index.d.ts +0 -1
  272. package/lib/stage/index.js +0 -14
  273. package/lib/stage/index.js.map +0 -1
  274. package/src/expectations/ElementFinderExpectation.ts +0 -29
  275. package/src/expectations/index.ts +0 -6
  276. package/src/expectations/isActive.ts +0 -24
  277. package/src/expectations/isClickable.ts +0 -20
  278. package/src/expectations/isEnabled.ts +0 -18
  279. package/src/expectations/isPresent.ts +0 -19
  280. package/src/expectations/isSelected.ts +0 -23
  281. package/src/expectations/isVisible.ts +0 -27
  282. package/src/screenplay/interactions/Accept.ts +0 -95
  283. package/src/screenplay/interactions/Clear.ts +0 -130
  284. package/src/screenplay/interactions/Click.ts +0 -96
  285. package/src/screenplay/interactions/Close.ts +0 -184
  286. package/src/screenplay/interactions/DeleteCookies.ts +0 -154
  287. package/src/screenplay/interactions/Dismiss.ts +0 -99
  288. package/src/screenplay/interactions/DoubleClick.ts +0 -124
  289. package/src/screenplay/interactions/Enter.ts +0 -104
  290. package/src/screenplay/interactions/EnterBuilder.ts +0 -29
  291. package/src/screenplay/interactions/ExecuteScript.ts +0 -325
  292. package/src/screenplay/interactions/Hover.ts +0 -106
  293. package/src/screenplay/interactions/Navigate.ts +0 -363
  294. package/src/screenplay/interactions/Press.ts +0 -137
  295. package/src/screenplay/interactions/PressBuilder.ts +0 -29
  296. package/src/screenplay/interactions/ResizeBrowserWindow.ts +0 -148
  297. package/src/screenplay/interactions/RightClick.ts +0 -114
  298. package/src/screenplay/interactions/Scroll.ts +0 -99
  299. package/src/screenplay/interactions/Select.ts +0 -402
  300. package/src/screenplay/interactions/SelectBuilder.ts +0 -35
  301. package/src/screenplay/interactions/Switch.ts +0 -393
  302. package/src/screenplay/interactions/TakeScreenshot.ts +0 -89
  303. package/src/screenplay/interactions/Wait.ts +0 -267
  304. package/src/screenplay/interactions/WaitBuilder.ts +0 -35
  305. package/src/screenplay/questions/Attribute.ts +0 -67
  306. package/src/screenplay/questions/Browser.ts +0 -55
  307. package/src/screenplay/questions/CSSClasses.ts +0 -121
  308. package/src/screenplay/questions/Cookie.ts +0 -70
  309. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  310. package/src/screenplay/questions/ModalDialog.ts +0 -149
  311. package/src/screenplay/questions/Pick.ts +0 -334
  312. package/src/screenplay/questions/Selected.ts +0 -268
  313. package/src/screenplay/questions/Value.ts +0 -73
  314. package/src/screenplay/questions/Website.ts +0 -27
  315. package/src/screenplay/questions/Window.ts +0 -29
  316. package/src/screenplay/questions/lists/ElementArrayFinderListAdapter.ts +0 -158
  317. package/src/screenplay/questions/lists/index.ts +0 -1
  318. package/src/screenplay/questions/targets/Target.ts +0 -198
  319. package/src/screenplay/questions/targets/TargetElement.ts +0 -70
  320. package/src/screenplay/questions/targets/TargetElements.ts +0 -142
  321. package/src/screenplay/questions/targets/TargetNestedElement.ts +0 -71
  322. package/src/screenplay/questions/targets/TargetNestedElements.ts +0 -142
  323. package/src/screenplay/questions/targets/builders.ts +0 -10
  324. package/src/screenplay/questions/targets/index.ts +0 -5
  325. package/src/screenplay/questions/targets/override.ts +0 -17
  326. package/src/screenplay/questions/text/Text.ts +0 -55
  327. package/src/screenplay/questions/text/TextOfMultipleElements.ts +0 -40
  328. package/src/screenplay/questions/text/TextOfSingleElement.ts +0 -37
  329. package/src/screenplay/questions/text/index.ts +0 -1
  330. package/src/screenplay/withAnswerOf.ts +0 -19
  331. package/src/stage/crew/index.ts +0 -1
  332. package/src/stage/crew/photographer/Photographer.ts +0 -108
  333. package/src/stage/crew/photographer/index.ts +0 -2
  334. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -102
  335. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  336. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  337. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  338. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  339. package/src/stage/index.ts +0 -1
@@ -1,363 +0,0 @@
1
- import { Answerable, AnswersQuestions, Duration, Interaction, TestCompromisedError, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
-
4
- import { promiseOf } from '../../promiseOf';
5
- import { BrowseTheWeb } from '../abilities';
6
-
7
- /**
8
- * @desc
9
- * Allows the {@link @serenity-js/core/lib/screenplay/actor~Actor} to navigate to a specific destination,
10
- * as well as back and forth in the browser history, or reload the current page.
11
- */
12
- export class Navigate {
13
-
14
- /**
15
- * @desc
16
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
17
- * navigate to a given URL.
18
- *
19
- * The URL can be:
20
- * - absolute, i.e. `https://example.org/search`
21
- * - relative, i.e. `/search`
22
- *
23
- * If the URL is relative, Protractor will append it to `baseUrl` configured in [`protractor.conf.js`](https://github.com/angular/protractor/blob/master/lib/config.ts).
24
- *
25
- * @example <caption>protractor.conf.js</caption>
26
- * exports.config = {
27
- * baseUrl: 'https://example.org',
28
- * // ...
29
- * }
30
- *
31
- * @example <caption>Navigate to path relative to baseUrl</caption>
32
- * import { actorCalled } from '@serenity-js/core';
33
- * import { BrowseTheWeb, Navigate } from '@serenity-js/protractor';
34
- *
35
- * actorCalled('Hannu')
36
- * .whoCan(BrowseTheWeb.using(protractor.browser))
37
- * .attemptsTo(
38
- * Navigate.to('/search'),
39
- * );
40
- *
41
- * @example <caption>Navigate to an absolute URL (overrides baseUrl)</caption>
42
- * import { actorCalled } from '@serenity-js/core';
43
- * import { BrowseTheWeb, Navigate } from '@serenity-js/protractor';
44
- *
45
- * actorCalled('Hannu')
46
- * .whoCan(BrowseTheWeb.using(protractor.browser))
47
- * .attemptsTo(
48
- * Navigate.to('https://mycompany.org/login'),
49
- * );
50
- *
51
- * @example <caption>Navigate to URL with timeout</caption>
52
- * import { actorCalled, Duration } from '@serenity-js/core';
53
- * import { BrowseTheWeb, Navigate } from '@serenity-js/protractor';
54
- *
55
- * actorCalled('Hannu')
56
- * .whoCan(BrowseTheWeb.using(protractor.browser))
57
- * .attemptsTo(
58
- * Navigate.to('/search').withTimeout(Duration.ofSeconds(2)),
59
- * );
60
- *
61
- * @param {Answerable<string>} url
62
- * An absolute URL or path an {@link @serenity-js/core/lib/screenplay/actor~Actor} should navigate to
63
- *
64
- * @returns {@serenity-js/core/lib/screenplay~Interaction & { withTimeout: (duration: Answerable<Duration>) => Interaction }}
65
- *
66
- * @see {@link BrowseTheWeb}
67
- * @see {@link @serenity-js/core~Duration}
68
- */
69
- static to(url: Answerable<string>): Interaction & { withTimeout: (duration: Answerable<Duration>) => Interaction } {
70
- return new NavigateToUrl(url);
71
- }
72
-
73
- /**
74
- * @desc
75
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
76
- * navigate back one page in the session history.
77
- *
78
- * @example <caption>Navigate to path relative to baseUrl</caption>
79
- * import { actorCalled } from '@serenity-js/core';
80
- * import { Ensure, endsWith } from '@serenity-js/assertions';
81
- * import { BrowseTheWeb, Navigate } from '@serenity-js/protractor';
82
- *
83
- * actorCalled('Hannu')
84
- * .whoCan(BrowseTheWeb.using(protractor.browser))
85
- * .attemptsTo(
86
- * Navigate.to('/first'),
87
- * Navigate.to('/second'),
88
- *
89
- * Navigate.back(),
90
- *
91
- * Ensure.that(Website.url(), endsWith('/first')),
92
- * );
93
- *
94
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
95
- *
96
- * @see {@link BrowseTheWeb}
97
- * @see {@link @serenity-js/assertions~Ensure}
98
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
99
- */
100
- static back(): Interaction {
101
- return new NavigateBack();
102
- }
103
-
104
- /**
105
- * @desc
106
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
107
- * navigate forward one page in the session history.
108
- *
109
- * @example <caption>Navigate to path relative to baseUrl</caption>
110
- * import { actorCalled } from '@serenity-js/core';
111
- * import { Ensure, endsWith } from '@serenity-js/assertions';
112
- * import { BrowseTheWeb, Navigate } from '@serenity-js/protractor';
113
- *
114
- * actorCalled('Hannu')
115
- * .whoCan(BrowseTheWeb.using(protractor.browser))
116
- * .attemptsTo(
117
- * Navigate.to('/first'),
118
- * Navigate.to('/second'),
119
- *
120
- * Navigate.back(),
121
- * Navigate.forward(),
122
- *
123
- * Ensure.that(Website.url(), endsWith('/second')),
124
- * );
125
- *
126
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
127
- *
128
- * @see {@link BrowseTheWeb}
129
- * @see {@link @serenity-js/assertions~Ensure}
130
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
131
- */
132
- static forward(): Interaction {
133
- return new NavigateForward();
134
- }
135
-
136
- /**
137
- * @desc
138
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
139
- * reload the current page.
140
- *
141
- * @example <caption>Navigate to path relative to baseUrl</caption>
142
- * import { actorCalled } from '@serenity-js/core';
143
- * import { Ensure, endsWith } from '@serenity-js/assertions';
144
- * import { Navigate, BrowseTheWeb, DeleteCookies } from '@serenity-js/protractor';
145
- *
146
- * actorCalled('Hannu')
147
- * .whoCan(BrowseTheWeb.using(protractor.browser))
148
- * .attemptsTo(
149
- * Navigate.to('/login'),
150
- * DeleteCookies.called('session_id'),
151
- * Navigate.reloadPage(),
152
- * );
153
- *
154
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
155
- *
156
- * @see {@link BrowseTheWeb}
157
- * @see {@link DeleteCookies}
158
- * @see {@link @serenity-js/assertions~Ensure}
159
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
160
- */
161
- static reloadPage(): Interaction {
162
- return new ReloadPage();
163
- }
164
- }
165
-
166
- /**
167
- * @package
168
- */
169
- class NavigateToUrl extends Interaction {
170
- constructor(private readonly url: Answerable<string>) {
171
- super();
172
- }
173
-
174
- /**
175
- * @desc
176
- * Specifies timeout to wait for an Angular app to load.
177
- * Please note that the timeout is ignored if you disable
178
- * synchronisation with Angular.
179
- *
180
- * @param {Answerable<Duration>} duration
181
- */
182
- withTimeout(duration: Answerable<Duration>): Interaction {
183
- return new NavigateToUrlWithTimeout(this.url, duration);
184
- }
185
-
186
- /**
187
- * @desc
188
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
189
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
190
- *
191
- * @param {UsesAbilities & AnswersQuestions} actor
192
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
193
- *
194
- * @returns {PromiseLike<void>}
195
- *
196
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
197
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
198
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
199
- */
200
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
201
- return actor.answer(this.url)
202
- .then(url =>
203
- BrowseTheWeb.as(actor).get(url)
204
- .catch(error => {
205
- throw new TestCompromisedError(`Couldn't navigate to ${ url }`, error);
206
- })
207
- )
208
- }
209
-
210
- /**
211
- * @desc
212
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
213
- *
214
- * @returns {string}
215
- */
216
- toString(): string {
217
- return formatted `#actor navigates to ${ this.url }`;
218
- }
219
- }
220
-
221
- /**
222
- * @package
223
- */
224
- class NavigateToUrlWithTimeout extends Interaction {
225
- constructor(private readonly url: Answerable<string>, private readonly timeout: Answerable<Duration>) {
226
- super();
227
- }
228
-
229
- /**
230
- * @desc
231
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
232
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
233
- *
234
- * @param {UsesAbilities & AnswersQuestions} actor
235
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
236
- *
237
- * @returns {PromiseLike<void>}
238
- *
239
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
240
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
241
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
242
- */
243
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
244
- return Promise.all([
245
- actor.answer(this.url),
246
- actor.answer(this.timeout),
247
- ]).then(([url, timeout]) =>
248
- BrowseTheWeb.as(actor).get(url, timeout.inMilliseconds()),
249
- );
250
- }
251
-
252
- /**
253
- * @desc
254
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
255
- *
256
- * @returns {string}
257
- */
258
- toString(): string {
259
- return formatted `#actor navigates to ${ this.url } waiting up to ${ this.timeout } for Angular to load`;
260
- }
261
- }
262
-
263
- /**
264
- * @package
265
- */
266
- class NavigateBack extends Interaction {
267
-
268
- /**
269
- * @desc
270
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
271
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
272
- *
273
- * @param {UsesAbilities & AnswersQuestions} actor
274
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
275
- *
276
- * @returns {PromiseLike<void>}
277
- *
278
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
279
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
280
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
281
- */
282
- performAs(actor: UsesAbilities & AnswersQuestions): Promise<void> {
283
- return promiseOf(BrowseTheWeb.as(actor).navigate().back());
284
- }
285
-
286
- /**
287
- * @desc
288
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
289
- *
290
- * @returns {string}
291
- */
292
- toString(): string {
293
- return formatted `#actor navigates back in the browser history`;
294
- }
295
- }
296
-
297
- /**
298
- * @package
299
- */
300
- class NavigateForward extends Interaction {
301
-
302
- /**
303
- * @desc
304
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
305
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
306
- *
307
- * @param {UsesAbilities & AnswersQuestions} actor
308
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
309
- *
310
- * @returns {PromiseLike<void>}
311
- *
312
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
313
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
314
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
315
- */
316
- performAs(actor: UsesAbilities & AnswersQuestions): Promise<void> {
317
- return promiseOf(BrowseTheWeb.as(actor).navigate().forward());
318
- }
319
-
320
- /**
321
- * @desc
322
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
323
- *
324
- * @returns {string}
325
- */
326
- toString(): string {
327
- return formatted `#actor navigates forward in the browser history`;
328
- }
329
- }
330
-
331
- /**
332
- * @package
333
- */
334
- class ReloadPage extends Interaction {
335
-
336
- /**
337
- * @desc
338
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
339
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
340
- *
341
- * @param {UsesAbilities & AnswersQuestions} actor
342
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
343
- *
344
- * @returns {PromiseLike<void>}
345
- *
346
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
347
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
348
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
349
- */
350
- performAs(actor: UsesAbilities & AnswersQuestions): Promise<void> {
351
- return promiseOf(BrowseTheWeb.as(actor).navigate().refresh());
352
- }
353
-
354
- /**
355
- * @desc
356
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
357
- *
358
- * @returns {string}
359
- */
360
- toString(): string {
361
- return formatted `#actor reloads the page`;
362
- }
363
- }
@@ -1,137 +0,0 @@
1
- import { AnswersQuestions, Interaction, Question, UsesAbilities } from '@serenity-js/core';
2
- import { ElementFinder, Key } from 'protractor';
3
- import { AlertPromise } from 'selenium-webdriver';
4
-
5
- import { withAnswerOf } from '../withAnswerOf';
6
- import { PressBuilder } from './PressBuilder';
7
-
8
- /**
9
- * @desc
10
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
11
- * send a key press or a sequence of keys to a Web element.
12
- *
13
- * **Please note** that modifier keys, such as Command ⌘, [won't work on Mac](https://github.com/angular/protractor/issues/690)
14
- *
15
- * @example <caption>Example widget</caption>
16
- * <form>
17
- * <input type="text" name="example" id="example" />
18
- * </form>
19
- *
20
- * @example <caption>Lean Page Object describing the widget</caption>
21
- * import { Target } from '@serenity-js/protractor';
22
- * import { by } from 'protractor';
23
- *
24
- * class Form {
25
- * static exampleInput = Target.the('example input')
26
- * .located(by.id('example'));
27
- * }
28
- *
29
- * @example <caption>Pressing keys</caption>
30
- * import { actorCalled } from '@serenity-js/core';
31
- * import { BrowseTheWeb, Press, Value } from '@serenity-js/protractor';
32
- * import { Ensure, equals } from '@serenity-js/assertions';
33
- * import { protractor, Key } from 'protractor';
34
- *
35
- * actorCalled('Priyanka')
36
- * .whoCan(BrowseTheWeb.using(protractor.browser))
37
- * .attemptsTo(
38
- * Press.the('H', 'i', '!', Key.ENTER).in(Form.exampleInput),
39
- * Ensure.that(Value.of(Form.exampleInput), equals('Hi!')),
40
- * );
41
- *
42
- * @see {@link BrowseTheWeb}
43
- * @see {@link Target}
44
- * @see {@link @serenity-js/assertions~Ensure}
45
- * @see {@link @serenity-js/assertions/lib/expectations~equals}
46
- * @see {@link selenium-webdriver~Key}
47
- *
48
- * @extends {@serenity-js/core/lib/screenplay~Interaction}
49
- */
50
- export class Press extends Interaction {
51
-
52
- /**
53
- * @desc
54
- * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
55
- *
56
- * @param {...keys: string[]} keys
57
- * A sequence of one or more keys to press
58
- *
59
- * @returns {PressBuilder}
60
- */
61
- static the(...keys: string[]): PressBuilder {
62
- return {
63
- in: (field: Question<ElementFinder> | ElementFinder | Question<AlertPromise> | AlertPromise) => new Press(keys, field),
64
- };
65
- }
66
-
67
- /**
68
- * @param {string[]} keys
69
- * A sequence of one or more keys to press
70
- *
71
- * @param {Question<ElementFinder> | ElementFinder} field
72
- * Web element to send the keys to
73
- */
74
- constructor(
75
- private readonly keys: string[],
76
- private readonly field: Question<ElementFinder> | ElementFinder | Question<AlertPromise> | AlertPromise,
77
- ) {
78
- super();
79
- }
80
-
81
- /**
82
- * @desc
83
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
84
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
85
- *
86
- * @param {UsesAbilities & AnswersQuestions} actor
87
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
88
- *
89
- * @returns {PromiseLike<void>}
90
- *
91
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
92
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
93
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
94
- */
95
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<any> {
96
- return withAnswerOf(actor, this.field, (elf: ElementFinder) => elf.sendKeys(...this.keys));
97
- }
98
-
99
- /**
100
- * @desc
101
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
102
- *
103
- * @returns {string}
104
- */
105
- toString(): string {
106
- return `#actor presses ${ describeSequenceOf(this.keys) } in ${ this.field.toString() }`;
107
- }
108
- }
109
-
110
- function describeSequenceOf(keys: string[]) {
111
- return keys.map(key => [
112
- capitalised(nameOf(key)),
113
- isModifier(key) ? '-' : ', ',
114
- ]).
115
- reduce((acc, current) => acc.concat(current), []).
116
- slice(0, keys.length * 2 - 1).
117
- join('');
118
- }
119
-
120
- function isModifier(key: string) {
121
- return !! ~ [ Key.ALT, Key.COMMAND, Key.CONTROL, Key.SHIFT ].indexOf(key);
122
- }
123
-
124
- function nameOf(key: string) {
125
-
126
- for (const candidate in Key) {
127
- if (Object.prototype.hasOwnProperty.call(Key, candidate) && Key[ candidate ] === key) {
128
- return candidate;
129
- }
130
- }
131
-
132
- return key;
133
- }
134
-
135
- function capitalised(name: string) {
136
- return name.charAt(0).toLocaleUpperCase() + name.slice(1).toLocaleLowerCase();
137
- }
@@ -1,29 +0,0 @@
1
- import { Question } from '@serenity-js/core';
2
- import { Interaction } from '@serenity-js/core/lib/screenplay';
3
- import { ElementFinder } from 'protractor';
4
- import { AlertPromise } from 'selenium-webdriver';
5
-
6
- /**
7
- * @desc
8
- * Fluent interface to make the instantiation of
9
- * the {@link @serenity-js/core/lib/screenplay~Interaction}
10
- * to {@link Press} more readable.
11
- *
12
- * @see {@link Press}
13
- *
14
- * @interface
15
- */
16
- export interface PressBuilder {
17
-
18
- /**
19
- * @desc
20
- * Instantiates an {@link @serenity-js/core/lib/screenplay~Interaction}
21
- * to {@link Press}.
22
- *
23
- * @param {Question<ElementFinder> | ElementFinder | Question<AlertPromise> | AlertPromise} field
24
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
25
- *
26
- * @see {@link Target}
27
- */
28
- in: (field: Question<ElementFinder> | ElementFinder | Question<AlertPromise> | AlertPromise) => Interaction;
29
- }
@@ -1,148 +0,0 @@
1
- import { Interaction, UsesAbilities } from '@serenity-js/core';
2
-
3
- import { BrowseTheWeb } from '../abilities';
4
-
5
- /**
6
- * @desc
7
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
8
- * resize the browser window.
9
- *
10
- * **Please note** that another way to set the size of the browser window
11
- * is to configure it in [`protractor.conf.js`](https://github.com/angular/protractor/blob/master/lib/config.ts).
12
- *
13
- * @see {@link Window}
14
- */
15
- export class ResizeBrowserWindow {
16
-
17
- /**
18
- * @desc
19
- * Instantiates a version of this {@link @serenity-js/core/lib/screenplay~Interaction}
20
- * setting the size of the browser window to maximum.
21
- *
22
- * @example <caption>Maximising browser window</caption>
23
- * import { actorCalled } from '@serenity-js/core';
24
- * import { BrowseTheWeb, Navigate, ResizeBrowserWindow, Window } from '@serenity-js/protractor';
25
- * import { Ensure, isGreaterThan } from '@serenity-js/assertions';
26
- * import { protractor } from 'protractor';
27
- *
28
- * actorCalled('Ventana')
29
- * .whoCan(BrowseTheWeb.using(protractor.browser))
30
- * .attemptsTo(
31
- * Navigate.to('/app'),
32
- * ResizeBrowserWindow.toMaximum(),
33
- * Ensure.that(Window.size(), property('width', isGreaterThan(1024))),
34
- * );
35
- *
36
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
37
- *
38
- * @see {@link BrowseTheWeb}
39
- * @see {@link Window.size}
40
- * @see {@link @serenity-js/assertions~Ensure}
41
- * @see {@link @serenity-js/assertions/lib/expectations~property}
42
- * @see {@link @serenity-js/assertions/lib/expectations~isGreaterThan}
43
- */
44
- static toMaximum(): Interaction {
45
- return new MaximiseBrowserWindow();
46
- }
47
-
48
- /**
49
- * @desc
50
- * Instantiates a version of this {@link @serenity-js/core/lib/screenplay~Interaction}
51
- * setting the size of the browser window to given `width` and `height`
52
- *
53
- * @example <caption>Setting specific window size</caption>
54
- * import { actorCalled } from '@serenity-js/core';
55
- * import { BrowseTheWeb, Navigate, ResizeBrowserWindow } from '@serenity-js/protractor';
56
- * import { protractor } from 'protractor';
57
- *
58
- * actorCalled('Ventana')
59
- * .whoCan(BrowseTheWeb.using(protractor.browser))
60
- * .attemptsTo(
61
- * Navigate.to('/app'),
62
- * ResizeBrowserWindow.to(828, 1792),
63
- * );
64
- *
65
- * @see {@link BrowseTheWeb}
66
- *
67
- * @param {number} width
68
- * Desired new width of the browser window
69
- *
70
- * @param {number} height
71
- * Desired new height of the browser window
72
- *
73
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
74
- */
75
- static to(width: number, height: number): Interaction {
76
- return new SetBrowserWindowSize(width, height);
77
- }
78
- }
79
-
80
- /**
81
- * @package
82
- */
83
- class MaximiseBrowserWindow implements Interaction {
84
-
85
- /**
86
- * @desc
87
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
88
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
89
- *
90
- * @param {UsesAbilities & AnswersQuestions} actor
91
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
92
- *
93
- * @returns {PromiseLike<void>}
94
- *
95
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
96
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
97
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
98
- */
99
- performAs(actor: UsesAbilities): PromiseLike<void> {
100
- return BrowseTheWeb.as(actor).manage().window().maximize();
101
- }
102
-
103
- /**
104
- * @desc
105
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
106
- *
107
- * @returns {string}
108
- */
109
- toString(): string {
110
- return `#actor maximises the browser window`;
111
- }
112
- }
113
-
114
- /**
115
- * @package
116
- */
117
- class SetBrowserWindowSize implements Interaction {
118
- constructor(private width: number, private height: number) {
119
- }
120
-
121
- /**
122
- * @desc
123
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
124
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
125
- *
126
- * @param {UsesAbilities & AnswersQuestions} actor
127
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
128
- *
129
- * @returns {PromiseLike<void>}
130
- *
131
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
132
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
133
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
134
- */
135
- performAs(actor: UsesAbilities): PromiseLike<void> {
136
- return BrowseTheWeb.as(actor).manage().window().setSize(this.width, this.height);
137
- }
138
-
139
- /**
140
- * @desc
141
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
142
- *
143
- * @returns {string}
144
- */
145
- toString(): string {
146
- return `#actor sets the size of the browser window to ${this.width} x ${this.height}`;
147
- }
148
- }