@serenity-js/web 3.0.0-rc.9 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/CHANGELOG.md +337 -74
  2. package/README.md +8 -12
  3. package/lib/errors/BrowserWindowClosedError.d.ts +15 -0
  4. package/lib/errors/BrowserWindowClosedError.d.ts.map +1 -0
  5. package/lib/errors/BrowserWindowClosedError.js +21 -0
  6. package/lib/errors/BrowserWindowClosedError.js.map +1 -0
  7. package/lib/errors/CookieMissingError.d.ts +11 -0
  8. package/lib/errors/CookieMissingError.d.ts.map +1 -0
  9. package/lib/errors/CookieMissingError.js +10 -0
  10. package/lib/errors/CookieMissingError.js.map +1 -1
  11. package/lib/errors/ModalDialogObstructsScreenshotError.d.ts +15 -0
  12. package/lib/errors/ModalDialogObstructsScreenshotError.d.ts.map +1 -0
  13. package/lib/errors/ModalDialogObstructsScreenshotError.js +21 -0
  14. package/lib/errors/ModalDialogObstructsScreenshotError.js.map +1 -0
  15. package/lib/errors/index.d.ts +3 -0
  16. package/lib/errors/index.d.ts.map +1 -0
  17. package/lib/errors/index.js +7 -1
  18. package/lib/errors/index.js.map +1 -1
  19. package/lib/expectations/index.d.ts +1 -1
  20. package/lib/expectations/index.d.ts.map +1 -0
  21. package/lib/expectations/index.js +5 -2
  22. package/lib/expectations/index.js.map +1 -1
  23. package/lib/expectations/isActive.d.ts +14 -8
  24. package/lib/expectations/isActive.d.ts.map +1 -0
  25. package/lib/expectations/isActive.js +17 -11
  26. package/lib/expectations/isActive.js.map +1 -1
  27. package/lib/expectations/isClickable.d.ts +14 -13
  28. package/lib/expectations/isClickable.d.ts.map +1 -0
  29. package/lib/expectations/isClickable.js +15 -17
  30. package/lib/expectations/isClickable.js.map +1 -1
  31. package/lib/expectations/isEnabled.d.ts +14 -7
  32. package/lib/expectations/isEnabled.d.ts.map +1 -0
  33. package/lib/expectations/isEnabled.js +17 -9
  34. package/lib/expectations/isEnabled.js.map +1 -1
  35. package/lib/expectations/isSelected.d.ts +14 -7
  36. package/lib/expectations/isSelected.d.ts.map +1 -0
  37. package/lib/expectations/isSelected.js +15 -9
  38. package/lib/expectations/isSelected.js.map +1 -1
  39. package/lib/expectations/isVisible.d.ts +14 -7
  40. package/lib/expectations/isVisible.d.ts.map +1 -0
  41. package/lib/expectations/isVisible.js +17 -9
  42. package/lib/expectations/isVisible.js.map +1 -1
  43. package/lib/index.d.ts +1 -1
  44. package/lib/index.d.ts.map +1 -0
  45. package/lib/index.js +5 -2
  46. package/lib/index.js.map +1 -1
  47. package/lib/screenplay/abilities/BrowseTheWeb.d.ts +88 -45
  48. package/lib/screenplay/abilities/BrowseTheWeb.d.ts.map +1 -0
  49. package/lib/screenplay/abilities/BrowseTheWeb.js +89 -19
  50. package/lib/screenplay/abilities/BrowseTheWeb.js.map +1 -1
  51. package/lib/screenplay/abilities/index.d.ts +1 -1
  52. package/lib/screenplay/abilities/index.d.ts.map +1 -0
  53. package/lib/screenplay/abilities/index.js +5 -2
  54. package/lib/screenplay/abilities/index.js.map +1 -1
  55. package/lib/screenplay/index.d.ts +1 -0
  56. package/lib/screenplay/index.d.ts.map +1 -0
  57. package/lib/screenplay/index.js +5 -1
  58. package/lib/screenplay/index.js.map +1 -1
  59. package/lib/screenplay/interactions/Clear.d.ts +50 -55
  60. package/lib/screenplay/interactions/Clear.d.ts.map +1 -0
  61. package/lib/screenplay/interactions/Clear.js +70 -63
  62. package/lib/screenplay/interactions/Clear.js.map +1 -1
  63. package/lib/screenplay/interactions/Click.d.ts +41 -50
  64. package/lib/screenplay/interactions/Click.d.ts.map +1 -0
  65. package/lib/screenplay/interactions/Click.js +45 -55
  66. package/lib/screenplay/interactions/Click.js.map +1 -1
  67. package/lib/screenplay/interactions/DoubleClick.d.ts +64 -67
  68. package/lib/screenplay/interactions/DoubleClick.d.ts.map +1 -0
  69. package/lib/screenplay/interactions/DoubleClick.js +68 -72
  70. package/lib/screenplay/interactions/DoubleClick.js.map +1 -1
  71. package/lib/screenplay/interactions/Enter.d.ts +42 -51
  72. package/lib/screenplay/interactions/Enter.d.ts.map +1 -0
  73. package/lib/screenplay/interactions/Enter.js +42 -52
  74. package/lib/screenplay/interactions/Enter.js.map +1 -1
  75. package/lib/screenplay/interactions/ExecuteScript.d.ts +144 -148
  76. package/lib/screenplay/interactions/ExecuteScript.d.ts.map +1 -0
  77. package/lib/screenplay/interactions/ExecuteScript.js +163 -185
  78. package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
  79. package/lib/screenplay/interactions/Hover.d.ts +40 -50
  80. package/lib/screenplay/interactions/Hover.d.ts.map +1 -0
  81. package/lib/screenplay/interactions/Hover.js +44 -55
  82. package/lib/screenplay/interactions/Hover.js.map +1 -1
  83. package/lib/screenplay/interactions/Navigate.d.ts +106 -113
  84. package/lib/screenplay/interactions/Navigate.d.ts.map +1 -0
  85. package/lib/screenplay/interactions/Navigate.js +124 -146
  86. package/lib/screenplay/interactions/Navigate.js.map +1 -1
  87. package/lib/screenplay/interactions/PageElementInteraction.d.ts +12 -28
  88. package/lib/screenplay/interactions/PageElementInteraction.d.ts.map +1 -0
  89. package/lib/screenplay/interactions/PageElementInteraction.js +12 -33
  90. package/lib/screenplay/interactions/PageElementInteraction.js.map +1 -1
  91. package/lib/screenplay/interactions/Press.d.ts +61 -55
  92. package/lib/screenplay/interactions/Press.d.ts.map +1 -0
  93. package/lib/screenplay/interactions/Press.js +83 -72
  94. package/lib/screenplay/interactions/Press.js.map +1 -1
  95. package/lib/screenplay/interactions/RightClick.d.ts +59 -65
  96. package/lib/screenplay/interactions/RightClick.d.ts.map +1 -0
  97. package/lib/screenplay/interactions/RightClick.js +63 -70
  98. package/lib/screenplay/interactions/RightClick.js.map +1 -1
  99. package/lib/screenplay/interactions/Scroll.d.ts +46 -64
  100. package/lib/screenplay/interactions/Scroll.d.ts.map +1 -0
  101. package/lib/screenplay/interactions/Scroll.js +49 -71
  102. package/lib/screenplay/interactions/Scroll.js.map +1 -1
  103. package/lib/screenplay/interactions/Select.d.ts +217 -193
  104. package/lib/screenplay/interactions/Select.d.ts.map +1 -0
  105. package/lib/screenplay/interactions/Select.js +218 -245
  106. package/lib/screenplay/interactions/Select.js.map +1 -1
  107. package/lib/screenplay/interactions/Switch.d.ts +105 -128
  108. package/lib/screenplay/interactions/Switch.d.ts.map +1 -0
  109. package/lib/screenplay/interactions/Switch.js +121 -172
  110. package/lib/screenplay/interactions/Switch.js.map +1 -1
  111. package/lib/screenplay/interactions/TakeScreenshot.d.ts +28 -50
  112. package/lib/screenplay/interactions/TakeScreenshot.d.ts.map +1 -0
  113. package/lib/screenplay/interactions/TakeScreenshot.js +32 -57
  114. package/lib/screenplay/interactions/TakeScreenshot.js.map +1 -1
  115. package/lib/screenplay/interactions/index.d.ts +2 -3
  116. package/lib/screenplay/interactions/index.d.ts.map +1 -0
  117. package/lib/screenplay/interactions/index.js +6 -4
  118. package/lib/screenplay/interactions/index.js.map +1 -1
  119. package/lib/screenplay/models/BrowserCapabilities.d.ts +24 -0
  120. package/lib/screenplay/models/BrowserCapabilities.d.ts.map +1 -0
  121. package/lib/screenplay/models/BrowserCapabilities.js.map +1 -0
  122. package/lib/screenplay/models/BrowsingSession.d.ts +69 -0
  123. package/lib/screenplay/models/BrowsingSession.d.ts.map +1 -0
  124. package/lib/screenplay/models/BrowsingSession.js +101 -0
  125. package/lib/screenplay/models/BrowsingSession.js.map +1 -0
  126. package/lib/screenplay/models/Cookie.d.ts +104 -64
  127. package/lib/screenplay/models/Cookie.d.ts.map +1 -0
  128. package/lib/screenplay/models/Cookie.js +110 -59
  129. package/lib/screenplay/models/Cookie.js.map +1 -1
  130. package/lib/screenplay/models/CookieData.d.ts +20 -58
  131. package/lib/screenplay/models/CookieData.d.ts.map +1 -0
  132. package/lib/{input → screenplay/models}/Key.d.ts +13 -9
  133. package/lib/screenplay/models/Key.d.ts.map +1 -0
  134. package/lib/{input → screenplay/models}/Key.js +16 -13
  135. package/lib/screenplay/models/Key.js.map +1 -0
  136. package/lib/screenplay/models/Locator.d.ts +29 -8
  137. package/lib/screenplay/models/Locator.d.ts.map +1 -0
  138. package/lib/screenplay/models/Locator.js +53 -7
  139. package/lib/screenplay/models/Locator.js.map +1 -1
  140. package/lib/screenplay/models/Page.d.ts +398 -36
  141. package/lib/screenplay/models/Page.d.ts.map +1 -0
  142. package/lib/screenplay/models/Page.js +209 -4
  143. package/lib/screenplay/models/Page.js.map +1 -1
  144. package/lib/screenplay/models/PageElement.d.ts +77 -5
  145. package/lib/screenplay/models/PageElement.d.ts.map +1 -0
  146. package/lib/screenplay/models/PageElement.js +29 -7
  147. package/lib/screenplay/models/PageElement.js.map +1 -1
  148. package/lib/screenplay/models/PageElements.d.ts +16 -3
  149. package/lib/screenplay/models/PageElements.d.ts.map +1 -0
  150. package/lib/screenplay/models/PageElements.js +21 -8
  151. package/lib/screenplay/models/PageElements.js.map +1 -1
  152. package/lib/screenplay/models/RootLocator.d.ts +25 -0
  153. package/lib/screenplay/models/RootLocator.d.ts.map +1 -0
  154. package/lib/screenplay/models/RootLocator.js +52 -0
  155. package/lib/screenplay/models/RootLocator.js.map +1 -0
  156. package/lib/screenplay/models/SelectOption.d.ts +25 -0
  157. package/lib/screenplay/models/SelectOption.d.ts.map +1 -0
  158. package/lib/screenplay/models/SelectOption.js +37 -0
  159. package/lib/screenplay/models/SelectOption.js.map +1 -0
  160. package/lib/screenplay/models/Switchable.d.ts +23 -0
  161. package/lib/screenplay/models/Switchable.d.ts.map +1 -0
  162. package/lib/screenplay/{interactions/WaitBuilder.js → models/Switchable.js} +1 -1
  163. package/lib/screenplay/models/Switchable.js.map +1 -0
  164. package/lib/screenplay/models/SwitchableOrigin.d.ts +18 -0
  165. package/lib/screenplay/models/SwitchableOrigin.d.ts.map +1 -0
  166. package/lib/screenplay/{interactions/EnterBuilder.js → models/SwitchableOrigin.js} +1 -1
  167. package/lib/screenplay/models/SwitchableOrigin.js.map +1 -0
  168. package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts +15 -0
  169. package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts.map +1 -0
  170. package/lib/screenplay/models/dialogs/AbsentModalDialog.js +24 -0
  171. package/lib/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -0
  172. package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts +17 -0
  173. package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts.map +1 -0
  174. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js +29 -0
  175. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -0
  176. package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts +17 -0
  177. package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts.map +1 -0
  178. package/lib/screenplay/models/dialogs/DismissedModalDialog.js +29 -0
  179. package/lib/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -0
  180. package/lib/screenplay/models/dialogs/ModalDialog.d.ts +168 -0
  181. package/lib/screenplay/models/dialogs/ModalDialog.d.ts.map +1 -0
  182. package/lib/screenplay/models/dialogs/ModalDialog.js +174 -0
  183. package/lib/screenplay/models/dialogs/ModalDialog.js.map +1 -0
  184. package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts +38 -0
  185. package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts.map +1 -0
  186. package/lib/screenplay/models/dialogs/ModalDialogHandler.js +30 -0
  187. package/lib/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -0
  188. package/lib/screenplay/models/dialogs/index.d.ts +6 -0
  189. package/lib/screenplay/models/dialogs/index.d.ts.map +1 -0
  190. package/lib/screenplay/models/dialogs/index.js +22 -0
  191. package/lib/screenplay/models/dialogs/index.js.map +1 -0
  192. package/lib/screenplay/models/index.d.ts +9 -1
  193. package/lib/screenplay/models/index.d.ts.map +1 -0
  194. package/lib/screenplay/models/index.js +13 -2
  195. package/lib/screenplay/models/index.js.map +1 -1
  196. package/lib/screenplay/models/selectors/By.d.ts +38 -0
  197. package/lib/screenplay/models/selectors/By.d.ts.map +1 -0
  198. package/lib/screenplay/models/selectors/By.js +43 -0
  199. package/lib/screenplay/models/selectors/By.js.map +1 -1
  200. package/lib/screenplay/models/selectors/ByCss.d.ts +8 -0
  201. package/lib/screenplay/models/selectors/ByCss.d.ts.map +1 -0
  202. package/lib/screenplay/models/selectors/ByCss.js +7 -0
  203. package/lib/screenplay/models/selectors/ByCss.js.map +1 -1
  204. package/lib/screenplay/models/selectors/ByCssContainingText.d.ts +9 -0
  205. package/lib/screenplay/models/selectors/ByCssContainingText.d.ts.map +1 -0
  206. package/lib/screenplay/models/selectors/ByCssContainingText.js +8 -0
  207. package/lib/screenplay/models/selectors/ByCssContainingText.js.map +1 -1
  208. package/lib/screenplay/models/selectors/ByDeepCss.d.ts +14 -0
  209. package/lib/screenplay/models/selectors/ByDeepCss.d.ts.map +1 -0
  210. package/lib/screenplay/models/selectors/ByDeepCss.js +20 -0
  211. package/lib/screenplay/models/selectors/ByDeepCss.js.map +1 -0
  212. package/lib/screenplay/models/selectors/ById.d.ts +8 -0
  213. package/lib/screenplay/models/selectors/ById.d.ts.map +1 -0
  214. package/lib/screenplay/models/selectors/ById.js +7 -0
  215. package/lib/screenplay/models/selectors/ById.js.map +1 -1
  216. package/lib/screenplay/models/selectors/ByTagName.d.ts +8 -0
  217. package/lib/screenplay/models/selectors/ByTagName.d.ts.map +1 -0
  218. package/lib/screenplay/models/selectors/ByTagName.js +7 -0
  219. package/lib/screenplay/models/selectors/ByTagName.js.map +1 -1
  220. package/lib/screenplay/models/selectors/ByXPath.d.ts +8 -0
  221. package/lib/screenplay/models/selectors/ByXPath.d.ts.map +1 -0
  222. package/lib/screenplay/models/selectors/ByXPath.js +7 -0
  223. package/lib/screenplay/models/selectors/ByXPath.js.map +1 -1
  224. package/lib/screenplay/models/selectors/Selector.d.ts +6 -0
  225. package/lib/screenplay/models/selectors/Selector.d.ts.map +1 -0
  226. package/lib/screenplay/models/selectors/Selector.js +6 -1
  227. package/lib/screenplay/models/selectors/Selector.js.map +1 -1
  228. package/lib/screenplay/models/selectors/index.d.ts +2 -0
  229. package/lib/screenplay/models/selectors/index.d.ts.map +1 -0
  230. package/lib/screenplay/models/selectors/index.js +6 -1
  231. package/lib/screenplay/models/selectors/index.js.map +1 -1
  232. package/lib/screenplay/questions/Attribute.d.ts +115 -67
  233. package/lib/screenplay/questions/Attribute.d.ts.map +1 -0
  234. package/lib/screenplay/questions/Attribute.js +128 -74
  235. package/lib/screenplay/questions/Attribute.js.map +1 -1
  236. package/lib/screenplay/questions/CssClasses.d.ts +124 -79
  237. package/lib/screenplay/questions/CssClasses.d.ts.map +1 -0
  238. package/lib/screenplay/questions/CssClasses.js +132 -83
  239. package/lib/screenplay/questions/CssClasses.js.map +1 -1
  240. package/lib/screenplay/questions/LastScriptExecution.d.ts +42 -6
  241. package/lib/screenplay/questions/LastScriptExecution.d.ts.map +1 -0
  242. package/lib/screenplay/questions/LastScriptExecution.js +45 -7
  243. package/lib/screenplay/questions/LastScriptExecution.js.map +1 -1
  244. package/lib/screenplay/questions/Selected.d.ts +202 -171
  245. package/lib/screenplay/questions/Selected.d.ts.map +1 -0
  246. package/lib/screenplay/questions/Selected.js +225 -186
  247. package/lib/screenplay/questions/Selected.js.map +1 -1
  248. package/lib/screenplay/questions/Text.d.ts +101 -82
  249. package/lib/screenplay/questions/Text.d.ts.map +1 -0
  250. package/lib/screenplay/questions/Text.js +143 -92
  251. package/lib/screenplay/questions/Text.js.map +1 -1
  252. package/lib/screenplay/questions/Value.d.ts +77 -44
  253. package/lib/screenplay/questions/Value.d.ts.map +1 -0
  254. package/lib/screenplay/questions/Value.js +84 -47
  255. package/lib/screenplay/questions/Value.js.map +1 -1
  256. package/lib/screenplay/questions/index.d.ts +1 -0
  257. package/lib/screenplay/questions/index.d.ts.map +1 -0
  258. package/lib/screenplay/questions/index.js +5 -1
  259. package/lib/screenplay/questions/index.js.map +1 -1
  260. package/lib/scripts/index.d.ts +2 -0
  261. package/lib/scripts/index.d.ts.map +1 -0
  262. package/lib/{input → scripts}/index.js +6 -2
  263. package/lib/scripts/index.js.map +1 -0
  264. package/lib/scripts/isVisible.d.ts +2 -0
  265. package/lib/scripts/isVisible.d.ts.map +1 -0
  266. package/lib/scripts/isVisible.js +96 -0
  267. package/lib/scripts/isVisible.js.map +1 -0
  268. package/lib/stage/crew/index.d.ts +1 -0
  269. package/lib/stage/crew/index.d.ts.map +1 -0
  270. package/lib/stage/crew/index.js +5 -1
  271. package/lib/stage/crew/index.js.map +1 -1
  272. package/lib/stage/crew/photographer/Photographer.d.ts +126 -39
  273. package/lib/stage/crew/photographer/Photographer.d.ts.map +1 -0
  274. package/lib/stage/crew/photographer/Photographer.js +161 -42
  275. package/lib/stage/crew/photographer/Photographer.js.map +1 -1
  276. package/lib/stage/crew/photographer/index.d.ts +1 -0
  277. package/lib/stage/crew/photographer/index.d.ts.map +1 -0
  278. package/lib/stage/crew/photographer/index.js +5 -1
  279. package/lib/stage/crew/photographer/index.js.map +1 -1
  280. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +13 -12
  281. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts.map +1 -0
  282. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +22 -33
  283. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -1
  284. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +8 -8
  285. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts.map +1 -0
  286. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +7 -8
  287. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +1 -1
  288. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +8 -7
  289. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts.map +1 -0
  290. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +7 -7
  291. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +8 -8
  292. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts.map +1 -0
  293. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +7 -8
  294. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +1 -1
  295. package/lib/stage/crew/photographer/strategies/index.d.ts +1 -0
  296. package/lib/stage/crew/photographer/strategies/index.d.ts.map +1 -0
  297. package/lib/stage/crew/photographer/strategies/index.js +5 -1
  298. package/lib/stage/crew/photographer/strategies/index.js.map +1 -1
  299. package/lib/stage/index.d.ts +1 -0
  300. package/lib/stage/index.d.ts.map +1 -0
  301. package/lib/stage/index.js +5 -1
  302. package/lib/stage/index.js.map +1 -1
  303. package/package.json +20 -43
  304. package/src/errors/BrowserWindowClosedError.ts +17 -0
  305. package/src/errors/CookieMissingError.ts +10 -0
  306. package/src/errors/ModalDialogObstructsScreenshotError.ts +17 -0
  307. package/src/errors/index.ts +2 -0
  308. package/src/expectations/index.ts +0 -1
  309. package/src/expectations/isActive.ts +23 -12
  310. package/src/expectations/isClickable.ts +22 -21
  311. package/src/expectations/isEnabled.ts +23 -9
  312. package/src/expectations/isSelected.ts +20 -10
  313. package/src/expectations/isVisible.ts +23 -9
  314. package/src/index.ts +0 -1
  315. package/src/screenplay/abilities/BrowseTheWeb.ts +95 -87
  316. package/src/screenplay/abilities/index.ts +0 -1
  317. package/src/screenplay/interactions/Clear.ts +75 -63
  318. package/src/screenplay/interactions/Click.ts +43 -54
  319. package/src/screenplay/interactions/DoubleClick.ts +66 -71
  320. package/src/screenplay/interactions/Enter.ts +41 -53
  321. package/src/screenplay/interactions/ExecuteScript.ts +207 -220
  322. package/src/screenplay/interactions/Hover.ts +42 -54
  323. package/src/screenplay/interactions/Navigate.ts +129 -156
  324. package/src/screenplay/interactions/PageElementInteraction.ts +14 -34
  325. package/src/screenplay/interactions/Press.ts +78 -69
  326. package/src/screenplay/interactions/RightClick.ts +61 -69
  327. package/src/screenplay/interactions/Scroll.ts +48 -71
  328. package/src/screenplay/interactions/Select.ts +229 -269
  329. package/src/screenplay/interactions/Switch.ts +123 -179
  330. package/src/screenplay/interactions/TakeScreenshot.ts +31 -57
  331. package/src/screenplay/interactions/index.ts +1 -3
  332. package/src/screenplay/models/BrowserCapabilities.ts +26 -0
  333. package/src/screenplay/models/BrowsingSession.ts +115 -0
  334. package/src/screenplay/models/Cookie.ts +115 -73
  335. package/src/screenplay/models/CookieData.ts +20 -58
  336. package/src/{input → screenplay/models}/Key.ts +12 -9
  337. package/src/screenplay/models/Locator.ts +43 -9
  338. package/src/screenplay/models/Page.ts +438 -37
  339. package/src/screenplay/models/PageElement.ts +92 -12
  340. package/src/screenplay/models/PageElements.ts +23 -9
  341. package/src/screenplay/models/RootLocator.ts +30 -0
  342. package/src/screenplay/models/SelectOption.ts +38 -0
  343. package/src/screenplay/models/Switchable.ts +24 -0
  344. package/src/screenplay/models/SwitchableOrigin.ts +18 -0
  345. package/src/screenplay/models/dialogs/AbsentModalDialog.ts +22 -0
  346. package/src/screenplay/models/dialogs/AcceptedModalDialog.ts +27 -0
  347. package/src/screenplay/models/dialogs/DismissedModalDialog.ts +27 -0
  348. package/src/screenplay/models/dialogs/ModalDialog.ts +200 -0
  349. package/src/screenplay/models/dialogs/ModalDialogHandler.ts +50 -0
  350. package/src/screenplay/models/dialogs/index.ts +5 -0
  351. package/src/screenplay/models/index.ts +8 -1
  352. package/src/screenplay/models/selectors/By.ts +45 -0
  353. package/src/screenplay/models/selectors/ByCss.ts +7 -0
  354. package/src/screenplay/models/selectors/ByCssContainingText.ts +8 -0
  355. package/src/screenplay/models/selectors/ByDeepCss.ts +15 -0
  356. package/src/screenplay/models/selectors/ById.ts +7 -0
  357. package/src/screenplay/models/selectors/ByTagName.ts +7 -0
  358. package/src/screenplay/models/selectors/ByXPath.ts +7 -0
  359. package/src/screenplay/models/selectors/Selector.ts +6 -1
  360. package/src/screenplay/models/selectors/index.ts +1 -0
  361. package/src/screenplay/questions/Attribute.ts +137 -76
  362. package/src/screenplay/questions/CssClasses.ts +135 -83
  363. package/src/screenplay/questions/LastScriptExecution.ts +45 -8
  364. package/src/screenplay/questions/Selected.ts +237 -191
  365. package/src/screenplay/questions/Text.ts +161 -96
  366. package/src/screenplay/questions/Value.ts +88 -48
  367. package/src/scripts/index.ts +1 -0
  368. package/src/scripts/isVisible.ts +113 -0
  369. package/src/stage/crew/photographer/Photographer.ts +142 -41
  370. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +27 -42
  371. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +7 -8
  372. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +7 -7
  373. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +7 -8
  374. package/tsconfig.build.json +14 -0
  375. package/lib/expectations/ElementExpectation.d.ts +0 -83
  376. package/lib/expectations/ElementExpectation.js +0 -102
  377. package/lib/expectations/ElementExpectation.js.map +0 -1
  378. package/lib/input/Key.js.map +0 -1
  379. package/lib/input/index.d.ts +0 -1
  380. package/lib/input/index.js.map +0 -1
  381. package/lib/screenplay/abilities/BrowserCapabilities.d.ts +0 -5
  382. package/lib/screenplay/abilities/BrowserCapabilities.js.map +0 -1
  383. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -25
  384. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  385. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -26
  386. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  387. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  388. package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
  389. package/lib/screenplay/interactions/SelectBuilder.js +0 -3
  390. package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
  391. package/lib/screenplay/interactions/Wait.d.ts +0 -143
  392. package/lib/screenplay/interactions/Wait.js +0 -238
  393. package/lib/screenplay/interactions/Wait.js.map +0 -1
  394. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -32
  395. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  396. package/lib/screenplay/models/ModalDialog.d.ts +0 -9
  397. package/lib/screenplay/models/ModalDialog.js +0 -14
  398. package/lib/screenplay/models/ModalDialog.js.map +0 -1
  399. package/lib/screenplay/questions/ElementQuestion.d.ts +0 -33
  400. package/lib/screenplay/questions/ElementQuestion.js +0 -53
  401. package/lib/screenplay/questions/ElementQuestion.js.map +0 -1
  402. package/src/expectations/ElementExpectation.ts +0 -108
  403. package/src/input/index.ts +0 -1
  404. package/src/screenplay/abilities/BrowserCapabilities.ts +0 -5
  405. package/src/screenplay/interactions/EnterBuilder.ts +0 -28
  406. package/src/screenplay/interactions/PressBuilder.ts +0 -29
  407. package/src/screenplay/interactions/SelectBuilder.ts +0 -36
  408. package/src/screenplay/interactions/Wait.ts +0 -260
  409. package/src/screenplay/interactions/WaitBuilder.ts +0 -34
  410. package/src/screenplay/models/ModalDialog.ts +0 -19
  411. package/src/screenplay/questions/ElementQuestion.ts +0 -58
  412. package/tsconfig.eslint.json +0 -10
  413. /package/lib/screenplay/{abilities → models}/BrowserCapabilities.js +0 -0
