@serenity-js/protractor 2.33.1 → 3.0.0-rc.11

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 (343) hide show
  1. package/CHANGELOG.md +481 -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 -191
  8. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithProtractor.js} +129 -251
  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/ProtractorFrame.d.ts +10 -0
  25. package/lib/screenplay/models/ProtractorFrame.js +39 -0
  26. package/lib/screenplay/models/ProtractorFrame.js.map +1 -0
  27. package/lib/screenplay/models/ProtractorModalDialog.d.ts +11 -0
  28. package/lib/screenplay/models/ProtractorModalDialog.js +43 -0
  29. package/lib/screenplay/models/ProtractorModalDialog.js.map +1 -0
  30. package/lib/screenplay/models/ProtractorPage.d.ts +26 -0
  31. package/lib/screenplay/models/ProtractorPage.js +98 -0
  32. package/lib/screenplay/models/ProtractorPage.js.map +1 -0
  33. package/lib/screenplay/models/ProtractorPageElement.d.ts +21 -0
  34. package/lib/screenplay/models/ProtractorPageElement.js +230 -0
  35. package/lib/screenplay/models/ProtractorPageElement.js.map +1 -0
  36. package/lib/screenplay/models/index.d.ts +5 -0
  37. package/lib/screenplay/{questions/lists → models}/index.js +5 -1
  38. package/lib/screenplay/models/index.js.map +1 -0
  39. package/lib/screenplay/models/locators/ProtractorLocator.d.ts +9 -0
  40. package/lib/screenplay/models/locators/ProtractorLocator.js +28 -0
  41. package/lib/screenplay/models/locators/ProtractorLocator.js.map +1 -0
  42. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.d.ts +5 -0
  43. package/lib/screenplay/{interactions/EnterBuilder.js → models/locators/ProtractorNativeElementRoot.js} +1 -1
  44. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.js.map +1 -0
  45. package/lib/screenplay/models/locators/index.d.ts +2 -0
  46. package/lib/{stage/crew → screenplay/models/locators}/index.js +2 -1
  47. package/lib/screenplay/models/locators/index.js.map +1 -0
  48. package/lib/{promiseOf.d.ts → screenplay/promised.d.ts} +1 -1
  49. package/lib/{promiseOf.js → screenplay/promised.js} +4 -4
  50. package/lib/screenplay/promised.js.map +1 -0
  51. package/lib/screenplay/questions/ProtractorParam.d.ts +24 -29
  52. package/lib/screenplay/questions/ProtractorParam.js +26 -33
  53. package/lib/screenplay/questions/ProtractorParam.js.map +1 -1
  54. package/lib/screenplay/questions/index.d.ts +0 -13
  55. package/lib/screenplay/questions/index.js +0 -16
  56. package/lib/screenplay/questions/index.js.map +1 -1
  57. package/lib/screenplay/unpromisedWebElement.d.ts +11 -0
  58. package/lib/screenplay/unpromisedWebElement.js +24 -0
  59. package/lib/screenplay/unpromisedWebElement.js.map +1 -0
  60. package/package.json +19 -20
  61. package/src/adapter/ProtractorFrameworkAdapter.ts +5 -0
  62. package/src/index.ts +0 -2
  63. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithProtractor.ts} +148 -263
  64. package/src/screenplay/abilities/index.ts +1 -1
  65. package/src/screenplay/index.ts +1 -0
  66. package/src/screenplay/interactions/UseAngular.ts +3 -3
  67. package/src/screenplay/interactions/index.ts +0 -19
  68. package/src/screenplay/models/ProtractorCookie.ts +41 -0
  69. package/src/screenplay/models/ProtractorFrame.ts +44 -0
  70. package/src/screenplay/models/ProtractorModalDialog.ts +49 -0
  71. package/src/screenplay/models/ProtractorPage.ts +124 -0
  72. package/src/screenplay/models/ProtractorPageElement.ts +285 -0
  73. package/src/screenplay/models/index.ts +6 -0
  74. package/src/screenplay/models/locators/ProtractorLocator.ts +50 -0
  75. package/src/screenplay/models/locators/ProtractorNativeElementRoot.ts +6 -0
  76. package/src/screenplay/models/locators/index.ts +2 -0
  77. package/src/{promiseOf.ts → screenplay/promised.ts} +1 -1
  78. package/src/screenplay/questions/ProtractorParam.ts +29 -38
  79. package/src/screenplay/questions/index.ts +0 -13
  80. package/src/screenplay/unpromisedWebElement.ts +25 -0
  81. package/lib/expectations/ElementFinderExpectation.d.ts +0 -11
  82. package/lib/expectations/ElementFinderExpectation.js +0 -24
  83. package/lib/expectations/ElementFinderExpectation.js.map +0 -1
  84. package/lib/expectations/index.d.ts +0 -6
  85. package/lib/expectations/index.js +0 -19
  86. package/lib/expectations/index.js.map +0 -1
  87. package/lib/expectations/isActive.d.ts +0 -13
  88. package/lib/expectations/isActive.js +0 -19
  89. package/lib/expectations/isActive.js.map +0 -1
  90. package/lib/expectations/isClickable.d.ts +0 -13
  91. package/lib/expectations/isClickable.js +0 -22
  92. package/lib/expectations/isClickable.js.map +0 -1
  93. package/lib/expectations/isEnabled.d.ts +0 -13
  94. package/lib/expectations/isEnabled.js +0 -19
  95. package/lib/expectations/isEnabled.js.map +0 -1
  96. package/lib/expectations/isPresent.d.ts +0 -14
  97. package/lib/expectations/isPresent.js +0 -20
  98. package/lib/expectations/isPresent.js.map +0 -1
  99. package/lib/expectations/isSelected.d.ts +0 -13
  100. package/lib/expectations/isSelected.js +0 -22
  101. package/lib/expectations/isSelected.js.map +0 -1
  102. package/lib/expectations/isVisible.d.ts +0 -13
  103. package/lib/expectations/isVisible.js +0 -25
  104. package/lib/expectations/isVisible.js.map +0 -1
  105. package/lib/promiseOf.js.map +0 -1
  106. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  107. package/lib/screenplay/interactions/Accept.d.ts +0 -81
  108. package/lib/screenplay/interactions/Accept.js +0 -95
  109. package/lib/screenplay/interactions/Accept.js.map +0 -1
  110. package/lib/screenplay/interactions/Clear.d.ts +0 -88
  111. package/lib/screenplay/interactions/Clear.js +0 -121
  112. package/lib/screenplay/interactions/Clear.js.map +0 -1
  113. package/lib/screenplay/interactions/Click.d.ts +0 -81
  114. package/lib/screenplay/interactions/Click.js +0 -95
  115. package/lib/screenplay/interactions/Click.js.map +0 -1
  116. package/lib/screenplay/interactions/Close.d.ts +0 -89
  117. package/lib/screenplay/interactions/Close.js +0 -169
  118. package/lib/screenplay/interactions/Close.js.map +0 -1
  119. package/lib/screenplay/interactions/DeleteCookies.d.ts +0 -72
  120. package/lib/screenplay/interactions/DeleteCookies.js +0 -149
  121. package/lib/screenplay/interactions/DeleteCookies.js.map +0 -1
  122. package/lib/screenplay/interactions/Dismiss.d.ts +0 -85
  123. package/lib/screenplay/interactions/Dismiss.js +0 -99
  124. package/lib/screenplay/interactions/Dismiss.js.map +0 -1
  125. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -99
  126. package/lib/screenplay/interactions/DoubleClick.js +0 -121
  127. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  128. package/lib/screenplay/interactions/Enter.d.ts +0 -81
  129. package/lib/screenplay/interactions/Enter.js +0 -96
  130. package/lib/screenplay/interactions/Enter.js.map +0 -1
  131. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -27
  132. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  133. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -171
  134. package/lib/screenplay/interactions/ExecuteScript.js +0 -291
  135. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  136. package/lib/screenplay/interactions/Hover.d.ts +0 -86
  137. package/lib/screenplay/interactions/Hover.js +0 -103
  138. package/lib/screenplay/interactions/Hover.js.map +0 -1
  139. package/lib/screenplay/interactions/Navigate.d.ts +0 -149
  140. package/lib/screenplay/interactions/Navigate.js +0 -345
  141. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  142. package/lib/screenplay/interactions/Press.d.ts +0 -90
  143. package/lib/screenplay/interactions/Press.js +0 -127
  144. package/lib/screenplay/interactions/Press.js.map +0 -1
  145. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -27
  146. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  147. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  148. package/lib/screenplay/interactions/ResizeBrowserWindow.d.ts +0 -69
  149. package/lib/screenplay/interactions/ResizeBrowserWindow.js +0 -144
  150. package/lib/screenplay/interactions/ResizeBrowserWindow.js.map +0 -1
  151. package/lib/screenplay/interactions/RightClick.d.ts +0 -97
  152. package/lib/screenplay/interactions/RightClick.js +0 -113
  153. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  154. package/lib/screenplay/interactions/Scroll.d.ts +0 -83
  155. package/lib/screenplay/interactions/Scroll.js +0 -98
  156. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  157. package/lib/screenplay/interactions/Select.d.ts +0 -212
  158. package/lib/screenplay/interactions/Select.js +0 -342
  159. package/lib/screenplay/interactions/Select.js.map +0 -1
  160. package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
  161. package/lib/screenplay/interactions/SelectBuilder.js +0 -3
  162. package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
  163. package/lib/screenplay/interactions/Switch.d.ts +0 -210
  164. package/lib/screenplay/interactions/Switch.js +0 -345
  165. package/lib/screenplay/interactions/Switch.js.map +0 -1
  166. package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -67
  167. package/lib/screenplay/interactions/TakeScreenshot.js +0 -86
  168. package/lib/screenplay/interactions/TakeScreenshot.js.map +0 -1
  169. package/lib/screenplay/interactions/Wait.d.ts +0 -147
  170. package/lib/screenplay/interactions/Wait.js +0 -247
  171. package/lib/screenplay/interactions/Wait.js.map +0 -1
  172. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -33
  173. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  174. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  175. package/lib/screenplay/questions/Attribute.d.ts +0 -29
  176. package/lib/screenplay/questions/Attribute.js +0 -56
  177. package/lib/screenplay/questions/Attribute.js.map +0 -1
  178. package/lib/screenplay/questions/Browser.d.ts +0 -47
  179. package/lib/screenplay/questions/Browser.js +0 -55
  180. package/lib/screenplay/questions/Browser.js.map +0 -1
  181. package/lib/screenplay/questions/CSSClasses.d.ts +0 -94
  182. package/lib/screenplay/questions/CSSClasses.js +0 -118
  183. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  184. package/lib/screenplay/questions/Cookie.d.ts +0 -9
  185. package/lib/screenplay/questions/Cookie.js +0 -65
  186. package/lib/screenplay/questions/Cookie.js.map +0 -1
  187. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  188. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  189. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  190. package/lib/screenplay/questions/ModalDialog.d.ts +0 -120
  191. package/lib/screenplay/questions/ModalDialog.js +0 -142
  192. package/lib/screenplay/questions/ModalDialog.js.map +0 -1
  193. package/lib/screenplay/questions/Pick.d.ts +0 -72
  194. package/lib/screenplay/questions/Pick.js +0 -254
  195. package/lib/screenplay/questions/Pick.js.map +0 -1
  196. package/lib/screenplay/questions/Selected.d.ts +0 -185
  197. package/lib/screenplay/questions/Selected.js +0 -254
  198. package/lib/screenplay/questions/Selected.js.map +0 -1
  199. package/lib/screenplay/questions/Value.d.ts +0 -47
  200. package/lib/screenplay/questions/Value.js +0 -67
  201. package/lib/screenplay/questions/Value.js.map +0 -1
  202. package/lib/screenplay/questions/Website.d.ts +0 -15
  203. package/lib/screenplay/questions/Website.js +0 -25
  204. package/lib/screenplay/questions/Website.js.map +0 -1
  205. package/lib/screenplay/questions/Window.d.ts +0 -23
  206. package/lib/screenplay/questions/Window.js +0 -28
  207. package/lib/screenplay/questions/Window.js.map +0 -1
  208. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.d.ts +0 -89
  209. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js +0 -138
  210. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js.map +0 -1
  211. package/lib/screenplay/questions/lists/index.d.ts +0 -1
  212. package/lib/screenplay/questions/lists/index.js.map +0 -1
  213. package/lib/screenplay/questions/targets/Target.d.ts +0 -168
  214. package/lib/screenplay/questions/targets/Target.js +0 -190
  215. package/lib/screenplay/questions/targets/Target.js.map +0 -1
  216. package/lib/screenplay/questions/targets/TargetElement.d.ts +0 -50
  217. package/lib/screenplay/questions/targets/TargetElement.js +0 -62
  218. package/lib/screenplay/questions/targets/TargetElement.js.map +0 -1
  219. package/lib/screenplay/questions/targets/TargetElements.d.ts +0 -102
  220. package/lib/screenplay/questions/targets/TargetElements.js +0 -124
  221. package/lib/screenplay/questions/targets/TargetElements.js.map +0 -1
  222. package/lib/screenplay/questions/targets/TargetNestedElement.d.ts +0 -49
  223. package/lib/screenplay/questions/targets/TargetNestedElement.js +0 -61
  224. package/lib/screenplay/questions/targets/TargetNestedElement.js.map +0 -1
  225. package/lib/screenplay/questions/targets/TargetNestedElements.d.ts +0 -101
  226. package/lib/screenplay/questions/targets/TargetNestedElements.js +0 -123
  227. package/lib/screenplay/questions/targets/TargetNestedElements.js.map +0 -1
  228. package/lib/screenplay/questions/targets/builders.d.ts +0 -8
  229. package/lib/screenplay/questions/targets/builders.js +0 -3
  230. package/lib/screenplay/questions/targets/builders.js.map +0 -1
  231. package/lib/screenplay/questions/targets/index.d.ts +0 -5
  232. package/lib/screenplay/questions/targets/index.js +0 -18
  233. package/lib/screenplay/questions/targets/index.js.map +0 -1
  234. package/lib/screenplay/questions/targets/override.d.ts +0 -7
  235. package/lib/screenplay/questions/targets/override.js +0 -21
  236. package/lib/screenplay/questions/targets/override.js.map +0 -1
  237. package/lib/screenplay/questions/text/Text.d.ts +0 -41
  238. package/lib/screenplay/questions/text/Text.js +0 -50
  239. package/lib/screenplay/questions/text/Text.js.map +0 -1
  240. package/lib/screenplay/questions/text/TextOfMultipleElements.d.ts +0 -23
  241. package/lib/screenplay/questions/text/TextOfMultipleElements.js +0 -37
  242. package/lib/screenplay/questions/text/TextOfMultipleElements.js.map +0 -1
  243. package/lib/screenplay/questions/text/TextOfSingleElement.d.ts +0 -23
  244. package/lib/screenplay/questions/text/TextOfSingleElement.js +0 -35
  245. package/lib/screenplay/questions/text/TextOfSingleElement.js.map +0 -1
  246. package/lib/screenplay/questions/text/index.d.ts +0 -1
  247. package/lib/screenplay/questions/text/index.js +0 -14
  248. package/lib/screenplay/questions/text/index.js.map +0 -1
  249. package/lib/screenplay/withAnswerOf.d.ts +0 -8
  250. package/lib/screenplay/withAnswerOf.js +0 -18
  251. package/lib/screenplay/withAnswerOf.js.map +0 -1
  252. package/lib/stage/crew/index.d.ts +0 -1
  253. package/lib/stage/crew/index.js.map +0 -1
  254. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  255. package/lib/stage/crew/photographer/Photographer.js +0 -102
  256. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  257. package/lib/stage/crew/photographer/index.d.ts +0 -2
  258. package/lib/stage/crew/photographer/index.js +0 -15
  259. package/lib/stage/crew/photographer/index.js.map +0 -1
  260. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  261. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  262. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  263. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  264. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  265. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  266. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  267. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  268. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  269. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  270. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  271. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  272. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  273. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  274. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  275. package/lib/stage/index.d.ts +0 -1
  276. package/lib/stage/index.js +0 -14
  277. package/lib/stage/index.js.map +0 -1
  278. package/src/expectations/ElementFinderExpectation.ts +0 -29
  279. package/src/expectations/index.ts +0 -6
  280. package/src/expectations/isActive.ts +0 -24
  281. package/src/expectations/isClickable.ts +0 -20
  282. package/src/expectations/isEnabled.ts +0 -18
  283. package/src/expectations/isPresent.ts +0 -19
  284. package/src/expectations/isSelected.ts +0 -23
  285. package/src/expectations/isVisible.ts +0 -27
  286. package/src/screenplay/interactions/Accept.ts +0 -95
  287. package/src/screenplay/interactions/Clear.ts +0 -130
  288. package/src/screenplay/interactions/Click.ts +0 -96
  289. package/src/screenplay/interactions/Close.ts +0 -184
  290. package/src/screenplay/interactions/DeleteCookies.ts +0 -154
  291. package/src/screenplay/interactions/Dismiss.ts +0 -99
  292. package/src/screenplay/interactions/DoubleClick.ts +0 -124
  293. package/src/screenplay/interactions/Enter.ts +0 -104
  294. package/src/screenplay/interactions/EnterBuilder.ts +0 -29
  295. package/src/screenplay/interactions/ExecuteScript.ts +0 -325
  296. package/src/screenplay/interactions/Hover.ts +0 -106
  297. package/src/screenplay/interactions/Navigate.ts +0 -363
  298. package/src/screenplay/interactions/Press.ts +0 -137
  299. package/src/screenplay/interactions/PressBuilder.ts +0 -29
  300. package/src/screenplay/interactions/ResizeBrowserWindow.ts +0 -148
  301. package/src/screenplay/interactions/RightClick.ts +0 -114
  302. package/src/screenplay/interactions/Scroll.ts +0 -99
  303. package/src/screenplay/interactions/Select.ts +0 -402
  304. package/src/screenplay/interactions/SelectBuilder.ts +0 -35
  305. package/src/screenplay/interactions/Switch.ts +0 -393
  306. package/src/screenplay/interactions/TakeScreenshot.ts +0 -89
  307. package/src/screenplay/interactions/Wait.ts +0 -267
  308. package/src/screenplay/interactions/WaitBuilder.ts +0 -35
  309. package/src/screenplay/questions/Attribute.ts +0 -67
  310. package/src/screenplay/questions/Browser.ts +0 -55
  311. package/src/screenplay/questions/CSSClasses.ts +0 -121
  312. package/src/screenplay/questions/Cookie.ts +0 -70
  313. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  314. package/src/screenplay/questions/ModalDialog.ts +0 -149
  315. package/src/screenplay/questions/Pick.ts +0 -334
  316. package/src/screenplay/questions/Selected.ts +0 -268
  317. package/src/screenplay/questions/Value.ts +0 -73
  318. package/src/screenplay/questions/Website.ts +0 -27
  319. package/src/screenplay/questions/Window.ts +0 -29
  320. package/src/screenplay/questions/lists/ElementArrayFinderListAdapter.ts +0 -158
  321. package/src/screenplay/questions/lists/index.ts +0 -1
  322. package/src/screenplay/questions/targets/Target.ts +0 -198
  323. package/src/screenplay/questions/targets/TargetElement.ts +0 -70
  324. package/src/screenplay/questions/targets/TargetElements.ts +0 -142
  325. package/src/screenplay/questions/targets/TargetNestedElement.ts +0 -71
  326. package/src/screenplay/questions/targets/TargetNestedElements.ts +0 -142
  327. package/src/screenplay/questions/targets/builders.ts +0 -10
  328. package/src/screenplay/questions/targets/index.ts +0 -5
  329. package/src/screenplay/questions/targets/override.ts +0 -17
  330. package/src/screenplay/questions/text/Text.ts +0 -55
  331. package/src/screenplay/questions/text/TextOfMultipleElements.ts +0 -40
  332. package/src/screenplay/questions/text/TextOfSingleElement.ts +0 -37
  333. package/src/screenplay/questions/text/index.ts +0 -1
  334. package/src/screenplay/withAnswerOf.ts +0 -19
  335. package/src/stage/crew/index.ts +0 -1
  336. package/src/stage/crew/photographer/Photographer.ts +0 -108
  337. package/src/stage/crew/photographer/index.ts +0 -2
  338. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -102
  339. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  340. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  341. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  342. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  343. package/src/stage/index.ts +0 -1
