@serenity-js/webdriverio 3.1.6 → 3.2.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 (270) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +91 -41
  3. package/esm/adapter/TestRunnerLoader.d.ts +16 -0
  4. package/esm/adapter/TestRunnerLoader.d.ts.map +1 -0
  5. package/esm/adapter/TestRunnerLoader.js +58 -0
  6. package/esm/adapter/TestRunnerLoader.js.map +1 -0
  7. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +24 -0
  8. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
  9. package/esm/adapter/WebdriverIOFrameworkAdapter.js +77 -0
  10. package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
  11. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +19 -0
  12. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
  13. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js +15 -0
  14. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
  15. package/esm/adapter/WebdriverIONotifier.d.ts +72 -0
  16. package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -0
  17. package/esm/adapter/WebdriverIONotifier.js +385 -0
  18. package/esm/adapter/WebdriverIONotifier.js.map +1 -0
  19. package/esm/adapter/index.d.ts +2 -0
  20. package/esm/adapter/index.d.ts.map +1 -0
  21. package/esm/adapter/index.js +2 -0
  22. package/esm/adapter/index.js.map +1 -0
  23. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
  24. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
  25. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js +41 -0
  26. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
  27. package/esm/adapter/reporter/InitialisesReporters.d.ts +8 -0
  28. package/esm/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
  29. package/esm/adapter/reporter/InitialisesReporters.js +2 -0
  30. package/esm/adapter/reporter/InitialisesReporters.js.map +1 -0
  31. package/esm/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
  32. package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
  33. package/esm/adapter/reporter/OutputStreamBuffer.js +24 -0
  34. package/esm/adapter/reporter/OutputStreamBuffer.js.map +1 -0
  35. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
  36. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
  37. package/esm/adapter/reporter/OutputStreamBufferPrinter.js +21 -0
  38. package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
  39. package/esm/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
  40. package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
  41. package/esm/adapter/reporter/ProvidesWriteStream.js +2 -0
  42. package/esm/adapter/reporter/ProvidesWriteStream.js.map +1 -0
  43. package/esm/adapter/reporter/TagPrinter.d.ts +17 -0
  44. package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -0
  45. package/esm/adapter/reporter/TagPrinter.js +52 -0
  46. package/esm/adapter/reporter/TagPrinter.js.map +1 -0
  47. package/esm/adapter/reporter/index.d.ts +6 -0
  48. package/esm/adapter/reporter/index.d.ts.map +1 -0
  49. package/esm/adapter/reporter/index.js +6 -0
  50. package/esm/adapter/reporter/index.js.map +1 -0
  51. package/esm/api.d.ts +3 -0
  52. package/esm/api.d.ts.map +1 -0
  53. package/esm/api.js +2 -0
  54. package/esm/api.js.map +1 -0
  55. package/esm/config/WebdriverIOConfig.d.ts.map +1 -0
  56. package/esm/config/WebdriverIOConfig.js +2 -0
  57. package/esm/config/WebdriverIOConfig.js.map +1 -0
  58. package/esm/config/index.d.ts +2 -0
  59. package/esm/config/index.d.ts.map +1 -0
  60. package/esm/config/index.js +2 -0
  61. package/esm/config/index.js.map +1 -0
  62. package/esm/index.d.ts +16 -0
  63. package/esm/index.d.ts.map +1 -0
  64. package/esm/index.js +14 -0
  65. package/esm/index.js.map +1 -0
  66. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +42 -0
  67. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
  68. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +48 -0
  69. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  70. package/esm/screenplay/abilities/index.d.ts +2 -0
  71. package/esm/screenplay/abilities/index.d.ts.map +1 -0
  72. package/esm/screenplay/abilities/index.js +2 -0
  73. package/esm/screenplay/abilities/index.js.map +1 -0
  74. package/esm/screenplay/index.d.ts +3 -0
  75. package/esm/screenplay/index.d.ts.map +1 -0
  76. package/esm/screenplay/index.js +3 -0
  77. package/esm/screenplay/index.js.map +1 -0
  78. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +24 -0
  79. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
  80. package/esm/screenplay/models/WebdriverIOBrowsingSession.js +121 -0
  81. package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
  82. package/esm/screenplay/models/WebdriverIOCookie.d.ts +14 -0
  83. package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
  84. package/esm/screenplay/models/WebdriverIOCookie.js +40 -0
  85. package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -0
  86. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
  87. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
  88. package/esm/screenplay/models/WebdriverIOErrorHandler.js +19 -0
  89. package/esm/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
  90. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +29 -0
  91. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
  92. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js +73 -0
  93. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
  94. package/esm/screenplay/models/WebdriverIOPage.d.ts +48 -0
  95. package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
  96. package/esm/screenplay/models/WebdriverIOPage.js +203 -0
  97. package/esm/screenplay/models/WebdriverIOPage.js.map +1 -0
  98. package/esm/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
  99. package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
  100. package/esm/screenplay/models/WebdriverIOPageElement.js +205 -0
  101. package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  102. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +32 -0
  103. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
  104. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +78 -0
  105. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
  106. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
  107. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
  108. package/esm/screenplay/models/WebdriverProtocolErrorCode.js +40 -0
  109. package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
  110. package/esm/screenplay/models/index.d.ts +5 -0
  111. package/esm/screenplay/models/index.d.ts.map +1 -0
  112. package/esm/screenplay/models/index.js +5 -0
  113. package/esm/screenplay/models/index.js.map +1 -0
  114. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +22 -0
  115. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
  116. package/esm/screenplay/models/locators/WebdriverIOLocator.js +97 -0
  117. package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  118. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
  119. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
  120. package/esm/screenplay/models/locators/WebdriverIORootLocator.js +28 -0
  121. package/esm/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
  122. package/esm/screenplay/models/locators/index.d.ts +3 -0
  123. package/esm/screenplay/models/locators/index.d.ts.map +1 -0
  124. package/esm/screenplay/models/locators/index.js +3 -0
  125. package/esm/screenplay/models/locators/index.js.map +1 -0
  126. package/lib/adapter/TestRunnerLoader.d.ts +3 -3
  127. package/lib/adapter/TestRunnerLoader.d.ts.map +1 -1
  128. package/lib/adapter/TestRunnerLoader.js +8 -8
  129. package/lib/adapter/TestRunnerLoader.js.map +1 -1
  130. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +5 -4
  131. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -1
  132. package/lib/adapter/WebdriverIOFrameworkAdapter.js +51 -21
  133. package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
  134. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +5 -5
  135. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -1
  136. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js +2 -2
  137. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -1
  138. package/lib/adapter/WebdriverIONotifier.d.ts +6 -6
  139. package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -1
  140. package/lib/adapter/WebdriverIONotifier.js +48 -24
  141. package/lib/adapter/WebdriverIONotifier.js.map +1 -1
  142. package/lib/adapter/index.d.ts +1 -2
  143. package/lib/adapter/index.d.ts.map +1 -1
  144. package/lib/adapter/index.js +1 -2
  145. package/lib/adapter/index.js.map +1 -1
  146. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +1 -1
  147. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -1
  148. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js +4 -4
  149. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -1
  150. package/lib/adapter/reporter/InitialisesReporters.d.ts +2 -2
  151. package/lib/adapter/reporter/InitialisesReporters.d.ts.map +1 -1
  152. package/lib/adapter/reporter/OutputStreamBuffer.d.ts +1 -1
  153. package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -1
  154. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +3 -3
  155. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -1
  156. package/lib/adapter/reporter/OutputStreamBufferPrinter.js +2 -2
  157. package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -1
  158. package/lib/adapter/reporter/ProvidesWriteStream.d.ts +1 -1
  159. package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -1
  160. package/lib/adapter/reporter/TagPrinter.d.ts +2 -2
  161. package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -1
  162. package/lib/adapter/reporter/TagPrinter.js +7 -5
  163. package/lib/adapter/reporter/TagPrinter.js.map +1 -1
  164. package/lib/adapter/reporter/index.d.ts +5 -5
  165. package/lib/adapter/reporter/index.d.ts.map +1 -1
  166. package/lib/adapter/reporter/index.js +5 -5
  167. package/lib/adapter/reporter/index.js.map +1 -1
  168. package/lib/api.d.ts +3 -0
  169. package/lib/api.d.ts.map +1 -0
  170. package/lib/api.js +18 -0
  171. package/lib/api.js.map +1 -0
  172. package/lib/config/WebdriverIOConfig.d.ts +128 -0
  173. package/lib/config/WebdriverIOConfig.d.ts.map +1 -0
  174. package/lib/config/WebdriverIOConfig.js.map +1 -0
  175. package/lib/config/index.d.ts +2 -0
  176. package/lib/config/index.d.ts.map +1 -0
  177. package/lib/config/index.js +18 -0
  178. package/lib/config/index.js.map +1 -0
  179. package/lib/index.d.ts +15 -5
  180. package/lib/index.d.ts.map +1 -1
  181. package/lib/index.js +12 -5
  182. package/lib/index.js.map +1 -1
  183. package/lib/package.json +1 -0
  184. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +5 -5
  185. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -1
  186. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +2 -2
  187. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -1
  188. package/lib/screenplay/abilities/index.d.ts +1 -1
  189. package/lib/screenplay/abilities/index.d.ts.map +1 -1
  190. package/lib/screenplay/abilities/index.js +1 -1
  191. package/lib/screenplay/abilities/index.js.map +1 -1
  192. package/lib/screenplay/index.d.ts +2 -2
  193. package/lib/screenplay/index.d.ts.map +1 -1
  194. package/lib/screenplay/index.js +2 -2
  195. package/lib/screenplay/index.js.map +1 -1
  196. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +4 -4
  197. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -1
  198. package/lib/screenplay/models/WebdriverIOBrowsingSession.js +12 -12
  199. package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -1
  200. package/lib/screenplay/models/WebdriverIOCookie.d.ts +2 -2
  201. package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -1
  202. package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -1
  203. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +1 -1
  204. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -1
  205. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +3 -3
  206. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -1
  207. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js +3 -3
  208. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -1
  209. package/lib/screenplay/models/WebdriverIOPage.d.ts +9 -9
  210. package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -1
  211. package/lib/screenplay/models/WebdriverIOPage.js +9 -12
  212. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -1
  213. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +2 -2
  214. package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -1
  215. package/lib/screenplay/models/WebdriverIOPageElement.js +16 -15
  216. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -1
  217. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +1 -1
  218. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -1
  219. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -1
  220. package/lib/screenplay/models/index.d.ts +4 -4
  221. package/lib/screenplay/models/index.d.ts.map +1 -1
  222. package/lib/screenplay/models/index.js +4 -4
  223. package/lib/screenplay/models/index.js.map +1 -1
  224. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +10 -10
  225. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -1
  226. package/lib/screenplay/models/locators/WebdriverIOLocator.js +3 -3
  227. package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -1
  228. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts +5 -5
  229. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -1
  230. package/lib/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -1
  231. package/lib/screenplay/models/locators/index.d.ts +2 -2
  232. package/lib/screenplay/models/locators/index.d.ts.map +1 -1
  233. package/lib/screenplay/models/locators/index.js +2 -2
  234. package/lib/screenplay/models/locators/index.js.map +1 -1
  235. package/package.json +40 -43
  236. package/src/adapter/TestRunnerLoader.ts +15 -10
  237. package/src/adapter/WebdriverIOFrameworkAdapter.ts +39 -26
  238. package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +4 -4
  239. package/src/adapter/WebdriverIONotifier.ts +37 -14
  240. package/src/adapter/index.ts +1 -2
  241. package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +4 -4
  242. package/src/adapter/reporter/InitialisesReporters.ts +2 -2
  243. package/src/adapter/reporter/OutputStreamBuffer.ts +1 -1
  244. package/src/adapter/reporter/OutputStreamBufferPrinter.ts +3 -3
  245. package/src/adapter/reporter/ProvidesWriteStream.ts +1 -1
  246. package/src/adapter/reporter/TagPrinter.ts +6 -4
  247. package/src/adapter/reporter/index.ts +5 -5
  248. package/src/api.ts +2 -0
  249. package/src/config/index.ts +1 -0
  250. package/src/index.ts +27 -10
  251. package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +5 -5
  252. package/src/screenplay/abilities/index.ts +1 -1
  253. package/src/screenplay/index.ts +2 -2
  254. package/src/screenplay/models/WebdriverIOBrowsingSession.ts +8 -8
  255. package/src/screenplay/models/WebdriverIOCookie.ts +2 -2
  256. package/src/screenplay/models/WebdriverIOErrorHandler.ts +1 -1
  257. package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +4 -4
  258. package/src/screenplay/models/WebdriverIOPage.ts +11 -15
  259. package/src/screenplay/models/WebdriverIOPageElement.ts +21 -21
  260. package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +8 -3
  261. package/src/screenplay/models/index.ts +4 -4
  262. package/src/screenplay/models/locators/WebdriverIOLocator.ts +17 -17
  263. package/src/screenplay/models/locators/WebdriverIORootLocator.ts +5 -5
  264. package/src/screenplay/models/locators/index.ts +2 -2
  265. package/lib/adapter/WebdriverIOConfig.d.ts.map +0 -1
  266. package/lib/adapter/WebdriverIOConfig.js.map +0 -1
  267. package/tsconfig.build.json +0 -17
  268. /package/{lib/adapter → esm/config}/WebdriverIOConfig.d.ts +0 -0
  269. /package/lib/{adapter → config}/WebdriverIOConfig.js +0 -0
  270. /package/src/{adapter → config}/WebdriverIOConfig.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagPrinter.d.ts","sourceRoot":"","sources":["../../../src/adapter/reporter/TagPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,GAAG,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,mBAAmB,GAAG,YAAY,CAAC,eAAe,GAAG,GAAG,EAAE;IAS3F,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,KAAK;CAGhB"}