@@ -1,90 +1,209 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.Photographer = void 0;
4
27
  const core_1 = require("@serenity-js/core");
5
28
  const events_1 = require("@serenity-js/core/lib/events");
29
+ const strategies = __importStar(require("./strategies"));
6
30
  /**
7
- * @desc
8
- * The Photographer is a {@link @serenity-js/core/lib/stage~StageCrewMember} who takes screenshots
9
- * of the web browser that the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight is using.
31
+ * The Photographer is a {@apilink StageCrewMember} who takes screenshots
32
+ * using the web browser associated with the {@apilink Actor} that is currently {@apilink actorInTheSpotlight|in the spotlight}.
33
+ *
34
+ * ## Programmatically assigning the `Photographer` to the {@apilink Stage}
35
+ *
36
+ * ```ts
37
+ * import { configure, ArtifactArchiver } from '@serenity-js/core'
38
+ * import { Photographer, TakePhotosOfFailures } from '@serenity-js/web'
39
+ *
40
+ * configure({
41
+ * crew: [
42
+ * ArtifactArchiver.storingArtifactsAt(process.cwd(), 'target/site/serenity'),
43
+ * Photographer.whoWill(TakePhotosOfFailures),
44
+ * ]
45
+ * })
46
+ * ```
47
+ *
48
+ * ## Using `Photographer` with WebdriverIO
10
49
  *
11
- * @example <caption>Assigning the Photographer to the Stage</caption>
50
+ * ```ts
12
51
  * // wdio.conf.ts
13
- * import { ArtifactArchiver } from '@serenity-js/core';
14
- * import { Photographer, TakePhotosOfFailures } from '@serenity-js/webdriverio';
52
+ * import { ArtifactArchiver } from '@serenity-js/core'
53
+ * import { Photographer, TakePhotosOfFailures } from '@serenity-js/web'
54
+ * import { WebdriverIOConfig } from '@serenity-js/webdriverio'
55
+ *
56
+ * export const config: WebdriverIOConfig= {
57
+ *
58
+ * // Tell WebdriverIO to use Serenity/JS framework
59
+ * framework: '@serenity-js/webdriverio',
60
+ *
61
+ * serenity: {
62
+ * // Configure Serenity/JS to use an appropriate test runner adapter
63
+ * runner: 'cucumber',
64
+ * // runner: 'mocha',
65
+ * // runner: 'jasmine',
66
+ *
67
+ * // register custom Actors class to configure your Serenity/JS actors
68
+ * actors: new Actors(),
69
+ *
70
+ * // Register StageCrewMembers we've imported at the top of this file
71
+ * crew: [
72
+ * ArtifactArchiver.storingArtifactsAt(process.cwd(), 'target/site/serenity'),
73
+ * Photographer.whoWill(TakePhotosOfFailures),
74
+ * ]
75
+ * },
15
76
  *
16
- * export const config = {
77
+ * // ... rest of the config omitted for brevity
78
+ * }
79
+ * ```
17
80
  *
18
- * serenity: {
81
+ * ## Using `Photographer` with Playwright Test
82
+ *
83
+ * ```ts
84
+ * // playwright.config.ts
85
+ * import type { PlaywrightTestConfig } from '@serenity-js/playwright-test'
86
+ *
87
+ * const config: PlaywrightTestConfig = {
88
+ * use: {
19
89
  * crew: [
20
- * ArtifactArchiver.storingArtifactsAt(process.cwd(), 'target/site/serenity'),
90
+ * [ '@serenity-js/web:Photographer', { strategy: 'TakePhotosOfFailures' } ] // or 'TakePhotosOfInteractions'
91
+ * ],
92
+ * },
93
+ * };
94
+ * export default config;
95
+ * ```
96
+ *
97
+ * #### Learn more
98
+ * - {@apilink SerenityOptions}
99
+ *
100
+ * ## Using `Photographer` with Protractor
101
+ *
102
+ * ```ts
103
+ * // protractor.conf.js
104
+ * const { ArtifactArchiver } = require('@serenity-js/core')
105
+ * const { Photographer, TakePhotosOfFailures } = require('@serenity-js/web')
106
+ *
107
+ * exports.config = {
108
+ *
109
+ * // Tell Protractor to use the Serenity/JS framework Protractor Adapter
110
+ * framework: 'custom',
111
+ * frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
112
+ *
113
+ * serenity: {
114
+ * runner: 'jasmine',
115
+ * // runner: 'cucumber',
116
+ * // runner: 'mocha',
117
+ * crew: [
118
+ * ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
21
119
  * Photographer.whoWill(TakePhotosOfFailures),
22
120
  * ]
23
121
  * },
24
122
  *
25
123
  * // ... rest of the config omitted for brevity
26
- * };
124
+ * }
125
+ * ```
27
126
  *
28
- * @example <caption>Taking photos upon failures only</caption>
127
+ * ## Taking photos only upon failures only
29
128
  *
30
- * import { Photographer, TakePhotosOfFailures } from '@serenity-js/webdriverio';
129
+ * ```ts
130
+ * import { Photographer, TakePhotosOfFailures } from '@serenity-js/web'
31
131
  *
32
132
  * Photographer.whoWill(TakePhotosOfFailures)
133
+ * ```
33
134
  *
34
- * @example <caption>Taking photos of all the interactions</caption>
135
+ * ## Taking photos of all the interactions
35
136
  *
36
- * import { Photographer, TakePhotosOfInteractions } from '@serenity-js/webdriverio';
137
+ * ```ts
138
+ * import { Photographer, TakePhotosOfInteractions } from '@serenity-js/web'
37
139
  *
38
140
  * Photographer.whoWill(TakePhotosOfInteractions)
141
+ * ```
39
142
  *
40
- * @example <caption>Taking photos before and after all the interactions</caption>
143
+ * ## Taking photos before and after all the interactions
41
144
  *
42
- * import { Photographer, TakePhotosBeforeAndAfterInteractions } from '@serenity-js/webdriverio';
145
+ * ```ts
146
+ * import { Photographer, TakePhotosBeforeAndAfterInteractions } from '@serenity-js/web'
43
147
  *
44
148
  * Photographer.whoWill(TakePhotosBeforeAndAfterInteractions)
149
+ * ```
45
150
  *
46
- * @see {@link @serenity-js/core/lib/stage~Stage}
47
- * @see {@link TakePhotosBeforeAndAfterInteractions}
48
- * @see {@link TakePhotosOfFailures}
49
- * @see {@link TakePhotosOfInteractions}
151
+ * ## Learn more
152
+ * - {@apilink Stage}
153
+ * - {@apilink StageCrewMember}
154
+ * - {@apilink TakePhotosBeforeAndAfterInteractions}
155
+ * - {@apilink TakePhotosOfFailures}
156
+ * - {@apilink TakePhotosOfInteractions}
157
+ *
158
+ * @group Stage
50
159
  */