@@ -1,268 +0,0 @@
1
- import { AnswersQuestions, Question, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
- import { ElementFinder } from 'protractor';
4
-
5
- import { promiseOf } from '../../promiseOf';
6
- import { withAnswerOf } from '../withAnswerOf';
7
- import { Value } from './Value';
8
-
9
- /**
10
- * @desc
11
- * Represents options and values selected in a
12
- * [HTML `<select>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select).
13
- *
14
- * @see {@link Select}
15
- */
16
- export class Selected {
17
-
18
- /**
19
- * @desc
20
- * Represents the value of a single option selected in a
21
- * [HTML `<select>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select).
22
- *
23
- * @example <caption>Example widget</caption>
24
- * <select data-test='countries'>
25
- * <option value='UK'>United Kingdom</option>
26
- * <option value='PL'>Poland</option>
27
- * <option value='US'>United States</option>
28
- * </select>
29
- *
30
- * @example <caption>Lean Page Object</caption>
31
- * import { Target } from '@serenity-js/protractor';
32
- * import { browser, by } from 'protractor';
33
- *
34
- * class Countries {
35
- * static dropdown = Target.the('countries dropdown')
36
- * .located(by.css('[data-test="countries"]'));
37
- * }
38
- *
39
- * @example <caption>Retrieving the selected value</caption>
40
- * import { actorCalled } from '@serenity-js/core';
41
- * import { Accept, BrowseTheWeb, Select, Selected } from '@serenity-js/protractor';
42
- * import { Ensure, equals } from '@serenity-js/assertions';
43
- * import { protractor } from 'protractor';
44
- *
45
- * actorCalled('Nick')
46
- * .whoCan(BrowseTheWeb.using(protractor.browser))
47
- * .attemptsTo(
48
- * Select.value('UK').from(Countries.dropdown),
49
- * Ensure.that(Selected.valueOf(Countries.dropdown), equals('UK')),
50
- * );
51
- *
52
- * @param {Question<ElementFinder> | ElementFinder} target
53
- * A {@link Target} identifying the `<select>` element of interest
54
- *
55
- * @returns {Question<Promise<string>>}
56
- *
57
- * @see {@link Select.value}
58
- */
59
- static valueOf(target: Question<ElementFinder> | ElementFinder): Question<Promise<string>> {
60
- return new SelectedValue(target);
61
- }
62
-
63
- /**
64
- * @desc
65
- * Represents values of options selected in a
66
- * [HTML `<select multiple>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple)
67
- *
68
- * @example <caption>Example widget</caption>
69
- * <select multiple data-test='countries'>
70
- * <option value='UK'>United Kingdom</option>
71
- * <option value='PL'>Poland</option>
72
- * <option value='US'>United States</option>
73
- * </select>
74
- *
75
- * @example <caption>Lean Page Object</caption>
76
- * import { Target } from '@serenity-js/protractor';
77
- * import { browser, by } from 'protractor';
78
- *
79
- * class Countries {
80
- * static dropdown = Target.the('countries dropdown')
81
- * .located(by.css('[data-test="countries"]'));
82
- * }
83
- *
84
- * @example <caption>Retrieving the selected value</caption>
85
- * import { actorCalled } from '@serenity-js/core';
86
- * import { Accept, BrowseTheWeb, Select, Selected } from '@serenity-js/protractor';
87
- * import { Ensure, equals } from '@serenity-js/assertions';
88
- * import { protractor } from 'protractor';
89
- *
90
- * actorCalled('Nick')
91
- * .whoCan(BrowseTheWeb.using(protractor.browser))
92
- * .attemptsTo(
93
- * Select.values('UK').from(Countries.dropdown),
94
- * Ensure.that(Selected.valuesOf(Countries.dropdown), equals([ 'UK' ])),
95
- * );
96
- *
97
- * @param {Question<ElementFinder> | ElementFinder} target
98
- * A {@link Target} identifying the `<select>` element of interest
99
- *
100
- * @returns {Question<Promise<string[]>>}
101
- *
102
- * @see {@link Select.values}
103
- */
104
- static valuesOf(target: Question<ElementFinder> | ElementFinder): Question<Promise<string[]>> {
105
- return new SelectedValues(target);
106
- }
107
-
108
- /**
109
- * @desc
110
- * Represents a single option selected in a
111
- * [HTML `<select>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple)
112
- *
113
- * @example <caption>Example widget</caption>
114
- * <select data-test='countries'>
115
- * <option value='UK'>United Kingdom</option>
116
- * <option value='PL'>Poland</option>
117
- * <option value='US'>United States</option>
118
- * </select>
119
- *
120
- * @example <caption>Lean Page Object</caption>
121
- * import { Target } from '@serenity-js/protractor';
122
- * import { browser, by } from 'protractor';
123
- *
124
- * class Countries {
125
- * static dropdown = Target.the('countries dropdown')
126
- * .located(by.css('[data-test="countries"]'));
127
- * }
128
- *
129
- * @example <caption>Retrieving the selected value</caption>
130
- * import { actorCalled } from '@serenity-js/core';
131
- * import { Accept, BrowseTheWeb, Select, Selected } from '@serenity-js/protractor';
132
- * import { Ensure, equals } from '@serenity-js/assertions';
133
- * import { protractor } from 'protractor';
134
- *
135
- * actorCalled('Nick')
136
- * .whoCan(BrowseTheWeb.using(protractor.browser))
137
- * .attemptsTo(
138
- * Select.option('Poland').from(Countries.dropdown),
139
- * Ensure.that(
140
- * Selected.optionIn(Countries.dropdown),
141
- * equals('Poland')
142
- * ),
143
- * );
144
- *
145
- * @param {Question<ElementFinder> | ElementFinder} target
146
- * A {@link Target} identifying the `<select>` element of interest
147
- *
148
- * @returns {Question<Promise<string>>}
149
- *
150
- * @see {@link Select.option}
151
- */
152
- static optionIn(target: Question<ElementFinder> | ElementFinder): Question<Promise<string>> {
153
- return new SelectedOption(target);
154
- }
155
-
156
- /**
157
- * @desc
158
- * Represents options selected in a
159
- * [HTML `<select multiple>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple)
160
- *
161
- * @example <caption>Example widget</caption>
162
- * <select multiple data-test='countries'>
163
- * <option value='UK'>United Kingdom</option>
164
- * <option value='PL'>Poland</option>
165
- * <option value='US'>United States</option>
166
- * </select>
167
- *
168
- * @example <caption>Lean Page Object</caption>
169
- * import { Target } from '@serenity-js/protractor';
170
- * import { browser, by } from 'protractor';
171
- *
172
- * class Countries {
173
- * static dropdown = Target.the('countries dropdown')
174
- * .located(by.css('[data-test="countries"]'));
175
- * }
176
- *
177
- * @example <caption>Retrieving the selected value</caption>
178
- * import { actorCalled } from '@serenity-js/core';
179
- * import { Accept, BrowseTheWeb, Select, Selected } from '@serenity-js/protractor';
180
- * import { Ensure, equals } from '@serenity-js/assertions';
181
- * import { protractor } from 'protractor';
182
- *
183
- * actorCalled('Nick')
184
- * .whoCan(BrowseTheWeb.using(protractor.browser))
185
- * .attemptsTo(
186
- * Select.options('Poland', 'United States').from(Countries.dropdown),
187
- * Ensure.that(
188
- * Selected.optionsIn(Countries.dropdown),
189
- * equals([ 'Poland', 'United States' ])
190
- * ),
191
- * );
192
- *
193
- * @param {Question<ElementFinder> | ElementFinder} target
194
- * A {@link Target} identifying the `<select>` element of interest
195
- *
196
- * @returns {Question<Promise<string[]>>}
197
- *
198
- * @see {@link Select.options}
199
- */
200
- static optionsIn(target: Question<ElementFinder> | ElementFinder): Question<Promise<string[]>> {
201
- return new SelectedOptions(target);
202
- }
203
- }
204
-
205
- /**
206
- * @package
207
- */
208
- class SelectedValue extends Question<Promise<string>> {
209
-
210
- constructor(private readonly target: Question<ElementFinder> | ElementFinder) {
211
- super(formatted `value selected in ${ target }`);
212
- }
213
-
214
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<string> {
215
- const value = withAnswerOf(actor, this.target, (element: ElementFinder) =>
216
- Value.of(element.$('option:checked')).answeredBy(actor)
217
- );
218
-
219
- return promiseOf(value);
220
- }
221
- }
222
-
223
- /**
224
- * @package
225
- */
226
- class SelectedValues extends Question<Promise<string[]>> {
227
-
228
- constructor(private readonly target: Question<ElementFinder> | ElementFinder) {
229
- super(formatted `values selected in ${ target }`);
230
- }
231
-
232
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<string[]> {
233
- const options = withAnswerOf(actor, this.target, (element: ElementFinder) => element.$$('option')
234
- .filter(option => option.isSelected()));
235
-
236
- return promiseOf(options.map(option => Value.of(option).answeredBy(actor)));
237
- }
238
- }
239
-
240
- /**
241
- * @package
242
- */
243
- class SelectedOption extends Question<Promise<string>> {
244
-
245
- constructor(private target: Question<ElementFinder> | ElementFinder) {
246
- super(formatted `option selected in ${ target }`);
247
- }
248
-
249
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<string> {
250
- return promiseOf(withAnswerOf(actor, this.target, element => element.$('option:checked').getText()));
251
- }
252
- }
253
-
254
- /**
255
- * @package
256
- */
257
- class SelectedOptions extends Question<Promise<string[]>> {
258
-
259
- constructor(private target: Question<ElementFinder> | ElementFinder) {
260
- super(formatted `options selected in ${ target }`);
261
- }
262
-
263
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<string[]> {
264
- return promiseOf(withAnswerOf(actor, this.target, element => element.$$('option')
265
- .filter(option => option.isSelected())
266
- .map(elements => elements.getText())));
267
- }
268
- }
@@ -1,73 +0,0 @@
1
- import { AnswersQuestions, MetaQuestion, Question, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
- import { ElementFinder } from 'protractor';
4
-
5
- import { BrowseTheWeb } from '../abilities';
6
- import { withAnswerOf } from '../withAnswerOf';
7
- import { TargetNestedElement } from './targets';
8
-
9
- /**
10
- * @desc
11
- * Resolves to the value of a given [`input`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)
12
- * {@link WebElement}, represented by {@link ElementFinder} or `Question<ElementFinder>`.
13
- *
14
- * @extends {@serenity-js/core/lib/screenplay~Question}
15
- * @implements {@serenity-js/core/lib/screenplay/questions~MetaQuestion}
16
- */
17
- export class Value
18
- extends Question<Promise<string>>
19
- implements MetaQuestion<Question<ElementFinder> | ElementFinder, Promise<string>> {
20
- /**
21
- * @param {Question<ElementFinder> | ElementFinder} target
22
- * @returns {Value}
23
- */
24
- static of(target: Question<ElementFinder> | ElementFinder): Value {
25
- return new Value(target);
26
- }
27
-
28
- /**
29
- * @param {Question<ElementFinder> | ElementFinder} target
30
- */
31
- constructor(private readonly target: Question<ElementFinder> | ElementFinder) {
32
- super(formatted`the value of ${ target }`);
33
- }
34
-
35
- /**
36
- * @desc
37
- * Resolves to the value of a given [`input`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)
38
- * {@link WebElement}, located in the context of a `parent` element.
39
- *
40
- * @param {Question<ElementFinder> | ElementFinder} parent
41
- * @returns {Question<Promise<string[]>>}
42
- *
43
- * @see {@link Target.all}
44
- * @see {@link @serenity-js/core/lib/screenplay/questions~MetaQuestion}
45
- */
46
- of(parent: Question<ElementFinder> | ElementFinder): Question<Promise<string>> {
47
- return new Value(new TargetNestedElement(parent, this.target));
48
- }
49
-
50
- /**
51
- * @desc
52
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
53
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
54
- *
55
- * @param {AnswersQuestions & UsesAbilities} actor
56
- * @returns {Promise<void>}
57
- *
58
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
59
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
60
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
61
- */
62
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<string> {
63
- return withAnswerOf(actor, this.target, (elf: ElementFinder) =>
64
- BrowseTheWeb.as(actor).executeFunction(
65
- /* istanbul ignore next */
66
- function getValue(webElement) {
67
- return webElement.value;
68
- },
69
- elf.getWebElement(),
70
- ),
71
- );
72
- }
73
- }
@@ -1,27 +0,0 @@
1
- import { Question } from '@serenity-js/core';
2
-
3
- import { BrowseTheWeb } from '../abilities';
4
-
5
- export class Website {
6
- /**
7
- * Retrieves the title of the current page.
8
- *
9
- * @returns {@serenity-js/core/lib/screenplay~Question<Promise<string>>}
10
- */
11
- static title(): Question<Promise<string>> {
12
- return Question.about(`the title of the current page`, actor =>
13
- BrowseTheWeb.as(actor).getTitle(),
14
- );
15
- }
16
-
17
- /**
18
- * Retrieves the url of the current page.
19
- *
20
- * @returns {@serenity-js/core/lib/screenplay~Question<Promise<string>>}
21
- */
22
- static url(): Question<Promise<string>> {
23
- return Question.about(`the url of the current page`, actor =>
24
- BrowseTheWeb.as(actor).getCurrentUrl(),
25
- );
26
- }
27
- }
@@ -1,29 +0,0 @@
1
- import { Question } from '@serenity-js/core';
2
-
3
- import { promiseOf } from '../../promiseOf';
4
- import { BrowseTheWeb } from '../abilities';
5
-
6
- export class Window {
7
-
8
- /**
9
- * @desc
10
- * Returns the size of the current browser window.
11
- *
12
- * @returns {Question<Promise<{ width: number, height: number }>>}
13
- */
14
- static size(): Question<Promise<{ width: number, height: number }>> {
15
- return Question.about(`browser window size`, actor =>
16
- promiseOf(BrowseTheWeb.as(actor).manage().window().getSize()));
17
- }
18
-
19
- /**
20
- * @desc
21
- * Returns the `{ x: number, y: number }` position of the current browser window.
22
- *
23
- * @returns {Question<Promise<{ x: number, y: number }>>}
24
- */
25
- static position(): Question<Promise<{ x: number, y: number }>> {
26
- return Question.about(`browser window position`, actor =>
27
- promiseOf(BrowseTheWeb.as(actor).manage().window().getPosition()));
28
- }
29
- }
@@ -1,158 +0,0 @@
1
- import { AnswersQuestions, Expectation, ExpectationMet, MetaQuestion, Question, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
- import { ListAdapter } from '@serenity-js/core/lib/screenplay/questions/lists';
4
- import { ElementArrayFinder, ElementFinder } from 'protractor';
5
-
6
- /**
7
- * @desc
8
- * Adapts {@link ElementArrayFinder} so that it can be used with {@link @serenity-js/core/lib/screenplay/questions~List}.
9
- *
10
- * You most likely won't need to use this class directly. Instead, check out {@link Target} and {@link Target.all}.
11
- *
12
- * @see {@link Target}
13
- *
14
- * @implements {@serenity-js/core/lib/screenplay/questions/lists~ListAdapter}
15
- */
16
- export class ElementArrayFinderListAdapter implements ListAdapter<ElementFinder, ElementArrayFinder> {
17
-
18
- /**
19
- * @param {Question<ElementArrayFinder> | ElementArrayFinder} collection
20
- */
21
- constructor(private readonly collection: Question<ElementArrayFinder> | ElementArrayFinder) {
22
- }
23
-
24
- /**
25
- * @desc
26
- * Returns the number of {@link ElementFinder}s that the underlying {@link ElementArrayFinder} contains,
27
- * left after applying any filters.
28
- *
29
- * @param {AnswersQuestions & UsesAbilities} actor
30
- * @returns {Promise<number>}
31
- */
32
- count(actor: AnswersQuestions & UsesAbilities): Promise<number> {
33
- return Promise.resolve(this.elements(actor).count());
34
- }
35
-
36
- /**
37
- * @desc
38
- * Returns the first of {@link ElementFinder}s that the underlying {@link ElementArrayFinder} contains,
39
- * left after applying any filters
40
- *
41
- * @param {AnswersQuestions & UsesAbilities} actor
42
- * @returns {ElementFinder}
43
- */
44
- first(actor: AnswersQuestions & UsesAbilities): ElementFinder {
45
- return this.elements(actor).first();
46
- }
47
-
48
- /**
49
- * @desc
50
- * Returns the last of {@link ElementFinder}s that the underlying {@link ElementArrayFinder} contains,
51
- * left after applying any filters
52
- *
53
- * @param {AnswersQuestions & UsesAbilities} actor
54
- * @returns {ElementFinder}
55
- */
56
- last(actor: AnswersQuestions & UsesAbilities): ElementFinder {
57
- return this.elements(actor).last();
58
- }
59
-
60
- /**
61
- * @desc
62
- * Returns the nth of {@link ElementFinder}s that the underlying {@link ElementArrayFinder} contains,
63
- * left after applying any filters
64
- *
65
- * @param {AnswersQuestions & UsesAbilities} actor
66
- *
67
- * @param {number} index
68
- * Zero-based index of the item to return
69
- *
70
- * @returns {ElementFinder}
71
- */
72
- get(actor: AnswersQuestions & UsesAbilities, index: number): ElementFinder {
73
- return this.elements(actor).get(index);
74
- }
75
-
76
- /**
77
- * @desc
78
- * Returns the underlying {@link ElementArrayFinder},
79
- * with any filters applied.
80
- *
81
- * @param {AnswersQuestions & UsesAbilities} actor
82
- * @returns {ElementFinder}
83
- */
84
- items(actor: AnswersQuestions & UsesAbilities): ElementArrayFinder {
85
- return this.elements(actor);
86
- }
87
-
88
- /**
89
- * @desc
90
- * Filters the underlying {@link ElementArrayFinder} so that the result contains only those {@link ElementFinder}s that meet the {@link Expectation}
91
- *
92
- * @param {@serenity-js/core/lib/screenplay/questions~MetaQuestion<ElementFinder, Promise<Answer_Type> | Answer_Type>} question
93
- * @param {@serenity-js/core/lib/screenplay/questions~Expectation<any, Answer_Type>} expectation
94
- *
95
- * @returns {@serenity-js/core/lib/screenplay/questions/lists~ListAdapter<ElementFinder, ElementArrayFinder>}
96
- *
97
- * @see {@link @serenity-js/core/lib/screenplay/questions~MetaQuestion}
98
- */
99
- withFilter<Answer_Type>(
100
- question: MetaQuestion<ElementFinder, Promise<Answer_Type> | Answer_Type>,
101
- expectation: Expectation<any, Answer_Type>
102
- ): ListAdapter<ElementFinder, ElementArrayFinder> {
103
- return new ElementArrayFinderListAdapter(
104
- new ElementArrayFinderArrayListFilter(this.collection, question, expectation)
105
- );
106
- }
107
-
108
- /**
109
- * @desc
110
- * Returns a human-readable description of the underlying {@link ElementArrayFinder}.
111
- *
112
- * @returns {string}
113
- */
114
- toString(): string {
115
- return formatted `${ this.collection }`;
116
- }
117
-
118
- private elements(actor: AnswersQuestions & UsesAbilities): ElementArrayFinder {
119
- return Question.isAQuestion(this.collection)
120
- ? this.collection.answeredBy(actor)
121
- : this.collection;
122
- }
123
- }
124
-
125
- /**
126
- * @private
127
- */
128
- class ElementArrayFinderArrayListFilter<Answer_Type>
129
- extends Question<ElementArrayFinder>
130
- {
131
- constructor(
132
- private readonly collection: Question<ElementArrayFinder> | ElementArrayFinder,
133
- private readonly question: MetaQuestion<ElementFinder, Promise<Answer_Type> | Answer_Type>,
134
- private readonly expectation: Expectation<any, Answer_Type>
135
- ) {
136
- super([
137
- formatted `${ collection }`,
138
- collection instanceof ElementArrayFinderArrayListFilter ? 'and' : 'where',
139
- formatted `${ question } does ${ expectation }`
140
- ].join(' '));
141
- }
142
-
143
- answeredBy(actor: AnswersQuestions & UsesAbilities): ElementArrayFinder {
144
-
145
- return this.finderAs(actor)
146
- .filter((elementFinder: ElementFinder) =>
147
- Promise.resolve(this.question.of(elementFinder).answeredBy(actor))
148
- .then(answer => this.expectation.answeredBy(actor)(answer))
149
- .then(outcome => outcome instanceof ExpectationMet)
150
- );
151
- }
152
-
153
- private finderAs(actor: AnswersQuestions & UsesAbilities): ElementArrayFinder {
154
- return Question.isAQuestion(this.collection)
155
- ? this.collection.answeredBy(actor)
156
- : this.collection;
157
- }
158
- }
@@ -1 +0,0 @@
1
- export * from './ElementArrayFinderListAdapter';