@@ -0,0 +1,52 @@
1
+ import { BrowserTag, PlatformTag } from '@serenity-js/core/lib/model/index.js';
2
+ /**
3
+ * @package
4
+ */
5
+ export class TagPrinter {
6
+ tagsFor(capability) {
7
+ const desiredCapabilities = this.desired(capability);
8
+ return [
9
+ this.browserTagFor(desiredCapabilities),
10
+ this.platformTagFor(desiredCapabilities),
11
+ ];
12
+ }
13
+ browserTagFor(capabilities) {
14
+ return new BrowserTag(this.browserNameFrom(capabilities), this.browserVersionFrom(capabilities));
15
+ }
16
+ platformTagFor(capabilities) {
17
+ return new PlatformTag(this.platformNameFrom(capabilities), this.platformVersionFrom(capabilities));
18
+ }
19
+ browserNameFrom(capabilities) {
20
+ return capabilities.browserName
21
+ || capabilities.browser
22
+ || (capabilities['appium:app'] && capabilities['appium:app'].replace('sauce-storage:', ''))
23
+ || 'unknown';
24
+ }
25
+ browserVersionFrom(capabilities) {
26
+ return capabilities.deviceName // mobile web
27
+ || capabilities['appium:deviceName']
28
+ || capabilities.browserVersion // W3C format
29
+ || capabilities.version // JSONWP format
30
+ || capabilities.browser_version; // BrowserStack
31
+ }
32
+ platformNameFrom(capabilities) {
33
+ return capabilities.platformName
34
+ || capabilities['appium:platformName']
35
+ || capabilities.platform
36
+ || capabilities.os
37
+ || 'unknown';
38
+ }
39
+ platformVersionFrom(capabilities) {
40
+ return capabilities['appium:platformVersion']
41
+ || capabilities.os_version;
42
+ }
43
+ desired(capabilities) {
44
+ return this.isW3C(capabilities)
45
+ ? capabilities.alwaysMatch
46
+ : capabilities;
47
+ }
48
+ isW3C(capabilities) {
49
+ return !!capabilities.alwaysMatch;
50
+ }
51
+ }
52
+ //# sourceMappingURL=TagPrinter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagPrinter.js","sourceRoot":"","sources":["../../../src/adapter/reporter/TagPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAO,MAAM,sCAAsC,CAAC;AAGpF;;GAEG;AACH,MAAM,OAAO,UAAU;IACnB,OAAO,CAAC,UAA2E;QAC/E,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAErD,OAAO;YACH,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;SAC3C,CAAC;IACN,CAAC;IAEO,aAAa,CAAC,YAA8C;QAChE,OAAO,IAAI,UAAU,CACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAClC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CACxC,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,YAA8C;QACjE,OAAO,IAAI,WAAW,CAClB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACnC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CACzC,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,YAA8C;QAClE,OAAO,YAAY,CAAC,WAAW;eACxB,YAAY,CAAC,OAAO;eACpB,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;eACxF,SAAS,CAAC;IACrB,CAAC;IAEO,kBAAkB,CAAC,YAA8C;QACrE,OAAO,YAAY,CAAC,UAAU,CAAU,aAAa;eAC9C,YAAY,CAAC,mBAAmB,CAAC;eACjC,YAAY,CAAC,cAAc,CAAM,aAAa;eAC9C,YAAY,CAAC,OAAO,CAAa,gBAAgB;eACjD,YAAY,CAAC,eAAe,CAAC,CAAI,eAAe;IAC3D,CAAC;IAEO,gBAAgB,CAAC,YAA8C;QACnE,OAAO,YAAY,CAAC,YAAY;eACzB,YAAY,CAAC,qBAAqB,CAAC;eACnC,YAAY,CAAC,QAAQ;eACrB,YAAY,CAAC,EAAE;eACf,SAAS,CAAC;IACrB,CAAC;IAEO,mBAAmB,CAAC,YAA8C;QACtE,OAAO,YAAY,CAAC,wBAAwB,CAAC;eACtC,YAAY,CAAC,UAAU,CAAC;IACnC,CAAC;IAEO,OAAO,CAAC,YAA2C;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YAC3B,CAAC,CAAC,YAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,YAAY,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,YAA2C;QACrD,OAAO,CAAC,CAAE,YAA6C,CAAC,WAAW,CAAC;IACxE,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ export * from './BrowserCapabilitiesReporter.js';
2
+ export * from './InitialisesReporters.js';
3
+ export * from './OutputStreamBuffer.js';
4
+ export * from './ProvidesWriteStream.js';
5
+ export * from './TagPrinter.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapter/reporter/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './BrowserCapabilitiesReporter.js';
2
+ export * from './InitialisesReporters.js';
3
+ export * from './OutputStreamBuffer.js';
4
+ export * from './ProvidesWriteStream.js';
5
+ export * from './TagPrinter.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/reporter/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
package/esm/api.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { WebdriverIOConfig } from './config/index.js';
2
+ export * from './screenplay/index.js';
3
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,cAAc,uBAAuB,CAAC"}
package/esm/api.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './screenplay/index.js';
2
+ //# sourceMappingURL=api.js.map
package/esm/api.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOConfig.d.ts","sourceRoot":"","sources":["../../src/config/WebdriverIOConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,UAAU;IAEzD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,cAAc,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WebdriverIOConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOConfig.js","sourceRoot":"","sources":["../../src/config/WebdriverIOConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './WebdriverIOConfig.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './WebdriverIOConfig.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { Capabilities } from '@wdio/types';
2
+ import { EventEmitter } from 'events';
3
+ import { InitialisesReporters, ProvidesWriteStream } from './adapter/reporter/index.js';
4
+ import { WebdriverIOConfig } from './config/index.js';
5
+ /**
6
+ * WebdriverIO Framework Adapter integrates WebdriverIO with Serenity/JS
7
+ */
8
+ declare const _default: {
9
+ init(cid: string, config: WebdriverIOConfig, specs: string[], capabilities: Capabilities.RemoteCapability, reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters): Promise<{
10
+ hasTests: () => boolean;
11
+ run: () => Promise<number>;
12
+ }>;
13
+ };
14
+ export default _default;
15
+ export * from './api.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;;cAGU,MAAM,UACH,iBAAiB,SAClB,MAAM,EAAE,gBACD,aAAa,gBAAgB,YACjC,YAAY,GAAG,mBAAmB,GAAG,oBAAoB,GACpE,QAAQ;QAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,QAAQ,MAAM,CAAC,CAAA;KAAE,CAAC;;AAPvE,wBAkBE;AAEF,cAAc,UAAU,CAAC"}
package/esm/index.js ADDED
@@ -0,0 +1,14 @@
1
+ import { serenity } from '@serenity-js/core';
2
+ import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
3
+ /**
4
+ * WebdriverIO Framework Adapter integrates WebdriverIO with Serenity/JS
5
+ */
6
+ export default {
7
+ async init(cid, config, specs, capabilities, reporter) {
8
+ const { WebdriverIOFrameworkAdapterFactory } = await import('./adapter/index.js');
9
+ const adapterFactory = new WebdriverIOFrameworkAdapterFactory(serenity, new ModuleLoader(process.cwd()), Path.from(process.cwd()));
10
+ return adapterFactory.init(cid, config, specs, capabilities, reporter);
11
+ }
12
+ };
13
+ export * from './api.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAOvE;;GAEG;AACH,eAAe;IACX,KAAK,CAAC,IAAI,CACN,GAAW,EACX,MAAyB,EACzB,KAAe,EACf,YAA2C,EAC3C,QAAmE;QAEnE,MAAM,EAAE,kCAAkC,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAElF,MAAM,cAAc,GAAG,IAAI,kCAAkC,CACzD,QAAQ,EACR,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAC3B,CAAC;QAEF,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACJ,CAAC;AAEF,cAAc,UAAU,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { BrowserCapabilities, BrowseTheWeb } from '@serenity-js/web';
2
+ import type { Browser, Element } from 'webdriverio';
3
+ /**
4
+ * This implementation of the {@apilink Ability|ability} to {@apilink BrowseTheWeb}
5
+ * enables the {@apilink Actor} to interact with web front-ends using [WebdriverIO](https://webdriver.io/).
6
+ *
7
+ * ## Using WebdriverIO to `BrowseTheWeb`
8
+ *
9
+ * ```ts
10
+ * import { actorCalled } from '@serenity-js/core'
11
+ * import { BrowseTheWebWithWebdriverIO } from '@serenity-js/webdriverio'
12
+ * import { By, Navigate, PageElement, Text } from '@serenity-js/web'
13
+ * import { Ensure, equals } from '@serenity-js/assertions'
14
+ *
15
+ * const HomePage = {
16
+ * title: () =>
17
+ * PageElement.located(By.css('h1')).describedAs('title')
18
+ * }
19
+ *
20
+ * await actorCalled('Wendy')
21
+ * .whoCan(BrowseTheWebWithWebdriverIO.using(browser)) // `browser` is global in WebdriverIO tests
22
+ * .attemptsTo(
23
+ * Navigate.to(`https://serenity-js.org`),
24
+ * Ensure.that(Text.of(HomePage.title()), equals('Serenity/JS')),
25
+ * );
26
+ * ```
27
+ *
28
+ * ## Learn more
29
+ * - [WebdriverIO website](https://webdriver.io/)
30
+ * - {@apilink BrowseTheWeb}
31
+ * - {@apilink Ability}
32
+ * - {@apilink Actor}
33
+ *
34
+ * @group Abilities
35
+ */
36
+ export declare class BrowseTheWebWithWebdriverIO extends BrowseTheWeb<Element> {
37
+ protected readonly browser: Browser;
38
+ static using(browserInstance: Browser): BrowseTheWebWithWebdriverIO;
39
+ constructor(browser: Browser);
40
+ browserCapabilities(): Promise<BrowserCapabilities>;
41
+ }
42
+ //# sourceMappingURL=BrowseTheWebWithWebdriverIO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowseTheWebWithWebdriverIO.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,2BAA4B,SAAQ,YAAY,CAAC,OAAO,CAAC;IAMtD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAJ/C,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,GAAG,2BAA2B;gBAIpC,OAAO,EAAE,OAAO;IAI/C,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAGtD"}
@@ -0,0 +1,48 @@
1
+ import { BrowseTheWeb } from '@serenity-js/web';
2
+ import { WebdriverIOBrowsingSession } from '../models/index.js';
3
+ /**
4
+ * This implementation of the {@apilink Ability|ability} to {@apilink BrowseTheWeb}
5
+ * enables the {@apilink Actor} to interact with web front-ends using [WebdriverIO](https://webdriver.io/).
6
+ *
7
+ * ## Using WebdriverIO to `BrowseTheWeb`
8
+ *
9
+ * ```ts
10
+ * import { actorCalled } from '@serenity-js/core'
11
+ * import { BrowseTheWebWithWebdriverIO } from '@serenity-js/webdriverio'
12
+ * import { By, Navigate, PageElement, Text } from '@serenity-js/web'
13
+ * import { Ensure, equals } from '@serenity-js/assertions'
14
+ *
15
+ * const HomePage = {
16
+ * title: () =>
17
+ * PageElement.located(By.css('h1')).describedAs('title')
18
+ * }
19
+ *
20
+ * await actorCalled('Wendy')
21
+ * .whoCan(BrowseTheWebWithWebdriverIO.using(browser)) // `browser` is global in WebdriverIO tests
22
+ * .attemptsTo(
23
+ * Navigate.to(`https://serenity-js.org`),
24
+ * Ensure.that(Text.of(HomePage.title()), equals('Serenity/JS')),
25
+ * );
26
+ * ```
27
+ *
28
+ * ## Learn more
29
+ * - [WebdriverIO website](https://webdriver.io/)
30
+ * - {@apilink BrowseTheWeb}
31
+ * - {@apilink Ability}
32
+ * - {@apilink Actor}
33
+ *
34
+ * @group Abilities
35
+ */
36
+ export class BrowseTheWebWithWebdriverIO extends BrowseTheWeb {
37
+ static using(browserInstance) {
38
+ return new BrowseTheWebWithWebdriverIO(browserInstance);
39
+ }
40
+ constructor(browser) {
41
+ super(new WebdriverIOBrowsingSession(browser));
42
+ this.browser = browser;
43
+ }
44
+ browserCapabilities() {
45
+ return Promise.resolve(this.browser.capabilities);
46
+ }
47
+ }
48
+ //# sourceMappingURL=BrowseTheWebWithWebdriverIO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowseTheWebWithWebdriverIO.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,2BAA4B,SAAQ,YAAqB;IAElE,MAAM,CAAC,KAAK,CAAC,eAAwB;QACjC,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,YAA+B,OAAgB;QAC3C,KAAK,CAAC,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QADpB,YAAO,GAAP,OAAO,CAAS;IAE/C,CAAC;IAED,mBAAmB;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAmC,CAAC,CAAC;IAC7E,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export * from './BrowseTheWebWithWebdriverIO.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './BrowseTheWebWithWebdriverIO.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './abilities/index.js';
2
+ export * from './models/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './abilities/index.js';
2
+ export * from './models/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { BrowsingSession } from '@serenity-js/web';
2
+ import type { Browser } from 'webdriverio';
3
+ import { WebdriverIOPage } from '../models/index.js';
4
+ /**
5
+ * WebdriverIO-specific implementation of {@apilink BrowsingSession}.
6
+ *
7
+ * @group Models
8
+ */
9
+ export declare class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage> {
10
+ protected readonly browser: Browser;
11
+ constructor(browser: Browser);
12
+ allPages(): Promise<Array<WebdriverIOPage>>;
13
+ /**
14
+ * @override
15
+ * @param page
16
+ */
17
+ changeCurrentPageTo(page: WebdriverIOPage): Promise<void>;
18
+ private activeWindowHandle;
19
+ currentPage(): Promise<WebdriverIOPage>;
20
+ protected registerCurrentPage(): Promise<WebdriverIOPage>;
21
+ private modalDialogHandlerFor;
22
+ private puppeteerPageFor;
23
+ }
24
+ //# sourceMappingURL=WebdriverIOBrowsingSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAsB,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe,CAAC,eAAe,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;gBAAhB,OAAO,EAAE,OAAO;IAQzC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IA8BjD;;;OAGG;IACG,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAoBjD,kBAAkB;IAmBjB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;cAwBtC,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;YAkBjD,qBAAqB;YAMrB,gBAAgB;CAuBjC"}
@@ -0,0 +1,121 @@
1
+ import { LogicError } from '@serenity-js/core';
2
+ import { CorrelationId } from '@serenity-js/core/lib/model/index.js';
3
+ import { BrowsingSession } from '@serenity-js/web';
4
+ import { WebdriverIOPage } from '../models/index.js';
5
+ import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
6
+ import { WebdriverIOModalDialogHandler } from './WebdriverIOModalDialogHandler.js';
7
+ import { WebdriverIOPuppeteerModalDialogHandler } from './WebdriverIOPuppeteerModalDialogHandler.js';
8
+ /**
9
+ * WebdriverIO-specific implementation of {@apilink BrowsingSession}.
10
+ *
11
+ * @group Models
12
+ */
13
+ export class WebdriverIOBrowsingSession extends BrowsingSession {
14
+ constructor(browser) {
15
+ super();
16
+ this.browser = browser;
17
+ if (!browser.$ || !browser.$$) {
18
+ throw new LogicError(`WebdriverIO browser object is not initialised yet, so can't be assigned to an actor. Are you trying to instantiate an actor outside of a test or a test hook?`);
19
+ }
20
+ }
21
+ async allPages() {
22
+ // scan all the active window handles and add any newly opened windows if needed
23
+ const windowHandles = await this.browser.getWindowHandles();
24
+ // remove pages that are no longer open
25
+ const closedPageIds = this.registeredPageIds()
26
+ .filter(id => !windowHandles.includes(id.value));
27
+ this.deregister(...closedPageIds);
28
+ // add any new pages that might have been opened (e.g. popup windows)
29
+ const registeredWindowHandles = new Set(this.registeredPageIds().map(id => id.value));
30
+ const newlyOpenedWindowHandles = windowHandles.filter(windowHandle => !registeredWindowHandles.has(windowHandle));
31
+ for (const newlyOpenedWindowHandle of newlyOpenedWindowHandles) {
32
+ const errorHandler = new WebdriverIOErrorHandler();
33
+ this.register(new WebdriverIOPage(this, this.browser, await this.modalDialogHandlerFor(newlyOpenedWindowHandle, errorHandler), errorHandler, new CorrelationId(newlyOpenedWindowHandle)));
34
+ }
35
+ return super.allPages();
36
+ }
37
+ /**
38
+ * @override
39
+ * @param page
40
+ */
41
+ async changeCurrentPageTo(page) {
42
+ const currentPage = await this.currentPage();
43
+ // are we already on this page?
44
+ if (currentPage.id.equals(page.id)) {
45
+ return void 0;
46
+ }
47
+ // does the new page exist, or has it been closed in the meantime by user action, script, or similar?
48
+ if (!await page.isPresent()) {
49
+ return void 0;
50
+ }
51
+ // the page seems to be legit, switch to it
52
+ await this.browser.switchToWindow(page.id.value);
53
+ // and update the cached reference
54
+ await super.changeCurrentPageTo(page);
55
+ }
56
+ async activeWindowHandle() {
57
+ try {
58
+ return await this.browser.getWindowHandle();
59
+ }
60
+ catch (error) {
61
+ // If the window is closed by user action Webdriver will still hold the reference to the closed window.
62
+ if (['NoSuchWindowError', 'no such window'].includes(error.name)) {
63
+ const allHandles = await this.browser.getWindowHandles();
64
+ if (allHandles.length > 0) {
65
+ const handle = allHandles[allHandles.length - 1];
66
+ await this.browser.switchToWindow(handle);
67
+ return handle;
68
+ }
69
+ }
70
+ throw error;
71
+ }
72
+ }
73
+ async currentPage() {
74
+ const actualCurrentPageHandle = await this.activeWindowHandle();
75
+ const actualCurrentPageId = CorrelationId.fromJSON(actualCurrentPageHandle);
76
+ if (this.currentBrowserPage && this.currentBrowserPage.id.equals(actualCurrentPageId)) {
77
+ return this.currentBrowserPage;
78
+ }
79
+ // Looks like the actual current page is not what we thought the current page was.
80
+ // Is it one of the pages we are aware of?
81
+ const allPages = await this.allPages();
82
+ const found = allPages.find(page => page.id.equals(actualCurrentPageId));
83
+ if (found) {
84
+ this.currentBrowserPage = found;
85
+ return this.currentBrowserPage;
86
+ }
87
+ // OK, so that's a handle that we haven't seen before, let's register it and set as current page.
88
+ this.currentBrowserPage = await this.registerCurrentPage();
89
+ return this.currentBrowserPage;
90
+ }
91
+ async registerCurrentPage() {
92
+ const windowHandle = await this.browser.getWindowHandle();
93
+ const errorHandler = new WebdriverIOErrorHandler();
94
+ const page = new WebdriverIOPage(this, this.browser, await this.modalDialogHandlerFor(windowHandle, errorHandler), errorHandler, new CorrelationId(windowHandle));
95
+ this.register(page);
96
+ return page;
97
+ }
98
+ async modalDialogHandlerFor(windowHandle, errorHandler) {
99
+ return this.browser.isDevTools
100
+ ? new WebdriverIOPuppeteerModalDialogHandler(await this.puppeteerPageFor(windowHandle))
101
+ : new WebdriverIOModalDialogHandler(this.browser, errorHandler);
102
+ }
103
+ async puppeteerPageFor(windowHandle) {
104
+ const puppeteer = await this.browser.getPuppeteer();
105
+ const pages = await puppeteer.pages();
106
+ const handles = await this.browser.getWindowHandles();
107
+ if (handles.length !== pages.length) {
108
+ throw new LogicError(`The number of registered Puppeteer pages doesn't match WebdriverIO window handles.`);
109
+ }
110
+ const index = handles.indexOf(windowHandle);
111
+ // We cast to `unknown` first because the version of Page in Puppeteer-core
112
+ // might be slightly out-of-sync with what the WebdriverIO uses.
113
+ // This doesn't really matter since we're only using it to work with Dialogs.
114
+ const page = pages[index];
115
+ if (!page) {
116
+ throw new LogicError(`Couldn't find Puppeteer page for WebdriverIO window handle ${windowHandle}.`);
117
+ }
118
+ return page;
119
+ }
120
+ }
121
+ //# sourceMappingURL=WebdriverIOBrowsingSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Cookie, CookieData } from '@serenity-js/web';
2
+ import type { Browser } from 'webdriverio';
3
+ /**
4
+ * WebdriverIO-specific implementation of {@apilink Cookie}.
5
+ *
6
+ * @group Models
7
+ */
8
+ export declare class WebdriverIOCookie extends Cookie {
9
+ private readonly browser;
10
+ constructor(browser: Browser, cookieName: string);
11
+ delete(): Promise<void>;
12
+ protected read(): Promise<CookieData>;
13
+ }
14
+ //# sourceMappingURL=WebdriverIOCookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOCookie.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOCookie.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAE1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,MAAM;IAGrC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO,EACjC,UAAU,EAAE,MAAM;IAMhB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;cAIb,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;CAwB9C"}
@@ -0,0 +1,40 @@
1
+ import { Timestamp } from '@serenity-js/core';
2
+ import { Cookie, CookieMissingError } from '@serenity-js/web';
3
+ import { ensure, isDefined } from 'tiny-types';
4
+ /**
5
+ * WebdriverIO-specific implementation of {@apilink Cookie}.
6
+ *
7
+ * @group Models
8
+ */
9
+ export class WebdriverIOCookie extends Cookie {
10
+ constructor(browser, cookieName) {
11
+ super(cookieName);
12
+ this.browser = browser;
13
+ ensure('browser', browser, isDefined());
14
+ }
15
+ async delete() {
16
+ await this.browser.deleteCookies(this.cookieName);
17
+ }
18
+ async read() {
19
+ const [cookie] = await this.browser.getCookies(this.cookieName);
20
+ if (!cookie) {
21
+ throw new CookieMissingError(`Cookie '${this.cookieName}' not set`);
22
+ }
23
+ // There _might_ be a bug in WDIO where the expiry date is set on "expires" rather than the "expiry" key
24
+ // and possibly another one around deserialising the timestamp, since WDIO seems to add several hundred milliseconds
25
+ // to the original expiry date
26
+ const expiry = cookie.expiry || cookie.expires;
27
+ return {
28
+ name: cookie.name,
29
+ value: cookie.value,
30
+ domain: cookie.domain,
31
+ path: cookie.path,
32
+ expiry: typeof expiry === 'number' && expiry >= 0
33
+ ? Timestamp.fromTimestampInSeconds(Math.round(expiry))
34
+ : undefined,
35
+ httpOnly: cookie.httpOnly,
36
+ secure: cookie.secure,
37
+ };
38
+ }
39
+ }
40
+ //# sourceMappingURL=WebdriverIOCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOCookie.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOCookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAc,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG/C;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,MAAM;IAEzC,YACqB,OAAgB,EACjC,UAAkB;QAElB,KAAK,CAAC,UAAU,CAAC,CAAC;QAHD,YAAO,GAAP,OAAO,CAAS;QAIjC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAES,KAAK,CAAC,IAAI;QAChB,MAAM,CAAE,MAAM,CAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElE,IAAI,CAAE,MAAM,EAAE;YACV,MAAM,IAAI,kBAAkB,CAAC,WAAY,IAAI,CAAC,UAAW,WAAW,CAAC,CAAC;SACzE;QAED,wGAAwG;QACxG,oHAAoH;QACpH,8BAA8B;QAC9B,MAAM,MAAM,GAAuB,MAAM,CAAC,MAAM,IAAK,MAAc,CAAC,OAAO,CAAC;QAE5E,OAAO;YACH,IAAI,EAAQ,MAAM,CAAC,IAAI;YACvB,KAAK,EAAO,MAAM,CAAC,KAAK;YACxB,MAAM,EAAM,MAAM,CAAC,MAAM;YACzB,IAAI,EAAQ,MAAM,CAAC,IAAI;YACvB,MAAM,EAAM,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC;gBACjD,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtD,CAAC,CAAC,SAAS;YACf,QAAQ,EAAI,MAAM,CAAC,QAAQ;YAC3B,MAAM,EAAM,MAAM,CAAC,MAAM;SAC5B,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
2
+ export declare class WebdriverIOErrorHandler {
3
+ private readonly handlers;
4
+ constructor(handlers?: Map<WebdriverProtocolErrorCode, (error: Error) => Promise<void> | void>);
5
+ executeIfHandled<T>(error: Error, action: () => Promise<T> | T): Promise<T>;
6
+ setHandlerFor(errorType: WebdriverProtocolErrorCode, handler: (error: Error) => Promise<void> | void): void;
7
+ unsetHandlerFor(errorType: WebdriverProtocolErrorCode): void;
8
+ }
9
+ //# sourceMappingURL=WebdriverIOErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,qBAAa,uBAAuB;IAEpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,GAAE,GAAG,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAa;IAGpH,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUjF,aAAa,CAAC,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAI3G,eAAe,CAAC,SAAS,EAAE,0BAA0B,GAAG,IAAI;CAG/D"}
@@ -0,0 +1,19 @@
1
+ export class WebdriverIOErrorHandler {
2
+ constructor(handlers = new Map()) {
3
+ this.handlers = handlers;
4
+ }
5
+ async executeIfHandled(error, action) {
6
+ if (!this.handlers.has(error.name)) {
7
+ throw error;
8
+ }
9
+ await this.handlers.get(error.name)(error);
10
+ return action();
11
+ }
12
+ setHandlerFor(errorType, handler) {
13
+ this.handlers.set(errorType, handler);
14
+ }
15
+ unsetHandlerFor(errorType) {
16
+ this.handlers.delete(errorType);
17
+ }
18
+ }
19
+ //# sourceMappingURL=WebdriverIOErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOErrorHandler.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOErrorHandler.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAEhC,YAA6B,WAAoF,IAAI,GAAG,EAAE;QAA7F,aAAQ,GAAR,QAAQ,CAAqF;IAC1H,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAI,KAAY,EAAE,MAA4B;QAChE,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAkC,CAAC,EAAE;YAC/D,MAAM,KAAK,CAAC;SACf;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAkC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEzE,OAAO,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,SAAqC,EAAE,OAA+C;QAChG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,SAAqC;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;CACJ"}
@@ -0,0 +1,29 @@
1
+ import { ModalDialog, ModalDialogHandler } from '@serenity-js/web';
2
+ import type { Browser } from 'webdriverio';
3
+ import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
4
+ /**
5
+ * WebdriverIO-specific implementation of {@apilink ModalDialogHandler},
6
+ * used with the [WebDriver protocol](https://webdriver.io/docs/api/webdriver).
7
+ *
8
+ * ## Learn more
9
+ * - {@apilink WebdriverIOPuppeteerModalDialogHandler}
10
+ *
11
+ * @group Models
12
+ */
13
+ export declare class WebdriverIOModalDialogHandler extends ModalDialogHandler {
14
+ private readonly browser;
15
+ private readonly errorHandler;
16
+ private readonly defaultHandler;
17
+ private currentHandler;
18
+ constructor(browser: Browser, errorHandler: WebdriverIOErrorHandler);
19
+ tryToHandleDialog(): Promise<void>;
20
+ acceptNext(): Promise<void>;
21
+ acceptNextWithValue(text: string | number): Promise<void>;
22
+ dismissNext(): Promise<void>;
23
+ reset(): Promise<void>;
24
+ /**
25
+ * @override
26
+ */
27
+ last(): Promise<ModalDialog>;
28
+ }
29
+ //# sourceMappingURL=WebdriverIOModalDialogHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOModalDialogHandler.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOModalDialogHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE;;;;;;;;GAQG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB;IAc7D,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAbjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO1B;IAEL,OAAO,CAAC,cAAc,CAAsB;gBAGvB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,uBAAuB;IASpD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;CAQrC"}