51
160
  class Photographer {
52
161
  /**
53
- * @param {PhotoTakingStrategy} photoTakingStrategy
54
- * @param {Stage} stage
162
+ * Instantiates a new {@apilink Photographer} configured to take photos (screenshots)
163
+ * as per the specified {@apilink PhotoTakingStrategy}.
164
+ *
165
+ * @param strategy
166
+ * A no-arg constructor function that instantiates a {@apilink PhotoTakingStrategy}
55
167
  */
56
- constructor(photoTakingStrategy, stage) {
57
- this.photoTakingStrategy = photoTakingStrategy;
58
- this.stage = stage;
168
+ static whoWill(strategy) {
169
+ return new Photographer(new strategy());
59
170
  }
60
171
  /**
61
- * @desc
62
- * Instantiates a new {@link Photographer} configured to take photos (screenshots)
63
- * as per the specified {@link PhotoTakingStrategy}.
172
+ * Instantiates a new {@apilink Photographer} configured to take photos (screenshots)
173
+ * as per the specified {@apilink PhotoTakingStrategy}.
64
174
  *
65
- * @param {Function} strategy - A no-arg constructor function that instantiates a {@link PhotoTakingStrategy}.
66
- * @returns {StageCrewMember}
175
+ * @param config
67
176
  */
68
- static whoWill(strategy) {
69
- return new Photographer(new strategy());
177
+ static fromJSON(config) {
178
+ if (config && config.strategy) {
179
+ const availableStrategies = Object.keys(strategies).filter(strategy => strategy !== strategies.PhotoTakingStrategy.name); // not the abstract class
180
+ if (availableStrategies.includes(config.strategy)) {
181
+ return new Photographer(new strategies[config.strategy]());
182
+ }
183
+ throw new core_1.ConfigurationError(`'${config.strategy}' is not an available PhotoTakingStrategy. ` +
184
+ `Available strategies: ${availableStrategies.join(', ')}.`);
185
+ }
186
+ return new Photographer(new strategies.TakePhotosOfFailures());
187
+ }
188
+ constructor(photoTakingStrategy, stage) {
189
+ this.photoTakingStrategy = photoTakingStrategy;
190
+ this.stage = stage;
70
191
  }
71
192
  /**
72
- * @desc
73
- * Creates a new instance of this {@link StageCrewMember} and assigns it to a given {@link Stage}.
193
+ * Assigns this {@apilink StageCrewMember} to a given {@apilink Stage}.
74
194
  *
75
- * @param {Stage} stage - An instance of a {@link Stage} this {@link StageCrewMember} will be assigned to
76
- * @returns {StageCrewMember} - A new instance of this {@link StageCrewMember}
195
+ * @param stage
196
+ * An instance of a {@apilink Stage} this {@apilink StageCrewMember} will be assigned to
77
197
  */
78
198
  assignedTo(stage) {
79
- return new Photographer(this.photoTakingStrategy, stage);
199
+ this.stage = stage;
200
+ return this;
80
201
  }
81
202
  /**
82
- * @desc
83
- * Handles {@link DomainEvent} objects emitted by the {@link Stage}
84
- * this {@link StageCrewMember} is assigned to.
203
+ * Handles {@apilink DomainEvent} objects emitted by the {@apilink Stage}
204
+ * this {@apilink StageCrewMember} is assigned to.
85
205
  *
86
- * @param {DomainEvent} event
87
- * @returns {void}
206
+ * @param event
88
207
  */
89
208
  notifyOf(event) {
90
209
  if (!this.stage) {
@@ -1 +1 @@
1
- {"version":3,"file":"Photographer.js","sourceRoot":"","sources":["../../../../src/stage/crew/photographer/Photographer.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAC/C,yDAA6F;AAK7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAa,YAAY;IAcrB;;;OAGG;IACH,YACqB,mBAAwC,EACjD,KAAa;QADJ,wBAAmB,GAAnB,mBAAmB,CAAqB;QACjD,UAAK,GAAL,KAAK,CAAQ;IAEzB,CAAC;IApBD;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,QAAuC;QAClD,OAAO,IAAI,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAYD;;;;;;OAMG;IACH,UAAU,CAAC,KAAY;QACnB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAkB;QACvB,IAAI,CAAE,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,iBAAU,CAAC,8FAA8F,CAAC,CAAC;SACxH;QAED,IAAI,CAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE;YAClC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,IAAI,KAAK,YAAY,uBAAc,IAAI,KAAK,YAAY,yBAAgB,EAAE;YACtE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACnE;IACL,CAAC;CACJ;AAxDD,oCAwDC"}
1
+ {"version":3,"file":"Photographer.js","sourceRoot":"","sources":["../../../../src/stage/crew/photographer/Photographer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAmE;AACnE,yDAA6F;AAG7F,yDAA2C;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiIG;AACH,MAAa,YAAY;IAErB;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,QAAkD;QAC7D,OAAO,IAAI,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAA4E;QACxF,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA,CAAI,yBAAyB;YAErJ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAkB,CAAC,EAAE;gBACzD,OAAO,IAAI,YAAY,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,QAAkB,CAAC,EAAE,CAAC,CAAC;aACxE;YAED,MAAM,IAAI,yBAAkB,CACxB,IAAK,MAAM,CAAC,QAAS,6CAA6C;gBAClE,yBAA0B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,CAC/D,CAAC;SACL;QAED,OAAO,IAAI,YAAY,CAAC,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YACqB,mBAAmD,EAC5D,KAAa;QADJ,wBAAmB,GAAnB,mBAAmB,CAAgC;QAC5D,UAAK,GAAL,KAAK,CAAQ;IAEzB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAkB;QACvB,IAAI,CAAE,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,iBAAU,CAAC,8FAA8F,CAAC,CAAC;SACxH;QAED,IAAI,CAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE;YAClC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,IAAI,KAAK,YAAY,uBAAc,IAAI,KAAK,YAAY,yBAAgB,EAAE;YACtE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACnE;IACL,CAAC;CACJ;AAxED,oCAwEC"}
@@ -1,2 +1,3 @@
1
1
  export * from './Photographer';
2
2
  export * from './strategies';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/photographer/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/stage/crew/photographer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/stage/crew/photographer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B"}
@@ -1,24 +1,24 @@
1
1
  import { Stage } from '@serenity-js/core';
2
2
  import { ActivityFinished, ActivityStarts, DomainEvent } from '@serenity-js/core/lib/events';
3
3
  /**
4
- * @desc
5
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots)
6
- * of the {@link @serenity-js/core/lib/screenplay~Activity} performed
7
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
8
- * under specific conditions.
4
+ * Configures the {@apilink Photographer} to take {@apilink Photo|photos}, a.k.a. screenshots,
5
+ * of the {@apilink Activity} performed by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
6
+ * when desired conditions are met.
9
7
  *
10
- * @abstract
8
+ * @group Stage
11
9
  */
12
10
  export declare abstract class PhotoTakingStrategy {
13
11
  /**
14
- * @desc
15
- * Takes a photo of the web browser held by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight.
12
+ * Takes a photo of the web browser used by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}.
16
13
  *
17
- * @param {@serenity-js/core/lib/events~ActivityStarts | @serenity-js/core/lib/events~ActivityFinished} event
18
- * @param {@serenity-js/core/lib/stage~Stage} stage - the Stage that holds reference to the Actor in the spotlight
19
- * @returns {void}
14
+ * #### Learn more
15
+ * - {@apilink ActivityStarts}
16
+ * - {@apilink ActivityFinished}
17
+ * - {@apilink Stage}
20
18
  *
21
- * @see {@link @serenity-js/core/lib/stage~Stage#theActorInTheSpotlight}
19
+ * @param event
20
+ * @param stage
21
+ * The Stage that holds reference to the Actor in the spotlight
22
22
  */
23
23
  considerTakingPhoto(event: ActivityStarts | ActivityFinished, stage: Stage): Promise<void>;
24
24
  protected abstract shouldTakeAPhotoOf(event: DomainEvent): boolean;
@@ -26,3 +26,4 @@ export declare abstract class PhotoTakingStrategy {
26
26
  private combinedNameFrom;
27
27
  private shouldIgnore;
28
28
  }
29
+ //# sourceMappingURL=PhotoTakingStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoTakingStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAoC,cAAc,EAAiG,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAK9N;;;;;;GAMG;AACH,8BAAsB,mBAAmB;IAErC;;;;;;;;;;;OAWG;IACG,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DhG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAElE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAE3D,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;CAIvB"}
@@ -1,28 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PhotoTakingStrategy = void 0;
4
+ const core_1 = require("@serenity-js/core");
4
5
  const events_1 = require("@serenity-js/core/lib/events");
5
6
  const model_1 = require("@serenity-js/core/lib/model");
6
7
  const screenplay_1 = require("../../../../screenplay");
7
8
  /**
8
- * @desc
9
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots)
10
- * of the {@link @serenity-js/core/lib/screenplay~Activity} performed
11
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
12
- * under specific conditions.
9
+ * Configures the {@apilink Photographer} to take {@apilink Photo|photos}, a.k.a. screenshots,
10
+ * of the {@apilink Activity} performed by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
11
+ * when desired conditions are met.
13
12
  *
14
- * @abstract
13
+ * @group Stage
15
14
  */
16
15
  class PhotoTakingStrategy {
17
16
  /**
18
- * @desc
19
- * Takes a photo of the web browser held by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight.
17
+ * Takes a photo of the web browser used by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}.
20
18
  *
21
- * @param {@serenity-js/core/lib/events~ActivityStarts | @serenity-js/core/lib/events~ActivityFinished} event
22
- * @param {@serenity-js/core/lib/stage~Stage} stage - the Stage that holds reference to the Actor in the spotlight
23
- * @returns {void}
19
+ * #### Learn more
20
+ * - {@apilink ActivityStarts}
21
+ * - {@apilink ActivityFinished}
22
+ * - {@apilink Stage}
24
23
  *
25
- * @see {@link @serenity-js/core/lib/stage~Stage#theActorInTheSpotlight}
24
+ * @param event
25
+ * @param stage
26
+ * The Stage that holds reference to the Actor in the spotlight
26
27
  */
27
28
  async considerTakingPhoto(event, stage) {
28
29
  if (!this.shouldTakeAPhotoOf(event)) {
@@ -37,30 +38,21 @@ class PhotoTakingStrategy {
37
38
  return void 0;
38
39
  }
39
40
  const id = model_1.CorrelationId.create(), nameSuffix = this.photoNameFor(event);
40
- stage.announce(new events_1.AsyncOperationAttempted(new model_1.Description(`[Photographer:${this.constructor.name}] Taking screenshot of '${nameSuffix}'...`), id));
41
- let dialogIsPresent;
42
- try {
43
- dialogIsPresent = await browseTheWeb.modalDialog().then(dialog => dialog.isPresent());
44
- if (dialogIsPresent) {
45
- return stage.announce(new events_1.AsyncOperationCompleted(new model_1.Description(`[${this.constructor.name}] Aborted taking screenshot of '${nameSuffix}' because of a modal dialog obstructing the view`), id));
46
- }
47
- }
48
- catch (error) {
49
- return stage.announce(new events_1.AsyncOperationFailed(error, id));
50
- }
41
+ stage.announce(new events_1.AsyncOperationAttempted(new model_1.Name(`Photographer:${this.constructor.name}`), new model_1.Description(`Taking screenshot of '${nameSuffix}'...`), id, stage.currentTime()));
51
42
  try {
52
43
  const capabilities = await browseTheWeb.browserCapabilities();
53
- const screenshot = await browseTheWeb.takeScreenshot();
44
+ const page = await browseTheWeb.currentPage();
45
+ const screenshot = await page.takeScreenshot();
54
46
  const context = [capabilities.platformName, capabilities.browserName, capabilities.browserVersion], photoName = this.combinedNameFrom(...context, nameSuffix);
55
- stage.announce(new events_1.ActivityRelatedArtifactGenerated(event.sceneId, event.activityId, photoName, model_1.Photo.fromBase64(screenshot)));
56
- return stage.announce(new events_1.AsyncOperationCompleted(new model_1.Description(`[${this.constructor.name}] Took screenshot of '${nameSuffix}' on ${context}`), id));
47
+ stage.announce(new events_1.ActivityRelatedArtifactGenerated(event.sceneId, event.activityId, photoName, model_1.Photo.fromBase64(screenshot), stage.currentTime()));
48
+ return stage.announce(new events_1.AsyncOperationCompleted(id, stage.currentTime()));
57
49
  }
58
50
  catch (error) {
59
51
  if (this.shouldIgnore(error)) {
60
- stage.announce(new events_1.AsyncOperationCompleted(new model_1.Description(`[${this.constructor.name}] Aborted taking screenshot of '${nameSuffix}' because of ${error.constructor && error.constructor.name}`), id));
52
+ stage.announce(new events_1.AsyncOperationAborted(new model_1.Description(`Aborted taking screenshot of '${nameSuffix}' because of ${error.constructor && error.constructor.name}`), id, stage.currentTime()));
61
53
  }
62
54
  else {
63
- stage.announce(new events_1.AsyncOperationFailed(error, id));
55
+ stage.announce(new events_1.AsyncOperationFailed(error, id, stage.currentTime()));
64
56
  }
65
57
  }
66
58
  }
@@ -68,11 +60,8 @@ class PhotoTakingStrategy {
68
60
  return new model_1.Name(parts.filter(v => !!v).join('-'));
69
61
  }
70
62
  shouldIgnore(error) {
71
- return error.name && (error.name === 'NoSuchSessionError' ||
72
- (error.name === 'ProtocolError' && error.message.includes('Target closed')));
73
- // todo: add SauceLabs
74
- // [0-0] 2021-12-02T01:32:36.402Z ERROR webdriver: Request failed with status 404 due to no such window: no such window: target window already closed
75
- // [0-0] from unknown error: web view not found
63
+ return error instanceof core_1.LogicError
64
+ || (error.name && error.name === core_1.LogicError.name);
76
65
  }
77
66
  }
78
67
  exports.PhotoTakingStrategy = PhotoTakingStrategy;
@@ -1 +1 @@
1
- {"version":3,"file":"PhotoTakingStrategy.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts"],"names":[],"mappings":";;;AACA,yDAAuM;AACvM,uDAAsF;AAEtF,uDAAsD;AAEtD;;;;;;;;GAQG;AACH,MAAsB,mBAAmB;IAErC;;;;;;;;;OASG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAwC,EAAE,KAAY;QAC5E,IAAI,CAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,IAAI,YAA0B,CAAC;QAE/B,IAAI;YACA,YAAY,GAAG,yBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;SAClE;QAAC,MAAM;YACJ,sCAAsC;YACtC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,MACI,EAAE,GAAgB,qBAAa,CAAC,MAAM,EAAE,EACxC,UAAU,GAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CACtC,IAAI,mBAAW,CAAC,iBAAkB,IAAI,CAAC,WAAW,CAAC,IAAK,2BAA4B,UAAW,MAAM,CAAC,EACtG,EAAE,CACL,CAAC,CAAC;QAEH,IAAI,eAAwB,CAAC;QAE7B,IAAI;YACA,eAAe,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAEtF,IAAI,eAAe,EAAE;gBACjB,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CAC7C,IAAI,mBAAW,CAAC,IAAK,IAAI,CAAC,WAAW,CAAC,IAAK,mCAAoC,UAAW,kDAAkD,CAAC,EAC7I,EAAE,CACL,CAAC,CAAC;aACN;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,6BAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;SAC9D;QAED,IAAI;YACA,MAAM,YAAY,GAAI,MAAM,YAAY,CAAC,mBAAmB,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAM,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;YAE1D,MACI,OAAO,GAAK,CAAE,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,cAAc,CAAE,EAChG,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC;YAE9D,KAAK,CAAC,QAAQ,CAAC,IAAI,yCAAgC,CAC/C,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,aAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAC/B,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CAC7C,IAAI,mBAAW,CAAC,IAAK,IAAI,CAAC,WAAW,CAAC,IAAK,yBAA0B,UAAW,QAAS,OAAQ,EAAE,CAAC,EACpG,EAAE,CACL,CAAC,CAAC;SACN;QACD,OAAO,KAAK,EAAE;YACV,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CACtC,IAAI,mBAAW,CAAC,IAAK,IAAI,CAAC,WAAW,CAAC,IAAK,mCAAoC,UAAW,gBAAiB,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAK,EAAE,CAAC,EAC1J,EAAE,CACL,CAAC,CAAC;aACN;iBACI;gBACD,KAAK,CAAC,QAAQ,CAAC,IAAI,6BAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;aACvD;SACJ;IACL,CAAC;IAMO,gBAAgB,CAAC,GAAG,KAAe;QACvC,OAAO,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,YAAY,CAAC,KAAY;QAC7B,OAAO,KAAK,CAAC,IAAI,IAAI,CACjB,KAAK,CAAC,IAAI,KAAK,oBAAoB;YACnC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAC9E,CAAC;QACF,sBAAsB;QACtB,sJAAsJ;QACtJ,gDAAgD;IACpD,CAAC;CACJ;AApGD,kDAoGC"}
1
+ {"version":3,"file":"PhotoTakingStrategy.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts"],"names":[],"mappings":";;;AAAA,4CAAsD;AACtD,yDAA8N;AAC9N,uDAAsF;AAEtF,uDAAsD;AAEtD;;;;;;GAMG;AACH,MAAsB,mBAAmB;IAErC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAwC,EAAE,KAAY;QAC5E,IAAI,CAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,IAAI,YAA0B,CAAC;QAE/B,IAAI;YACA,YAAY,GAAG,yBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;SAClE;QAAC,MAAM;YACJ,sCAAsC;YACtC,OAAO,KAAK,CAAC,CAAC;SACjB;QAED,MACI,EAAE,GAAgB,qBAAa,CAAC,MAAM,EAAE,EACxC,UAAU,GAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CACtC,IAAI,YAAI,CAAC,gBAAiB,IAAI,CAAC,WAAW,CAAC,IAAK,EAAE,CAAC,EACnD,IAAI,mBAAW,CAAC,yBAA0B,UAAW,MAAM,CAAC,EAC5D,EAAE,EACF,KAAK,CAAC,WAAW,EAAE,CACtB,CAAC,CAAC;QAEH,IAAI;YACA,MAAM,YAAY,GAAI,MAAM,YAAY,CAAC,mBAAmB,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAY,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,UAAU,GAAM,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAElD,MACI,OAAO,GAAK,CAAE,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,cAAc,CAAE,EAChG,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC;YAE9D,KAAK,CAAC,QAAQ,CAAC,IAAI,yCAAgC,CAC/C,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,aAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5B,KAAK,CAAC,WAAW,EAAE,CACtB,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,gCAAuB,CAC7C,EAAE,EACF,KAAK,CAAC,WAAW,EAAE,CACtB,CAAC,CAAC;SACN;QACD,OAAO,KAAK,EAAE;YACV,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,8BAAqB,CACpC,IAAI,mBAAW,CAAC,iCAAkC,UAAW,gBAAiB,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAK,EAAE,CAAC,EAC7H,EAAE,EACF,KAAK,CAAC,WAAW,EAAE,CACtB,CAAC,CAAC;aACN;iBACI;gBACD,KAAK,CAAC,QAAQ,CAAC,IAAI,6BAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aAC5E;SACJ;IACL,CAAC;IAMO,gBAAgB,CAAC,GAAG,KAAe;QACvC,OAAO,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,YAAY,CAAC,KAAY;QAC7B,OAAO,KAAK,YAAY,iBAAU;eAC3B,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;CACJ;AAvFD,kDAuFC"}
@@ -1,18 +1,18 @@
1
1
  import { DomainEvent, InteractionFinished, InteractionStarts } from '@serenity-js/core/lib/events';
2
2
  import { PhotoTakingStrategy } from './PhotoTakingStrategy';
3
3
  /**
4
- * @desc
5
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) both before and after
6
- * every single {@link @serenity-js/core/lib/screenplay~Interaction} performed
7
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight.
4
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots) **both before and after**
5
+ * every single {@apilink Interaction} performed
6
+ * by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}.
8
7
  *
9
- * *Please note* that this strategy will result in _a lot_ of screenshots being taken,
10
- * which will seriously affect the performance of your tests.
11
- * For this reason, it's best to use it only for debugging purposes.
8
+ * **Please note** that this strategy will result in _a lot_ of screenshots being taken,
9
+ * which will seriously affect the performance of your tests.
10
+ * For this reason, it's best to use it only for debugging purposes.
12
11
  *
13
- * @extends {PhotoTakingStrategy}
12
+ * @group Stage
14
13
  */
15
14
  export declare class TakePhotosBeforeAndAfterInteractions extends PhotoTakingStrategy {
16
15
  protected shouldTakeAPhotoOf(event: DomainEvent): boolean;
17
16
  protected photoNameFor(event: InteractionStarts | InteractionFinished): string;
18
17
  }
18
+ //# sourceMappingURL=TakePhotosBeforeAndAfterInteractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TakePhotosBeforeAndAfterInteractions.d.ts","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,qBAAa,oCAAqC,SAAQ,mBAAmB;IACzE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAKzD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,MAAM;CAKjF"}
@@ -4,16 +4,15 @@ exports.TakePhotosBeforeAndAfterInteractions = void 0;
4
4
  const events_1 = require("@serenity-js/core/lib/events");
5
5
  const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
6
6
  /**
7
- * @desc
8
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) both before and after
9
- * every single {@link @serenity-js/core/lib/screenplay~Interaction} performed
10
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight.
7
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots) **both before and after**
8
+ * every single {@apilink Interaction} performed
9
+ * by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}.
11
10
  *
12
- * *Please note* that this strategy will result in _a lot_ of screenshots being taken,
13
- * which will seriously affect the performance of your tests.
14
- * For this reason, it's best to use it only for debugging purposes.
11
+ * **Please note** that this strategy will result in _a lot_ of screenshots being taken,
12
+ * which will seriously affect the performance of your tests.
13
+ * For this reason, it's best to use it only for debugging purposes.
15
14
  *
16
- * @extends {PhotoTakingStrategy}
15
+ * @group Stage
17
16
  */
18
17
  class TakePhotosBeforeAndAfterInteractions extends PhotoTakingStrategy_1.PhotoTakingStrategy {
19
18
  shouldTakeAPhotoOf(event) {
@@ -1 +1 @@
1
- {"version":3,"file":"TakePhotosBeforeAndAfterInteractions.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts"],"names":[],"mappings":";;;AAAA,yDAAmG;AAEnG,+DAA4D;AAE5D;;;;;;;;;;;GAWG;AACH,MAAa,oCAAqC,SAAQ,yCAAmB;IAC/D,kBAAkB,CAAC,KAAkB;QAC3C,OAAO,KAAK,YAAY,0BAAiB;eAClC,KAAK,YAAY,4BAAmB,CAAC;IAChD,CAAC;IAES,YAAY,CAAC,KAA8C;QACjE,OAAO,KAAK,YAAY,0BAAiB;YACrC,CAAC,CAAC,UAAW,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE;YACxC,CAAC,CAAC,SAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAXD,oFAWC"}
1
+ {"version":3,"file":"TakePhotosBeforeAndAfterInteractions.js","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts"],"names":[],"mappings":";;;AAAA,yDAAmG;AAEnG,+DAA4D;AAE5D;;;;;;;;;;GAUG;AACH,MAAa,oCAAqC,SAAQ,yCAAmB;IAC/D,kBAAkB,CAAC,KAAkB;QAC3C,OAAO,KAAK,YAAY,0BAAiB;eAClC,KAAK,YAAY,4BAAmB,CAAC;IAChD,CAAC;IAES,YAAY,CAAC,KAA8C;QACjE,OAAO,KAAK,YAAY,0BAAiB;YACrC,CAAC,CAAC,UAAW,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE;YACxC,CAAC,CAAC,SAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAXD,oFAWC"}
@@ -1,17 +1,18 @@
1
1
  import { DomainEvent, InteractionFinished } from '@serenity-js/core/lib/events';
2
2
  import { PhotoTakingStrategy } from './PhotoTakingStrategy';
3
3
  /**
4
- * @desc
5
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
6
- * the {@link @serenity-js/core/lib/screenplay~Interaction} performed
7
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight results in an error.
4
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots)
5
+ * when then {@apilink Interaction} performed
6
+ * by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
7
+ * results in an error.
8
8
  *
9
- * This strategy works best when you are interested in the screenshots only when
10
- * a scenario fails.
9
+ * This strategy works best when you are interested in the screenshots only when
10
+ * a scenario fails.
11
11
  *
12
- * @extends {PhotoTakingStrategy}
12
+ * @group Stage
13
13
  */
14
14
  export declare class TakePhotosOfFailures extends PhotoTakingStrategy {
15
15
  protected shouldTakeAPhotoOf(event: DomainEvent): boolean;
16
16
  protected photoNameFor(event: InteractionFinished): string;
17
17
  }
18
+ //# sourceMappingURL=TakePhotosOfFailures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TakePhotosOfFailures.d.ts","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;IACzD,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAKzD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7D"}
@@ -5,15 +5,15 @@ const events_1 = require("@serenity-js/core/lib/events");
5
5
  const model_1 = require("@serenity-js/core/lib/model");
6
6
  const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
7
7
  /**
8
- * @desc
9
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
10
- * the {@link @serenity-js/core/lib/screenplay~Interaction} performed
11
- * by the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight results in an error.
8
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots)
9
+ * when then {@apilink Interaction} performed
10
+ * by the {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
11
+ * results in an error.
12
12
  *
13
- * This strategy works best when you are interested in the screenshots only when
14
- * a scenario fails.
13
+ * This strategy works best when you are interested in the screenshots only when
14
+ * a scenario fails.
15
15
  *
16
- * @extends {PhotoTakingStrategy}
16
+ * @group Stage
17
17
  */
18
18
  class TakePhotosOfFailures extends PhotoTakingStrategy_1.PhotoTakingStrategy {
19
19
  shouldTakeAPhotoOf(event) {
@@ -1,19 +1,19 @@
1
1
  import { DomainEvent, InteractionFinished } from '@serenity-js/core/lib/events';
2
2
  import { PhotoTakingStrategy } from './PhotoTakingStrategy';
3
3
  /**
4
- * @desc
5
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
6
- * the the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
7
- * performs any {@link @serenity-js/core/lib/screenplay~Interaction}.
4
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots)
5
+ * when then {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
6
+ * performs any {@apilink Interaction}.
8
7
  *
9
- * This strategy works best when you want the results of your automated tests
10
- * to become comprehensive living documentation of your system.
8
+ * This strategy works best when you want the results of your automated tests
9
+ * to become comprehensive living documentation of your system.
11
10
  *
12
- * *Please note* that taking screenshots affects the performance of your tests.
11
+ * *Please note* that taking screenshots affects the performance of your tests.
13
12
  *
14
- * @extends {PhotoTakingStrategy}
13
+ * @group Stage
15
14
  */
16
15
  export declare class TakePhotosOfInteractions extends PhotoTakingStrategy {
17
16
  protected shouldTakeAPhotoOf(event: DomainEvent): boolean;
18
17
  protected photoNameFor(event: InteractionFinished): string;
19
18
  }
19
+ //# sourceMappingURL=TakePhotosOfInteractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TakePhotosOfInteractions.d.ts","sourceRoot":"","sources":["../../../../../src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC7D,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAIzD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7D"}
@@ -4,17 +4,16 @@ exports.TakePhotosOfInteractions = void 0;
4
4
  const events_1 = require("@serenity-js/core/lib/events");
5
5
  const PhotoTakingStrategy_1 = require("./PhotoTakingStrategy");
6
6
  /**
7
- * @desc
8
- * Configures the {@link Photographer} to take photos (a.k.a. screenshots) when
9
- * the the {@link @serenity-js/core/lib/screenplay/actor~Actor} in the spotlight
10
- * performs any {@link @serenity-js/core/lib/screenplay~Interaction}.
7
+ * Configures the {@apilink Photographer} to take photos (a.k.a. screenshots)
8
+ * when then {@apilink Actor} in the {@apilink actorInTheSpotlight|spotlight}
9
+ * performs any {@apilink Interaction}.
11
10
  *
12
- * This strategy works best when you want the results of your automated tests
13
- * to become comprehensive living documentation of your system.
11
+ * This strategy works best when you want the results of your automated tests
12
+ * to become comprehensive living documentation of your system.
14
13
  *
15
- * *Please note* that taking screenshots affects the performance of your tests.
14
+ * *Please note* that taking screenshots affects the performance of your tests.
16
15
  *
17
- * @extends {PhotoTakingStrategy}
16
+ * @group Stage
18
17
  */
19
18
  class TakePhotosOfInteractions extends PhotoTakingStrategy_1.PhotoTakingStrategy {
20
19
  shouldTakeAPhotoOf(event) {