@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,149 +0,0 @@
1
- import { Question } from '@serenity-js/core';
2
- import { AlertPromise, error as errors } from 'selenium-webdriver';
3
-
4
- import { promiseOf } from '../../promiseOf';
5
- import { BrowseTheWeb } from '../abilities';
6
-
7
- /**
8
- * @desc
9
- * Represents a modal dialog window created using
10
- * [`Window.alert()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
11
- * [`Window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt) or
12
- * [`Window.confirm()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm).
13
- *
14
- * Check out the examples below, as well as the unit tests demonstrating the usage.
15
- *
16
- * @example <caption>Example widget</caption>
17
- * <button
18
- * data-test="trigger"
19
- * onclick="alert('Hello!')">Trigger Alert</button>
20
- *
21
- * @example <caption>Lean Page Object</caption>
22
- * import { Target } from '@serenity-js/protractor';
23
- * import { browser, by } from 'protractor';
24
- *
25
- * class Widget {
26
- * static trigger = Target.the('trigger button')
27
- * .located(by.css('[data-test="trigger"]'));
28
- * }
29
- *
30
- * @see {@link Accept}
31
- * @see {@link Dismiss}
32
- * @see {@link Enter}
33
- * @see {@link Wait}
34
- * @see {@link @serenity-js/assertions~Ensure}
35
- */
36
- export class ModalDialog {
37
-
38
- /**
39
- * @desc
40
- * A modal dialog window that could be {@link Accept}ed or {@link Dismiss}ed.
41
- *
42
- * If the window was created using [`Window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt)
43
- * you can use the {@link @serenity-js/core/lib/screenplay~Interaction} to {@link Enter} with it too.
44
- *
45
- * @example <caption>Accepting an alert</caption>
46
- * import { actorCalled } from '@serenity-js/core';
47
- * import { Accept, BrowseTheWeb, Click, ModalDialog } from '@serenity-js/protractor';
48
- * import { protractor } from 'protractor';
49
- *
50
- * actorCalled('Nick')
51
- * .whoCan(BrowseTheWeb.using(protractor.browser))
52
- * .attemptsTo(
53
- * Click.on(Widget.trigger),
54
- * Accept.the(ModalDialog.window()),
55
- * );
56
- *
57
- * @see {@link Accept}
58
- * @see {@link Dismiss}
59
- * @see {@link Enter}
60
- *
61
- * @returns {@serenity-js/core/lib/screenplay~Question<AlertPromise>}
62
- */
63
- static window(): Question<AlertPromise> {
64
- return Question.about<AlertPromise>(`the modal dialog window`, actor =>
65
- BrowseTheWeb.as(actor).alert()
66
- );
67
- }
68
-
69
- /**
70
- * @desc
71
- * Resolves to `true` if the modal dialog window is present, or `false` if it's not.
72
- *
73
- * @example <caption>Verifying if a modal dialog window is present</caption>
74
- * import { actorCalled } from '@serenity-js/core';
75
- * import { BrowseTheWeb, Click, ModalDialog } from '@serenity-js/protractor';
76
- * import { Ensure, isFalse, isTrue } from '@serenity-js/assertions';
77
- * import { protractor } from 'protractor';
78
- *
79
- * actorCalled('Nick')
80
- * .whoCan(BrowseTheWeb.using(protractor.browser))
81
- * .attemptsTo(
82
- * Ensure.that(ModalDialog.hasPoppedUp(), isFalse()),
83
- * Click.on(Widget.trigger),
84
- * Ensure.that(ModalDialog.hasPoppedUp(), isTrue()),
85
- * );
86
- *
87
- * @example <caption>Waiting for a modal dialog window</caption>
88
- * import { actorCalled } from '@serenity-js/core';
89
- * import { BrowseTheWeb, Click, Dismiss, ModalDialog, Wait } from '@serenity-js/protractor';
90
- * import { isTrue } from '@serenity-js/assertions';
91
- * import { protractor } from 'protractor';
92
- *
93
- * actorCalled('Nick')
94
- * .whoCan(BrowseTheWeb.using(protractor.browser))
95
- * .attemptsTo(
96
- * Click.on(Widget.trigger),
97
- * Wait.until(ModalDialog.hasPoppedUp(), isTrue()),
98
- * Dismiss.the(ModalDialog.window()),
99
- * );
100
- *
101
- * @see {@link @serenity-js/assertions~Ensure}
102
- * @see {@link Wait}
103
- *
104
- * @returns {@serenity-js/core/lib/screenplay~Question<Promise<boolean>>}
105
- */
106
- static hasPoppedUp(): Question<Promise<boolean>> {
107
- return Question.about<Promise<boolean>>(`the modal dialog has popped up`, actor =>
108
- promiseOf(BrowseTheWeb.as(actor).alert()).then(() => true, error => {
109
- // Based on:
110
- // https://github.com/SeleniumHQ/selenium/blob/941dc9c6b2e2aa4f701c1b72be8de03d4b7e996a/javascript/node/selenium-webdriver/lib/until.js#L107
111
- return ! (error instanceof errors.NoSuchAlertError
112
- // XXX: Workaround for GeckoDriver error `TypeError: can't convert null
113
- // to object`. For more details, see
114
- // https://github.com/SeleniumHQ/selenium/pull/2137
115
- || (error instanceof errors.WebDriverError
116
- && error.message === `can't convert null to object`)
117
- );
118
- })
119
- );
120
- }
121
-
122
- /**
123
- * @desc
124
- * Resolves to the message displayed in the modal dialog window.
125
- *
126
- * @example <caption>Verifying the message</caption>
127
- * import { actorCalled } from '@serenity-js/core';
128
- * import { BrowseTheWeb, Click, ModalDialog } from '@serenity-js/protractor';
129
- * import { Ensure, equals } from '@serenity-js/assertions';
130
- * import { protractor } from 'protractor';
131
- *
132
- * actorCalled('Nick')
133
- * .whoCan(BrowseTheWeb.using(protractor.browser))
134
- * .attemptsTo(
135
- * Click.on(Widget.trigger),
136
- * Ensure.that(ModalDialog.message(), equals('Hello!')),
137
- * );
138
- *
139
- * @see {@link @serenity-js/assertions~Ensure}
140
- * @see {@link Wait}
141
- *
142
- * @returns {@serenity-js/core/lib/screenplay~Question<Promise<string>>}
143
- */
144
- static message(): Question<Promise<string>> {
145
- return Question.about<Promise<string>>(`the modal dialog message`, actor =>
146
- promiseOf(BrowseTheWeb.as(actor).alert().getText())
147
- );
148
- }
149
- }
@@ -1,334 +0,0 @@
1
- import { AnswersQuestions, Expectation, ExpectationMet, MetaQuestion, Question, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
-
4
- export interface Collection<T> {
5
- filter(fn: (item: T, index?: number) => boolean | Promise<boolean>): Collection<T>;
6
- map<O>(fn: (item: T, index?: number) => O): PromiseLike<O[]>;
7
- first(): T;
8
- last(): T;
9
- get(index: number): T;
10
- count(): PromiseLike<number> | number;
11
- }
12
-
13
- /**
14
- * @deprecated
15
- * Please use [Target.all](/modules/protractor/class/src/screenplay/questions/targets/Target.ts~Target.html) instead.
16
- *
17
- * @experimental
18
- *
19
- * @see {@link @serenity-js/core/lib/screenplay/questions~List}
20
- */
21
- export class Pick<Item_Type, Collection_Type extends Collection<Item_Type> = Collection<Item_Type>> {
22
-
23
- static from<IT, CT extends Collection<IT> = Collection<IT>>(collection: Question<CT> | CT): Pick<IT, CT> {
24
- return new Pick<IT, CT>(collection);
25
- }
26
-
27
- constructor(
28
- private readonly collection: Question<Collection_Type> | Collection_Type,
29
- private readonly filters: Filters<Item_Type, Collection_Type> = new Filters<Item_Type, Collection_Type>(),
30
- ) {
31
- }
32
-
33
- count(): Question<Promise<number>> {
34
- return new NumberOfMatchingItems(this.collection, this.filters);
35
- }
36
-
37
- all(): Question<Collection_Type> {
38
- return new AllMatchingItems(this.collection, this.filters);
39
- }
40
-
41
- first(): Question<Item_Type> {
42
- return new FirstMatchingItem(this.collection, this.filters);
43
- }
44
-
45
- last(): Question<Item_Type> {
46
- return new LastMatchingItem(this.collection, this.filters);
47
- }
48
-
49
- get(index: number): Question<Item_Type> {
50
- return new NthMatchingItem(this.collection, this.filters, index);
51
- }
52
-
53
- where<Property_Type>(
54
- question: MetaQuestion<Item_Type, Promise<Property_Type> | Property_Type>,
55
- expectation: Expectation<any, Promise<Property_Type> | Property_Type>,
56
- ): Pick<Item_Type, Collection_Type> {
57
- return new Pick<Item_Type, Collection_Type>(
58
- this.collection,
59
- this.filters.append(new Filter<Item_Type, Collection_Type, any>(question, expectation)),
60
- );
61
- }
62
- }
63
-
64
- /**
65
- * @package
66
- */
67
- class Filters<Item_Type, Collection_Type extends Collection<Item_Type>>
68
- extends Question<(ct: Collection_Type) => Collection_Type>
69
- {
70
- constructor(private readonly filters: Array<Filter<Item_Type, Collection_Type, any>> = []) {
71
- super('');
72
-
73
- const fullDescription = this.filters
74
- .reduce((description, filter) => description.concat(filter.toString()), [ ])
75
- .join(' and ');
76
-
77
- this.subject = fullDescription.length > 0
78
- ? `where ${ fullDescription }`
79
- : '';
80
- }
81
-
82
- append(filter: Filter<Item_Type, Collection_Type, any>) {
83
- return new Filters(this.filters.concat(filter));
84
- }
85
-
86
- /**
87
- * @desc
88
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
89
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
90
- *
91
- * @param {AnswersQuestions & UsesAbilities} actor
92
- * @returns {Promise<void>}
93
- *
94
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
95
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
96
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
97
- */
98
- answeredBy(actor: AnswersQuestions & UsesAbilities): (ct: Collection_Type) => Collection_Type {
99
- return (collection: Collection_Type) =>
100
- this.filters.reduce(
101
- (filteredCollection, filter) =>
102
- filter.answeredBy(actor)(filteredCollection),
103
- collection,
104
- );
105
- }
106
- }
107
-
108
- /**
109
- * @package
110
- */
111
- class Filter<Item_Type, Collection_Type extends Collection<Item_Type>, Property_Type>
112
- extends Question<(ct: Collection_Type) => Collection_Type>
113
- {
114
- constructor(
115
- private readonly question: MetaQuestion<Item_Type, Promise<Property_Type> | Property_Type>,
116
- private readonly expectation: Expectation<any, Promise<Property_Type> | Property_Type>,
117
- ) {
118
- super(formatted `${ question } does ${ expectation }`);
119
- }
120
-
121
- /**
122
- * @desc
123
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
124
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
125
- *
126
- * @param {AnswersQuestions & UsesAbilities} actor
127
- * @returns {Promise<void>}
128
- *
129
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
130
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
131
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
132
- */
133
- answeredBy(actor: AnswersQuestions & UsesAbilities): (ct: Collection_Type) => Collection_Type {
134
- return (collection: Collection_Type) =>
135
- collection.filter((item: Item_Type) => {
136
- const expectation = this.expectation.answeredBy(actor);
137
- return Promise.resolve(this.question.of(item).answeredBy(actor))
138
- .then(answer => expectation(answer))
139
- .then(outcome => outcome instanceof ExpectationMet);
140
- }) as Collection_Type;
141
- }
142
- }
143
-
144
- /**
145
- * @package
146
- */
147
- abstract class QuestionAboutCollectionItems<IT, CT extends Collection<IT>, Answer_Type>
148
- extends Question<Answer_Type>
149
- {
150
- constructor(
151
- protected readonly collection: Question<CT> | CT,
152
- private readonly filters: Filters<IT, CT>,
153
- private readonly description: string,
154
- ) {
155
- super(`${ description } ${ formatted `${ collection }`} ${ filters.toString() }`.trim())
156
- }
157
-
158
- /**
159
- * @desc
160
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
161
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
162
- *
163
- * @param {AnswersQuestions & UsesAbilities} actor
164
- * @returns {Promise<void>}
165
- *
166
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
167
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
168
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
169
- */
170
- abstract answeredBy(actor: AnswersQuestions & UsesAbilities): Answer_Type;
171
-
172
- protected collectionFilteredBy(actor: AnswersQuestions & UsesAbilities): CT {
173
- const collection = this.isAQuestion(this.collection)
174
- ? this.collection.answeredBy(actor)
175
- : this.collection;
176
-
177
- return this.filters.answeredBy(actor)(collection);
178
- }
179
-
180
- private isAQuestion<T>(h: any): h is Question<T> {
181
- return !! (h as any).answeredBy;
182
- }
183
- }
184
-
185
- /**
186
- * @package
187
- */
188
- class NumberOfMatchingItems<IT, CT extends Collection<IT>>
189
- extends QuestionAboutCollectionItems<IT, CT, Promise<number>>
190
- {
191
- constructor(collection: Question<CT> | CT, filters: Filters<IT, CT>) {
192
- super(collection, filters, 'the number of');
193
- }
194
-
195
- /**
196
- * @desc
197
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
198
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
199
- *
200
- * @param {AnswersQuestions & UsesAbilities} actor
201
- * @returns {Promise<void>}
202
- *
203
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
204
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
205
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
206
- */
207
- answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<number> {
208
- return Promise.resolve(this.collectionFilteredBy(actor).count());
209
- }
210
- }
211
-
212
- /**
213
- * @package
214
- */
215
- class AllMatchingItems<IT, CT extends Collection<IT>> extends QuestionAboutCollectionItems<IT, CT, CT> {
216
-
217
- constructor(collection: Question<CT> | CT, filters: Filters<IT, CT>) {
218
- super(collection, filters, '');
219
- }
220
-
221
- /**
222
- * @desc
223
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
224
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
225
- *
226
- * @param {AnswersQuestions & UsesAbilities} actor
227
- * @returns {Promise<void>}
228
- *
229
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
230
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
231
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
232
- */
233
- answeredBy(actor: AnswersQuestions & UsesAbilities): CT {
234
- return this.collectionFilteredBy(actor);
235
- }
236
- }
237
-
238
- /**
239
- * @package
240
- */
241
- class FirstMatchingItem<IT, CT extends Collection<IT>> extends QuestionAboutCollectionItems<IT, CT, IT> {
242
-
243
- constructor(collection: Question<CT> | CT, filters: Filters<IT, CT>) {
244
- super(collection, filters, 'the first of');
245
- }
246
-
247
- /**
248
- * @desc
249
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
250
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
251
- *
252
- * @param {AnswersQuestions & UsesAbilities} actor
253
- * @returns {Promise<void>}
254
- *
255
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
256
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
257
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
258
- */
259
- answeredBy(actor: AnswersQuestions & UsesAbilities): IT {
260
- return this.collectionFilteredBy(actor).first();
261
- }
262
- }
263
-
264
- /**
265
- * @package
266
- */
267
- class LastMatchingItem<IT, CT extends Collection<IT>> extends QuestionAboutCollectionItems<IT, CT, IT> {
268
-
269
- constructor(collection: Question<CT> | CT, filters: Filters<IT, CT>) {
270
- super(collection, filters, 'the last of');
271
- }
272
-
273
- /**
274
- * @desc
275
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
276
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
277
- *
278
- * @param {AnswersQuestions & UsesAbilities} actor
279
- * @returns {Promise<void>}
280
- *
281
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
282
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
283
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
284
- */
285
- answeredBy(actor: AnswersQuestions & UsesAbilities): IT {
286
- return this.collectionFilteredBy(actor).last();
287
- }
288
- }
289
-
290
- /**
291
- * @package
292
- */
293
- class NthMatchingItem<IT, CT extends Collection<IT>> extends QuestionAboutCollectionItems<IT, CT, IT> {
294
- private static ordinalSuffixOf(index: number) {
295
- const
296
- lastDigit = index % 10,
297
- lastTwoDigits = index % 100;
298
-
299
- switch (true) {
300
- case (lastDigit === 1 && lastTwoDigits !== 11):
301
- return index + 'st';
302
- case (lastDigit === 2 && lastTwoDigits !== 12):
303
- return index + 'nd';
304
- case (lastDigit === 3 && lastTwoDigits !== 13):
305
- return index + 'rd';
306
- default:
307
- return index + 'th';
308
- }
309
- }
310
-
311
- constructor(
312
- collection: Question<CT> | CT,
313
- filters: Filters<IT, CT>,
314
- private readonly index: number,
315
- ) {
316
- super(collection, filters, `the ${ NthMatchingItem.ordinalSuffixOf(index + 1) } of`);
317
- }
318
-
319
- /**
320
- * @desc
321
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
322
- * answer this {@link @serenity-js/core/lib/screenplay~Question}.
323
- *
324
- * @param {AnswersQuestions & UsesAbilities} actor
325
- * @returns {Promise<void>}
326
- *
327
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
328
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
329
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
330
- */
331
- answeredBy(actor: AnswersQuestions & UsesAbilities): IT {
332
- return this.collectionFilteredBy(actor).get(this.index);
333
- }
334
- }