@serenity-js/webdriverio 2.32.5 → 3.0.0-rc.3

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 (240) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/lib/adapter/WebdriverIOFrameworkAdapter.js +1 -1
  3. package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
  4. package/lib/adapter/WebdriverIONotifier.d.ts +35 -1
  5. package/lib/adapter/WebdriverIONotifier.js +174 -13
  6. package/lib/adapter/WebdriverIONotifier.js.map +1 -1
  7. package/lib/index.d.ts +0 -3
  8. package/lib/index.js +0 -3
  9. package/lib/index.js.map +1 -1
  10. package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithWebdriverIO.d.ts} +53 -23
  11. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithWebdriverIO.js} +122 -25
  12. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  13. package/lib/screenplay/abilities/index.d.ts +1 -1
  14. package/lib/screenplay/abilities/index.js +1 -1
  15. package/lib/screenplay/abilities/index.js.map +1 -1
  16. package/lib/screenplay/index.d.ts +1 -2
  17. package/lib/screenplay/index.js +1 -2
  18. package/lib/screenplay/index.js.map +1 -1
  19. package/lib/screenplay/models/WebdriverIOCookie.d.ts +8 -0
  20. package/lib/screenplay/models/WebdriverIOCookie.js +39 -0
  21. package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -0
  22. package/lib/screenplay/models/WebdriverIOModalDialog.d.ts +11 -0
  23. package/lib/screenplay/models/WebdriverIOModalDialog.js +40 -0
  24. package/lib/screenplay/models/WebdriverIOModalDialog.js.map +1 -0
  25. package/lib/screenplay/models/WebdriverIONativeElementLocator.d.ts +27 -0
  26. package/lib/screenplay/models/WebdriverIONativeElementLocator.js +56 -0
  27. package/lib/screenplay/models/WebdriverIONativeElementLocator.js.map +1 -0
  28. package/lib/screenplay/models/WebdriverIONativeElementRoot.d.ts +2 -0
  29. package/lib/screenplay/{interactions/EnterBuilder.js → models/WebdriverIONativeElementRoot.js} +1 -1
  30. package/lib/screenplay/models/WebdriverIONativeElementRoot.js.map +1 -0
  31. package/lib/screenplay/models/WebdriverIOPage.d.ts +24 -0
  32. package/lib/screenplay/models/WebdriverIOPage.js +98 -0
  33. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -0
  34. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
  35. package/lib/screenplay/models/WebdriverIOPageElement.js +114 -0
  36. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  37. package/lib/screenplay/models/index.d.ts +6 -0
  38. package/lib/{input → screenplay/models}/index.js +6 -1
  39. package/lib/screenplay/models/index.js.map +1 -0
  40. package/package.json +15 -25
  41. package/src/adapter/WebdriverIOFrameworkAdapter.ts +2 -0
  42. package/src/adapter/WebdriverIONotifier.ts +225 -23
  43. package/src/index.ts +0 -3
  44. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithWebdriverIO.ts} +152 -31
  45. package/src/screenplay/abilities/index.ts +1 -1
  46. package/src/screenplay/index.ts +1 -2
  47. package/src/screenplay/models/WebdriverIOCookie.ts +44 -0
  48. package/src/screenplay/models/WebdriverIOModalDialog.ts +45 -0
  49. package/src/screenplay/models/WebdriverIONativeElementLocator.ts +78 -0
  50. package/src/screenplay/models/WebdriverIONativeElementRoot.ts +3 -0
  51. package/src/screenplay/models/WebdriverIOPage.ts +120 -0
  52. package/src/screenplay/models/WebdriverIOPageElement.ts +145 -0
  53. package/src/screenplay/models/index.ts +6 -0
  54. package/lib/expectations/ElementExpectation.d.ts +0 -11
  55. package/lib/expectations/ElementExpectation.js +0 -27
  56. package/lib/expectations/ElementExpectation.js.map +0 -1
  57. package/lib/expectations/index.d.ts +0 -6
  58. package/lib/expectations/index.js +0 -19
  59. package/lib/expectations/index.js.map +0 -1
  60. package/lib/expectations/isActive.d.ts +0 -15
  61. package/lib/expectations/isActive.js +0 -21
  62. package/lib/expectations/isActive.js.map +0 -1
  63. package/lib/expectations/isClickable.d.ts +0 -20
  64. package/lib/expectations/isClickable.js +0 -26
  65. package/lib/expectations/isClickable.js.map +0 -1
  66. package/lib/expectations/isEnabled.d.ts +0 -14
  67. package/lib/expectations/isEnabled.js +0 -20
  68. package/lib/expectations/isEnabled.js.map +0 -1
  69. package/lib/expectations/isPresent.d.ts +0 -15
  70. package/lib/expectations/isPresent.js +0 -21
  71. package/lib/expectations/isPresent.js.map +0 -1
  72. package/lib/expectations/isSelected.d.ts +0 -14
  73. package/lib/expectations/isSelected.js +0 -20
  74. package/lib/expectations/isSelected.js.map +0 -1
  75. package/lib/expectations/isVisible.d.ts +0 -14
  76. package/lib/expectations/isVisible.js +0 -20
  77. package/lib/expectations/isVisible.js.map +0 -1
  78. package/lib/input/Key.d.ts +0 -73
  79. package/lib/input/Key.js +0 -84
  80. package/lib/input/Key.js.map +0 -1
  81. package/lib/input/index.d.ts +0 -1
  82. package/lib/input/index.js.map +0 -1
  83. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  84. package/lib/screenplay/interactions/Clear.d.ts +0 -79
  85. package/lib/screenplay/interactions/Clear.js +0 -97
  86. package/lib/screenplay/interactions/Clear.js.map +0 -1
  87. package/lib/screenplay/interactions/Click.d.ts +0 -73
  88. package/lib/screenplay/interactions/Click.js +0 -84
  89. package/lib/screenplay/interactions/Click.js.map +0 -1
  90. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -90
  91. package/lib/screenplay/interactions/DoubleClick.js +0 -101
  92. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  93. package/lib/screenplay/interactions/Enter.d.ts +0 -73
  94. package/lib/screenplay/interactions/Enter.js +0 -87
  95. package/lib/screenplay/interactions/Enter.js.map +0 -1
  96. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -25
  97. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  98. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -206
  99. package/lib/screenplay/interactions/ExecuteScript.js +0 -311
  100. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  101. package/lib/screenplay/interactions/Hover.d.ts +0 -78
  102. package/lib/screenplay/interactions/Hover.js +0 -89
  103. package/lib/screenplay/interactions/Hover.js.map +0 -1
  104. package/lib/screenplay/interactions/Navigate.d.ts +0 -141
  105. package/lib/screenplay/interactions/Navigate.js +0 -197
  106. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  107. package/lib/screenplay/interactions/Press.d.ts +0 -84
  108. package/lib/screenplay/interactions/Press.js +0 -152
  109. package/lib/screenplay/interactions/Press.js.map +0 -1
  110. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -26
  111. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  112. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  113. package/lib/screenplay/interactions/RightClick.d.ts +0 -89
  114. package/lib/screenplay/interactions/RightClick.js +0 -100
  115. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  116. package/lib/screenplay/interactions/Scroll.d.ts +0 -75
  117. package/lib/screenplay/interactions/Scroll.js +0 -86
  118. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  119. package/lib/screenplay/interactions/Wait.d.ts +0 -143
  120. package/lib/screenplay/interactions/Wait.js +0 -247
  121. package/lib/screenplay/interactions/Wait.js.map +0 -1
  122. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -32
  123. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  124. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  125. package/lib/screenplay/interactions/WebElementInteraction.d.ts +0 -37
  126. package/lib/screenplay/interactions/WebElementInteraction.js +0 -52
  127. package/lib/screenplay/interactions/WebElementInteraction.js.map +0 -1
  128. package/lib/screenplay/interactions/index.d.ts +0 -13
  129. package/lib/screenplay/interactions/index.js +0 -26
  130. package/lib/screenplay/interactions/index.js.map +0 -1
  131. package/lib/screenplay/questions/Attribute.d.ts +0 -82
  132. package/lib/screenplay/questions/Attribute.js +0 -102
  133. package/lib/screenplay/questions/Attribute.js.map +0 -1
  134. package/lib/screenplay/questions/CSSClasses.d.ts +0 -92
  135. package/lib/screenplay/questions/CSSClasses.js +0 -112
  136. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  137. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  138. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  139. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  140. package/lib/screenplay/questions/NestedTargetBuilder.d.ts +0 -27
  141. package/lib/screenplay/questions/NestedTargetBuilder.js +0 -3
  142. package/lib/screenplay/questions/NestedTargetBuilder.js.map +0 -1
  143. package/lib/screenplay/questions/TargetBuilder.d.ts +0 -25
  144. package/lib/screenplay/questions/TargetBuilder.js +0 -3
  145. package/lib/screenplay/questions/TargetBuilder.js.map +0 -1
  146. package/lib/screenplay/questions/Text.d.ts +0 -95
  147. package/lib/screenplay/questions/Text.js +0 -130
  148. package/lib/screenplay/questions/Text.js.map +0 -1
  149. package/lib/screenplay/questions/Value.d.ts +0 -63
  150. package/lib/screenplay/questions/Value.js +0 -78
  151. package/lib/screenplay/questions/Value.js.map +0 -1
  152. package/lib/screenplay/questions/Website.d.ts +0 -21
  153. package/lib/screenplay/questions/Website.js +0 -31
  154. package/lib/screenplay/questions/Website.js.map +0 -1
  155. package/lib/screenplay/questions/index.d.ts +0 -10
  156. package/lib/screenplay/questions/index.js +0 -23
  157. package/lib/screenplay/questions/index.js.map +0 -1
  158. package/lib/screenplay/questions/lists.d.ts +0 -86
  159. package/lib/screenplay/questions/lists.js +0 -137
  160. package/lib/screenplay/questions/lists.js.map +0 -1
  161. package/lib/screenplay/questions/locators.d.ts +0 -196
  162. package/lib/screenplay/questions/locators.js +0 -219
  163. package/lib/screenplay/questions/locators.js.map +0 -1
  164. package/lib/screenplay/questions/targets.d.ts +0 -254
  165. package/lib/screenplay/questions/targets.js +0 -334
  166. package/lib/screenplay/questions/targets.js.map +0 -1
  167. package/lib/stage/crew/index.d.ts +0 -1
  168. package/lib/stage/crew/index.js +0 -14
  169. package/lib/stage/crew/index.js.map +0 -1
  170. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  171. package/lib/stage/crew/photographer/Photographer.js +0 -102
  172. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  173. package/lib/stage/crew/photographer/index.d.ts +0 -2
  174. package/lib/stage/crew/photographer/index.js +0 -15
  175. package/lib/stage/crew/photographer/index.js.map +0 -1
  176. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  177. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  178. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  179. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  180. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  181. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  182. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  183. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  184. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  185. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  186. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  187. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  188. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  189. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  190. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  191. package/lib/stage/index.d.ts +0 -1
  192. package/lib/stage/index.js +0 -14
  193. package/lib/stage/index.js.map +0 -1
  194. package/src/expectations/ElementExpectation.ts +0 -31
  195. package/src/expectations/index.ts +0 -6
  196. package/src/expectations/isActive.ts +0 -21
  197. package/src/expectations/isClickable.ts +0 -26
  198. package/src/expectations/isEnabled.ts +0 -19
  199. package/src/expectations/isPresent.ts +0 -20
  200. package/src/expectations/isSelected.ts +0 -19
  201. package/src/expectations/isVisible.ts +0 -19
  202. package/src/input/Key.ts +0 -83
  203. package/src/input/index.ts +0 -1
  204. package/src/screenplay/interactions/Clear.ts +0 -102
  205. package/src/screenplay/interactions/Click.ts +0 -85
  206. package/src/screenplay/interactions/DoubleClick.ts +0 -102
  207. package/src/screenplay/interactions/Enter.ts +0 -93
  208. package/src/screenplay/interactions/EnterBuilder.ts +0 -27
  209. package/src/screenplay/interactions/ExecuteScript.ts +0 -344
  210. package/src/screenplay/interactions/Hover.ts +0 -90
  211. package/src/screenplay/interactions/Navigate.ts +0 -208
  212. package/src/screenplay/interactions/Press.ts +0 -172
  213. package/src/screenplay/interactions/PressBuilder.ts +0 -28
  214. package/src/screenplay/interactions/RightClick.ts +0 -100
  215. package/src/screenplay/interactions/Scroll.ts +0 -87
  216. package/src/screenplay/interactions/Wait.ts +0 -267
  217. package/src/screenplay/interactions/WaitBuilder.ts +0 -34
  218. package/src/screenplay/interactions/WebElementInteraction.ts +0 -56
  219. package/src/screenplay/interactions/index.ts +0 -13
  220. package/src/screenplay/questions/Attribute.ts +0 -112
  221. package/src/screenplay/questions/CSSClasses.ts +0 -116
  222. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  223. package/src/screenplay/questions/NestedTargetBuilder.ts +0 -30
  224. package/src/screenplay/questions/TargetBuilder.ts +0 -27
  225. package/src/screenplay/questions/Text.ts +0 -140
  226. package/src/screenplay/questions/Value.ts +0 -82
  227. package/src/screenplay/questions/Website.ts +0 -34
  228. package/src/screenplay/questions/index.ts +0 -10
  229. package/src/screenplay/questions/lists.ts +0 -161
  230. package/src/screenplay/questions/locators.ts +0 -254
  231. package/src/screenplay/questions/targets.ts +0 -401
  232. package/src/stage/crew/index.ts +0 -1
  233. package/src/stage/crew/photographer/Photographer.ts +0 -108
  234. package/src/stage/crew/photographer/index.ts +0 -2
  235. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -103
  236. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  237. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  238. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  239. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  240. package/src/stage/index.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,87 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.0.0-rc.3](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.2...v3.0.0-rc.3) (2021-12-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **core:** refactored Mappable so that it's easier to implement filters ([176e0cd](https://github.com/serenity-js/serenity-js/commit/176e0cd0303d63271477b2b7a8e7b0572dda99a0)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
12
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
13
+ * **web:** refactored Selector and NativeElementLocator classes to simplify the implementation ([f0c8f11](https://github.com/serenity-js/serenity-js/commit/f0c8f113433958877d36f13d0bc7f355ea68d280))
14
+
15
+
16
+ ### Features
17
+
18
+ * **web:** isVisible checks if the element is in viewport and not hidden behind other elements ([429040f](https://github.com/serenity-js/serenity-js/commit/429040fb32b04cd4bc7524100635203fd8128eb6))
19
+ * **web:** re-introduced PageElements.where DSL and universal By selectors ([39fe0a1](https://github.com/serenity-js/serenity-js/commit/39fe0a10edf7f652e93911159e4a4689c36d6876)), closes [#1081](https://github.com/serenity-js/serenity-js/issues/1081)
20
+
21
+
22
+
23
+
24
+
25
+ # [3.0.0-rc.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
26
+
27
+ **Note:** Version bump only for package @serenity-js/webdriverio
28
+
29
+
30
+
31
+
32
+
33
+ # [3.0.0-rc.1](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.0...v3.0.0-rc.1) (2021-12-09)
34
+
35
+ **Note:** Version bump only for package @serenity-js/webdriverio
36
+
37
+
38
+
39
+
40
+
41
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
42
+
43
+
44
+ ### Bug Fixes
45
+
46
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
47
+ * **deps:** updated WebdriverIO ([9de63d4](https://github.com/serenity-js/serenity-js/commit/9de63d460d9735abfc5bb066671f6f28c3274597))
48
+ * **deps:** web ([b075b8e](https://github.com/serenity-js/serenity-js/commit/b075b8ecd8e00014469dda15a90175d60ed80c91))
49
+ * **web:** corrected timestamp rounding when retrieving the expiry date of a cookie ([d636965](https://github.com/serenity-js/serenity-js/commit/d63696586618cd701e703e33dd8b476efaac65b6))
50
+ * **webdriverio:** ensure getLastScriptExecutionResult returns undefined for void functions ([aa00dfd](https://github.com/serenity-js/serenity-js/commit/aa00dfd3ab320a5d7ee786feea1ce0355ac42638))
51
+ * **webdriverio:** fixed synchronisation issue in ModalDialog ([12324b2](https://github.com/serenity-js/serenity-js/commit/12324b2cef9c161df8b68960d5b958c1f208f70a)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
52
+ * **webdriverio:** separated UIElement.hoverOver from UIElement.scrollIntoView ([cf4ca2c](https://github.com/serenity-js/serenity-js/commit/cf4ca2c531e0f90f9a27917e322359c13bfbc6e6))
53
+ * **webdriverio:** updated WebdriverIO to 7.13.2 ([ef79d19](https://github.com/serenity-js/serenity-js/commit/ef79d1962224e8dd04a1b0e099662c91ea118dfe))
54
+ * **webdriverio:** updated WebdriverIO to 7.16.7 ([3316e29](https://github.com/serenity-js/serenity-js/commit/3316e2905e68b1cabf76086da353072376f95f4a))
55
+ * **web:** removed window-specific APIs from BrowseTheWeb that got replaced by Page ([918f447](https://github.com/serenity-js/serenity-js/commit/918f447c1d8f326fbf5730f1aa61108045556212)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
56
+ * **web:** renamed Element and associated classes to PageElement to avoid name conflicts ([1e4204b](https://github.com/serenity-js/serenity-js/commit/1e4204b5507469e6574c87a6d84454e39e8a813e))
57
+ * **web:** renamed PageElementList to PageElements to improve readability ([a9903a7](https://github.com/serenity-js/serenity-js/commit/a9903a7389b00106ef94d2bdb9f86a7fd04be541)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
58
+ * **web:** standardised getters across PageElement implementations ([336472b](https://github.com/serenity-js/serenity-js/commit/336472b1a6882412f6a88483e51266909a1d51d0))
59
+
60
+
61
+ ### Features
62
+
63
+ * **protractor:** compatibility with @serenity-js/web ([9df4db2](https://github.com/serenity-js/serenity-js/commit/9df4db27a6e0ae62bf0d0e679a170d4865041043)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
64
+ * **web:** a common way to run the tests for all the web adapters ([c7e584a](https://github.com/serenity-js/serenity-js/commit/c7e584a9bf288ebc7781affdb720097527e8ed3a))
65
+ * **web:** added Page.viewportSize and Page.setViewportSize methods ([4cabbe2](https://github.com/serenity-js/serenity-js/commit/4cabbe21a7fbac3457c6a6ea3d4442a62c3f1f3c))
66
+ * **web:** all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web ([7b6b95d](https://github.com/serenity-js/serenity-js/commit/7b6b95dc255446c29ae213ba2a1d142d426d16c8))
67
+ * **webdriverio:** support for native WebdriverIO services ([8d5ad22](https://github.com/serenity-js/serenity-js/commit/8d5ad22594cdb2ebddedc58a30259ca8430e360c))
68
+ * **web:** interaction to set a Cookie ([c056439](https://github.com/serenity-js/serenity-js/commit/c056439746a8f57c3edd937b8862f2babb70e94e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
69
+ * **web:** interaction to setViewportSize of a Page ([dd7f180](https://github.com/serenity-js/serenity-js/commit/dd7f18057b857d2e69c19265888bfd5b15fda21b))
70
+ * **web:** ModalDialog available for both Protractor and WebdriverIO adapters ([ef3c566](https://github.com/serenity-js/serenity-js/commit/ef3c566aed12b52aa22c54058992d369172b8597)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
71
+ * **web:** new module @serenity-js/web to provide Web-related Screenplay Pattern APIs ([bead861](https://github.com/serenity-js/serenity-js/commit/bead8612af1a5c99b775e680a3904f44d0281cf9))
72
+ * **web:** Page.url() and Page.title() replace Website.url() and Website.title() ([49fe009](https://github.com/serenity-js/serenity-js/commit/49fe0094422ab53ec67d4ba303f80c33e382eebd)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
73
+ * **web:** removed Target in favour of PageElement ([69496c4](https://github.com/serenity-js/serenity-js/commit/69496c47c4a1ec7b92e7ab6c83da1559e926f28e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
74
+ * **web:** support for switching browsing context ([a73a635](https://github.com/serenity-js/serenity-js/commit/a73a635f93183d67229acde78e74526564008869)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
75
+ * **web:** support for working with cookies ([39cde6d](https://github.com/serenity-js/serenity-js/commit/39cde6de7a36d27a8b1c596493efbec94900af6b)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
76
+
77
+
78
+ ### BREAKING CHANGES
79
+
80
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
81
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
82
+
83
+
84
+
85
+
86
+
6
87
  ## [2.32.5](https://github.com/serenity-js/serenity-js/compare/v2.32.4...v2.32.5) (2021-12-08)
7
88
 
8
89
  **Note:** Version bump only for package @serenity-js/webdriverio
@@ -30,7 +30,7 @@ class WebdriverIOFrameworkAdapter {
30
30
  reporter._reporters.push(reporter.initReporter([
31
31
  reporter_1.BrowserCapabilitiesReporter, { serenity: this.serenity },
32
32
  ]));
33
- this.notifier = new WebdriverIONotifier_1.WebdriverIONotifier(reporter, this.adapter.successThreshold(), cid, this.specs);
33
+ this.notifier = new WebdriverIONotifier_1.WebdriverIONotifier(config, capabilities, reporter, this.adapter.successThreshold(), cid, this.specs);
34
34
  const outputStreamBuffer = new reporter_1.OutputStreamBuffer(`[${this.cid}]`);
35
35
  const outputStreamBufferPrinter = new OutputStreamBufferPrinter_1.OutputStreamBufferPrinter(outputStreamBuffer, reporter.getWriteStreamObject('@serenity-js/webdriverio'));
36
36
  this.serenity.configure({
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOFrameworkAdapter.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAI/D,qDAAgD;AAEhD,yCAAwH;AACxH,oFAAiF;AACjF,yDAAsD;AAEtD,+DAA4D;AAC5D,uCAAwC;AAExC;;GAEG;AACH,MAAa,2BAA2B;IAKpC,YACqB,QAAkB,EAClB,MAAoB,EACpB,GAAS,EACT,GAAW,EAC5B,iBAAoC,EACnB,KAAe,EACf,YAA2C,EAC5D,QAAmE;QAPlD,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;QACT,QAAG,GAAH,GAAG,CAAQ;QAEX,UAAK,GAAL,KAAK,CAAU;QACf,iBAAY,GAAZ,YAAY,CAA+B;QAG5D,MAAM,MAAM,GAAG,SAAS,CAAoB,IAAI,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE;YACjF,iBAAiB,EAAE,+BAAa;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aAC/D,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9B,yGAAyG;QACzG,0IAA0I;QAC1I,uIAAuI;QACtI,QAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpD,sCAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC3D,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,yCAAmB,CACnC,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAC/B,GAAG,EACH,IAAI,CAAC,KAAK,CACb,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,CAC7C,IAAI,IAAI,CAAC,GAAG,GAAG,CAClB,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAI,qDAAyB,CAC3D,kBAAkB,EAClB,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpB,YAAY,EAAI,kBAAkB;YAClC,UAAU,EAAM,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC1C,MAAM,EAAU,MAAM,CAAC,QAAQ,CAAC,MAAM;YACtC,IAAI,EAAE;gBACF,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACvB,IAAI,CAAC,QAAQ;gBACb,yBAAyB;aAC5B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI;QAEN,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,CAAC;IACN,CAAC;IAEO,aAAa;QACjB,OAAO;YACH,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,uBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC;iBAC9E;aACJ;SACJ,CAAA;IACL,CAAC;CACJ;AAnFD,kEAmFC"}
1
+ {"version":3,"file":"WebdriverIOFrameworkAdapter.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAI/D,qDAAgD;AAEhD,yCAAwH;AACxH,oFAAiF;AACjF,yDAAsD;AAEtD,+DAA4D;AAC5D,uCAAwC;AAExC;;GAEG;AACH,MAAa,2BAA2B;IAKpC,YACqB,QAAkB,EAClB,MAAoB,EACpB,GAAS,EACT,GAAW,EAC5B,iBAAoC,EACnB,KAAe,EACf,YAA2C,EAC5D,QAAmE;QAPlD,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;QACT,QAAG,GAAH,GAAG,CAAQ;QAEX,UAAK,GAAL,KAAK,CAAU;QACf,iBAAY,GAAZ,YAAY,CAA+B;QAG5D,MAAM,MAAM,GAAG,SAAS,CAAoB,IAAI,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE;YACjF,iBAAiB,EAAE,+BAAa;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aAC/D,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9B,yGAAyG;QACzG,0IAA0I;QAC1I,uIAAuI;QACtI,QAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpD,sCAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC3D,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,yCAAmB,CACnC,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAC/B,GAAG,EACH,IAAI,CAAC,KAAK,CACb,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,CAC7C,IAAI,IAAI,CAAC,GAAG,GAAG,CAClB,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAI,qDAAyB,CAC3D,kBAAkB,EAClB,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpB,YAAY,EAAI,kBAAkB;YAClC,UAAU,EAAM,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC1C,MAAM,EAAU,MAAM,CAAC,QAAQ,CAAC,MAAM;YACtC,IAAI,EAAE;gBACF,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACvB,IAAI,CAAC,QAAQ;gBACb,yBAAyB;aAC5B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI;QAEN,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,CAAC;IACN,CAAC;IAEO,aAAa;QACjB,OAAO;YACH,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,uBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC;iBAC9E;aACJ;SACJ,CAAA;IACL,CAAC;CACJ;AArFD,kEAqFC"}
@@ -2,24 +2,37 @@
2
2
  import { Stage, StageCrewMember } from '@serenity-js/core';
3
3
  import { DomainEvent } from '@serenity-js/core/lib/events';
4
4
  import { Outcome } from '@serenity-js/core/lib/model';
5
+ import { RemoteCapability } from '@wdio/types/build/Capabilities';
5
6
  import type { EventEmitter } from 'events';
7
+ import { WebdriverIOConfig } from './WebdriverIOConfig';
6
8
  /**
7
9
  * @package
8
10
  */
9
11
  export declare class WebdriverIONotifier implements StageCrewMember {
12
+ private readonly config;
13
+ private readonly capabilities;
10
14
  private readonly reporter;
11
15
  private readonly successThreshold;
12
16
  private readonly cid;
13
17
  private readonly specs;
14
18
  private failures;
15
19
  private stage?;
20
+ /**
21
+ * We don't have access to the "context" object produced by Mocha,
22
+ * and can't assume that other test runners have a similar concept.
23
+ * Since, at the time of writing, none of the WebdriverIO rely on this parameter
24
+ * using a dummy seems to be sufficient.
25
+ * @private
26
+ */
27
+ private static dummmyContext;
16
28
  private readonly events;
17
29
  private readonly suites;
18
- constructor(reporter: EventEmitter, successThreshold: Outcome | {
30
+ constructor(config: WebdriverIOConfig, capabilities: RemoteCapability, reporter: EventEmitter, successThreshold: Outcome | {
19
31
  Code: number;
20
32
  }, cid: string, specs: string[], failures?: number, stage?: Stage);
21
33
  assignedTo(stage: Stage): StageCrewMember;
22
34
  notifyOf(event: DomainEvent): void;
35
+ private onTestRunFinishes;
23
36
  failureCount(): number;
24
37
  private onTestSuiteStarts;
25
38
  private onTestSuiteFinished;
@@ -29,9 +42,30 @@ export declare class WebdriverIONotifier implements StageCrewMember {
29
42
  private onSceneStarts;
30
43
  private onSceneFinished;
31
44
  private willBeRetried;
45
+ private testShortTitleFrom;
46
+ private testFrom;
32
47
  private testStartEventFrom;
33
48
  private parentSuiteName;
49
+ /**
50
+ * test status is 'passed' | 'pending' | 'skipped' | 'failed' | 'broken' | 'canceled'
51
+ * Since this is not documented, we're mimicking other WebdriverIO reporters, for example:
52
+ * https://github.com/webdriverio/webdriverio/blob/7415f3126e15a733b51721492e4995ceafae6046/packages/wdio-allure-reporter/src/constants.ts#L3-L9
53
+ *
54
+ * @param started
55
+ * @param finished
56
+ * @private
57
+ */
58
+ private testResultFrom;
34
59
  private testEndEventFrom;
60
+ private whenSuccessful;
35
61
  private testResultEventFrom;
36
62
  private errorFrom;
63
+ /**
64
+ * @see https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-utils/src/shim.ts
65
+ * @param hookName
66
+ * @param hookFunctions
67
+ * @param args
68
+ * @private
69
+ */
70
+ private invokeHooks;
37
71
  }
@@ -9,7 +9,9 @@ const tiny_types_1 = require("tiny-types");
9
9
  * @package
10
10
  */
11
11
  class WebdriverIONotifier {
12
- constructor(reporter, successThreshold, cid, specs, failures = 0, stage) {
12
+ constructor(config, capabilities, reporter, successThreshold, cid, specs, failures = 0, stage) {
13
+ this.config = config;
14
+ this.capabilities = capabilities;
13
15
  this.reporter = reporter;
14
16
  this.successThreshold = successThreshold;
15
17
  this.cid = cid;
@@ -29,20 +31,28 @@ class WebdriverIONotifier {
29
31
  .when(events_1.TestSuiteFinished, WebdriverIONotifier.prototype.onTestSuiteFinished.bind(this))
30
32
  .when(events_1.SceneStarts, WebdriverIONotifier.prototype.onSceneStarts.bind(this))
31
33
  .when(events_1.SceneFinished, WebdriverIONotifier.prototype.onSceneFinished.bind(this))
34
+ .when(events_1.TestRunFinishes, WebdriverIONotifier.prototype.onTestRunFinishes.bind(this))
32
35
  .else(() => void 0);
33
36
  }
37
+ onTestRunFinishes() {
38
+ return this.invokeHooks('after', this.config.after, [this.failures, this.capabilities, this.specs]);
39
+ }
34
40
  failureCount() {
35
41
  return this.failures;
36
42
  }
37
43
  onTestSuiteStarts(started) {
38
44
  this.events.record(started.details.correlationId, started);
39
- this.reporter.emit('suite:start', this.suiteStartEventFrom(started));
45
+ const suite = this.suiteStartEventFrom(started);
46
+ this.reporter.emit('suite:start', suite);
40
47
  this.suites.push(started.details);
48
+ return this.invokeHooks('beforeSuite', this.config.beforeSuite, [suite]); // todo: correct types
41
49
  }
42
50
  onTestSuiteFinished(finished) {
43
51
  this.suites.pop();
44
52
  const started = this.events.getByCorrelationId(finished.details.correlationId);
45
- this.reporter.emit('suite:end', this.suiteEndEventFrom(started, finished));
53
+ const suite = this.suiteEndEventFrom(started, finished);
54
+ this.reporter.emit('suite:end', suite);
55
+ return this.invokeHooks('afterSuite', this.config.afterSuite, [suite]); // todo: correct types
46
56
  }
47
57
  suiteStartEventFrom(started) {
48
58
  return {
@@ -71,35 +81,54 @@ class WebdriverIONotifier {
71
81
  const test = this.testStartEventFrom(started);
72
82
  this.events.record(started.sceneId, started);
73
83
  this.reporter.emit(test.type, test);
84
+ return this.invokeHooks('beforeTest', this.config.beforeTest, [this.testFrom(started), WebdriverIONotifier.dummmyContext]);
74
85
  }
75
86
  onSceneFinished(finished) {
76
87
  if (finished.outcome.isWorseThan(this.successThreshold)) {
77
88
  this.failures++;
78
89
  }
79
90
  const started = this.events.getByCorrelationId(finished.sceneId);
91
+ let testEnd;
80
92
  if (this.willBeRetried(finished.outcome)) {
81
- const testResult = this.testEndEventFrom(started, finished);
93
+ testEnd = this.testEndEventFrom(started, finished);
82
94
  const type = 'test:retry';
83
95
  this.reporter.emit(type, {
84
- ...testResult,
96
+ ...testEnd,
85
97
  type,
86
98
  error: this.errorFrom(finished.outcome),
87
99
  });
88
100
  }
89
101
  else {
90
- const testResult = this.testResultEventFrom(started, finished);
91
- this.reporter.emit(testResult.type, testResult);
92
- const testEnd = this.testEndEventFrom(started, finished);
102
+ const testResultEvent = this.testResultEventFrom(started, finished);
103
+ this.reporter.emit(testResultEvent.type, testResultEvent);
104
+ testEnd = this.testEndEventFrom(started, finished);
93
105
  this.reporter.emit(testEnd.type, testEnd);
94
106
  }
107
+ return this.invokeHooks('afterTest', this.config.afterTest, [this.testFrom(started), WebdriverIONotifier.dummmyContext, this.testResultFrom(started, finished)]);
95
108
  }
96
109
  willBeRetried(outcome) {
97
110
  return outcome instanceof model_1.ExecutionIgnored;
98
111
  }
99
- testStartEventFrom(started) {
100
- const title = started.details.name.value
112
+ testShortTitleFrom(started) {
113
+ return started.details.name.value
101
114
  .replace(new RegExp(`^.*?(${this.parentSuiteName()})`), '')
102
115
  .trim();
116
+ }
117
+ testFrom(started) {
118
+ const title = this.testShortTitleFrom(started);
119
+ return {
120
+ ctx: WebdriverIONotifier.dummmyContext,
121
+ file: started.details.location.path.value,
122
+ fullName: this.suiteNamesConcatenatedWith(title),
123
+ fullTitle: this.suiteNamesConcatenatedWith(title),
124
+ parent: this.parentSuiteName(),
125
+ pending: false,
126
+ title,
127
+ type: 'test' // I _think_ it's either 'test' or 'hook' - https://github.com/mochajs/mocha/blob/0ea732c1169c678ef116c3eb452cc94758fff150/lib/test.js#L31
128
+ };
129
+ }
130
+ testStartEventFrom(started) {
131
+ const title = this.testShortTitleFrom(started);
103
132
  return {
104
133
  type: 'test:start',
105
134
  title,
@@ -116,6 +145,90 @@ class WebdriverIONotifier {
116
145
  var _a;
117
146
  return ((_a = this.suites[this.suites.length - 1]) === null || _a === void 0 ? void 0 : _a.name.value) || '';
118
147
  }
148
+ /**
149
+ * test status is 'passed' | 'pending' | 'skipped' | 'failed' | 'broken' | 'canceled'
150
+ * Since this is not documented, we're mimicking other WebdriverIO reporters, for example:
151
+ * https://github.com/webdriverio/webdriverio/blob/7415f3126e15a733b51721492e4995ceafae6046/packages/wdio-allure-reporter/src/constants.ts#L3-L9
152
+ *
153
+ * @param started
154
+ * @param finished
155
+ * @private
156
+ */
157
+ testResultFrom(started, finished) {
158
+ const duration = finished.timestamp.diff(started.timestamp).inMilliseconds();
159
+ const defaultRetries = { attempts: 0, limit: 0 };
160
+ const passedOrFailed = (outcome) => this.whenSuccessful(outcome, true, false);
161
+ return (0, tiny_types_1.match)(finished.outcome)
162
+ .when(model_1.ExecutionCompromised, (outcome) => {
163
+ const error = this.errorFrom(outcome);
164
+ return {
165
+ duration,
166
+ error,
167
+ exception: error.message,
168
+ passed: passedOrFailed(outcome),
169
+ status: 'broken',
170
+ retries: defaultRetries
171
+ };
172
+ })
173
+ .when(model_1.ExecutionFailedWithError, (outcome) => {
174
+ const error = this.errorFrom(outcome);
175
+ return {
176
+ duration,
177
+ error,
178
+ exception: error.message,
179
+ passed: passedOrFailed(outcome),
180
+ status: 'broken',
181
+ retries: defaultRetries
182
+ };
183
+ })
184
+ .when(model_1.ExecutionFailedWithAssertionError, (outcome) => {
185
+ const error = this.errorFrom(outcome);
186
+ return {
187
+ duration,
188
+ error,
189
+ exception: error.message,
190
+ passed: passedOrFailed(outcome),
191
+ status: 'failed',
192
+ retries: defaultRetries
193
+ };
194
+ })
195
+ .when(model_1.ImplementationPending, (outcome) => {
196
+ const error = this.errorFrom(outcome);
197
+ return {
198
+ duration,
199
+ error,
200
+ exception: error.message,
201
+ passed: passedOrFailed(outcome),
202
+ status: 'pending',
203
+ retries: defaultRetries
204
+ };
205
+ })
206
+ .when(model_1.ExecutionIgnored, (outcome) => {
207
+ const error = this.errorFrom(outcome);
208
+ return {
209
+ duration,
210
+ error,
211
+ exception: error.message,
212
+ passed: passedOrFailed(outcome),
213
+ status: 'canceled',
214
+ retries: defaultRetries // consider capturing info about retries from Mocha and putting it on the ExecutionIgnored event so we can pass it on
215
+ };
216
+ })
217
+ .when(model_1.ExecutionSkipped, (outcome) => ({
218
+ duration,
219
+ exception: '',
220
+ passed: passedOrFailed(outcome),
221
+ status: 'skipped',
222
+ retries: defaultRetries
223
+ }))
224
+ .else(() => ({
225
+ duration,
226
+ exception: '',
227
+ passed: true,
228
+ status: 'passed',
229
+ retries: defaultRetries
230
+ }));
231
+ }
119
232
  testEndEventFrom(started, finished) {
120
233
  const duration = finished.timestamp.diff(started.timestamp).inMilliseconds();
121
234
  return {
@@ -124,11 +237,14 @@ class WebdriverIONotifier {
124
237
  duration
125
238
  };
126
239
  }
240
+ whenSuccessful(outcome, resultWhenSuccessful, resultWhenNotSuccessful) {
241
+ return !outcome.isWorseThan(this.successThreshold) && (outcome instanceof model_1.ProblemIndication)
242
+ ? resultWhenSuccessful
243
+ : resultWhenNotSuccessful;
244
+ }
127
245
  testResultEventFrom(started, finished) {
128
246
  const test = this.testEndEventFrom(started, finished);
129
- const unlessSuccessful = (outcome, type) => !outcome.isWorseThan(this.successThreshold) && (outcome instanceof model_1.ProblemIndication)
130
- ? 'test:pass'
131
- : type;
247
+ const unlessSuccessful = (outcome, type) => this.whenSuccessful(outcome, 'test:pass', type);
132
248
  return (0, tiny_types_1.match)(finished.outcome)
133
249
  .when(model_1.ExecutionCompromised, (outcome) => ({
134
250
  ...test,
@@ -185,8 +301,53 @@ class WebdriverIONotifier {
185
301
  actual: error.actual
186
302
  };
187
303
  }
304
+ /**
305
+ * @see https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-utils/src/shim.ts
306
+ * @param hookName
307
+ * @param hookFunctions
308
+ * @param args
309
+ * @private
310
+ */
311
+ invokeHooks(hookName, hookFunctions, args) {
312
+ const hooks = !Array.isArray(hookFunctions)
313
+ ? [hookFunctions]
314
+ : hookFunctions;
315
+ const asyncOperationId = model_1.CorrelationId.create();
316
+ this.stage.announce(new events_1.AsyncOperationAttempted(new model_1.Description(`[WebdriverIONotifier#invokeHooks] Invoking ${hookName} hook`), asyncOperationId));
317
+ return Promise.all(hooks.map((hook) => new Promise((resolve) => {
318
+ let result;
319
+ try {
320
+ result = hook(...args);
321
+ }
322
+ catch (error) {
323
+ return resolve(error);
324
+ }
325
+ /**
326
+ * if a promise is returned make sure we don't have a catch handler
327
+ * so in case of a rejection it won't cause the hook to fail
328
+ */
329
+ if (result && typeof result.then === 'function') {
330
+ return result.then(resolve, (error) => {
331
+ resolve(error);
332
+ });
333
+ }
334
+ resolve(result);
335
+ }))).
336
+ then(results => {
337
+ this.stage.announce(new events_1.AsyncOperationCompleted(new model_1.Description(`[WebdriverIONotifier#invokeHooks] Invoking ${hookName} hook completed`), asyncOperationId));
338
+ return results;
339
+ });
340
+ }
188
341
  }
189
342
  exports.WebdriverIONotifier = WebdriverIONotifier;
343
+ /**
344
+ * We don't have access to the "context" object produced by Mocha,
345
+ * and can't assume that other test runners have a similar concept.
346
+ * Since, at the time of writing, none of the WebdriverIO rely on this parameter
347
+ * using a dummy seems to be sufficient.
348
+ * @private
349
+ */
350
+ WebdriverIONotifier.dummmyContext = {};
190
351
  class EventLog {
191
352
  constructor() {
192
353
  this.events = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIONotifier.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIONotifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebdriverIONotifier.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIONotifier.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -2,7 +2,4 @@ import { WebdriverIOFrameworkAdapterFactory } from './adapter';
2
2
  declare const adapterFactory: WebdriverIOFrameworkAdapterFactory;
3
3
  export default adapterFactory;
4
4
  export { WebdriverIOConfig } from './adapter';
5
- export * from './expectations';
6
- export * from './input';
7
5
  export * from './screenplay';
8
- export * from './stage';
package/lib/index.js CHANGED
@@ -15,8 +15,5 @@ const io_1 = require("@serenity-js/core/lib/io");
15
15
  const adapter_1 = require("./adapter");
16
16
  const adapterFactory = new adapter_1.WebdriverIOFrameworkAdapterFactory(core_1.serenity, new io_1.ModuleLoader(process.cwd()), io_1.Path.from(process.cwd()));
17
17
  exports.default = adapterFactory;
18
- __exportStar(require("./expectations"), exports);
19
- __exportStar(require("./input"), exports);
20
18
  __exportStar(require("./screenplay"), exports);
21
- __exportStar(require("./stage"), exports);
22
19
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA6C;AAC7C,iDAA8D;AAE9D,uCAA+D;AAE/D,MAAM,cAAc,GAAG,IAAI,4CAAkC,CACzD,eAAQ,EACR,IAAI,iBAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAC/B,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAC3B,CAAC;AAEF,kBAAe,cAAc,CAAC;AAG9B,iDAA+B;AAC/B,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA6C;AAC7C,iDAA8D;AAE9D,uCAA+D;AAE/D,MAAM,cAAc,GAAG,IAAI,4CAAkC,CACzD,eAAQ,EACR,IAAI,iBAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAC/B,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAC3B,CAAC;AAEF,kBAAe,cAAc,CAAC;AAG9B,+CAA6B"}
@@ -1,6 +1,7 @@
1
- import { Ability, UsesAbilities } from '@serenity-js/core';
2
- import type { Browser } from 'webdriverio';
3
- import { Key } from '../../input';
1
+ import { Duration, UsesAbilities } from '@serenity-js/core';
2
+ import { BrowserCapabilities, BrowseTheWeb, Cookie, CookieData, Key, ModalDialog, NativeElementLocator, Page, PageElement, Selector } from '@serenity-js/web';
3
+ import type * as wdio from 'webdriverio';
4
+ import { WebdriverIOPageElement } from '../models';
4
5
  /**
5
6
  * @desc
6
7
  * An {@link @serenity-js/core/lib/screenplay~Ability} that enables the {@link @serenity-js/core/lib/screenplay/actor~Actor}
@@ -10,8 +11,6 @@ import { Key } from '../../input';
10
11
  * This means that its interface can change without affecting the major version of Serenity/JS itself.
11
12
  * In particular, please don't rely on the `browser` field to remain `public` in future releases.
12
13
  *
13
- * @experimental
14
- *
15
14
  * @example <caption>Using the WebdriverIO browser</caption>
16
15
  * import { Actor } from '@serenity-js/core';
17
16
  * import { BrowseTheWeb, by, Navigate, Target } from '@serenity-js/webdriverio'
@@ -36,31 +35,38 @@ import { Key } from '../../input';
36
35
  * @implements {@serenity-js/core/lib/screenplay~Ability}
37
36
  * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
38
37
  */
39
- export declare class BrowseTheWeb implements Ability {
40
- readonly browser: Browser<'async'>;
41
- /**
42
- * @private
43
- */
44
- private lastScriptExecutionSummary;
38
+ export declare class BrowseTheWebWithWebdriverIO extends BrowseTheWeb<wdio.Element<'async'>> {
39
+ readonly browser: wdio.Browser<'async'>;
45
40
  /**
46
41
  * @param {@wdio/types~Browser} browserInstance
47
- * @returns {BrowseTheWeb}
42
+ * @returns {BrowseTheWebWithWebdriverIO}
48
43
  */
49
- static using(browserInstance: Browser<'async'>): BrowseTheWeb;
44
+ static using(browserInstance: wdio.Browser<'async'>): BrowseTheWebWithWebdriverIO;
50
45
  /**
51
46
  * @desc
52
- * Used to access the Actor's ability to {@link BrowseTheWeb}
47
+ * Used to access the Actor's ability to {@link BrowseTheWebWithWebdriverIO}
53
48
  * from within the {@link @serenity-js/core/lib/screenplay~Interaction} classes,
54
- * such as {@link Navigate}.
49
+ * such as {@link @serenity-js/web/lib/screenplay/interactions~Navigate}.
55
50
  *
56
51
  * @param {@serenity-js/core/lib/screenplay/actor~UsesAbilities} actor
57
- * @return {BrowseTheWeb}
52
+ * @return {BrowseTheWebWithWebdriverIO}
58
53
  */
59
- static as(actor: UsesAbilities): BrowseTheWeb;
54
+ static as(actor: UsesAbilities): BrowseTheWebWithWebdriverIO;
55
+ /**
56
+ * @private
57
+ */
58
+ private lastScriptExecutionSummary;
60
59
  /**
61
60
  * @param {@wdio/types~Browser} browser
62
61
  */
63
- constructor(browser: Browser<'async'>);
62
+ constructor(browser: wdio.Browser<'async'>);
63
+ browserCapabilities(): Promise<BrowserCapabilities>;
64
+ cookie(name: string): Promise<Cookie>;
65
+ setCookie(cookieData: CookieData): Promise<void>;
66
+ deleteAllCookies(): Promise<void>;
67
+ locate<T>(selector: Selector<T>, locator?: NativeElementLocator<wdio.Element<'async'>>): WebdriverIOPageElement;
68
+ locateAll<T>(selector: Selector<T>, locator?: NativeElementLocator<wdio.Element<'async'>>): Promise<WebdriverIOPageElement[]>;
69
+ nativeElementLocator(): NativeElementLocator<wdio.Element<'async'>>;
64
70
  /**
65
71
  * @desc
66
72
  * Navigate to a given destination, specified as an absolute URL
@@ -69,7 +75,29 @@ export declare class BrowseTheWeb implements Ability {
69
75
  * @param {string} destination
70
76
  * @returns {Promise<void>}
71
77
  */
72
- get(destination: string): Promise<void>;
78
+ navigateTo(destination: string): Promise<void>;
79
+ navigateBack(): Promise<void>;
80
+ navigateForward(): Promise<void>;
81
+ reloadPage(): Promise<void>;
82
+ /**
83
+ * @desc
84
+ * Returns a {@link Page} representing the currently active top-level browsing context.
85
+ *
86
+ * @returns {Promise<Page>}
87
+ */
88
+ currentPage(): Promise<Page>;
89
+ /**
90
+ * @desc
91
+ * Returns an array of {@link Page} objects representing all the available
92
+ * top-level browsing context, e.g. all the open browser tabs.
93
+ *
94
+ * @returns {Promise<Array<Page>>}
95
+ */
96
+ allPages(): Promise<Array<Page>>;
97
+ modalDialog(): Promise<ModalDialog>;
98
+ switchToFrame(targetOrIndex: PageElement | number | string): Promise<void>;
99
+ switchToParentFrame(): Promise<void>;
100
+ switchToDefaultContent(): Promise<void>;
73
101
  /**
74
102
  * @desc
75
103
  * Send a sequence of {@link Key} strokes to the active element.
@@ -143,7 +171,7 @@ export declare class BrowseTheWeb implements Ability {
143
171
  * Arrays and objects may also be used as script arguments as long as each item adheres
144
172
  * to the types previously mentioned.
145
173
  *
146
- * Unlike executing synchronous JavaScript with {@link BrowseTheWeb#executeScript},
174
+ * Unlike executing synchronous JavaScript with {@link BrowseTheWebWithWebdriverIO#executeScript},
147
175
  * scripts executed with this function must explicitly signal they are finished by invoking the provided callback.
148
176
  *
149
177
  * This callback will always be injected into the executed function as the last argument,
@@ -185,10 +213,12 @@ export declare class BrowseTheWeb implements Ability {
185
213
  executeAsyncScript<Result, Parameters extends any[]>(script: string | ((...args: [...parameters: Parameters, callback: (result: Result) => void]) => void), ...args: Parameters): Promise<Result>;
186
214
  /**
187
215
  * @desc
188
- * Returns the last result of calling {@link BrowseTheWeb#executeAsyncScript}
189
- * or {@link BrowseTheWeb#executeScript}
216
+ * Returns the last result of calling {@link BrowseTheWebWithWebdriverIO#executeAsyncScript}
217
+ * or {@link BrowseTheWebWithWebdriverIO#executeScript}
190
218
  *
191
219
  * @returns {any}
192
220
  */
193
- getLastScriptExecutionResult<Result = any>(): Result;
221
+ lastScriptExecutionResult<Result = any>(): Result;
222
+ waitFor(duration: Duration): Promise<void>;
223
+ waitUntil(condition: () => boolean | Promise<boolean>, timeout: Duration): Promise<void>;
194
224
  }