@serenity-js/webdriverio 3.1.6 → 3.2.0

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 +18 -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 +39 -42
  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,78 @@
1
+ import { AbsentModalDialog, AcceptedModalDialog, DismissedModalDialog, ModalDialogHandler } from '@serenity-js/web';
2
+ /**
3
+ * WebdriverIO-specific implementation of {@apilink {ModalDialogHandler}, applicable when WebdriverIO
4
+ * uses [Puppeteer](https://developer.chrome.com/docs/puppeteer/).
5
+ *
6
+ * Automatically handles any simple JavaScript modal dialog windows, such as
7
+ * those opened by [`window.alert()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
8
+ * [`window.confirm()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm),
9
+ * or [`window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt).
10
+ *
11
+ * This helps to avoid Puppeteer hanging when there's an interaction pending
12
+ * and a dialog is already open, see https://github.com/puppeteer/puppeteer/issues/2481
13
+ *
14
+ * ## Learn more
15
+ * - {@apilink WebdriverIOModalDialogHandler}
16
+ */
17
+ export class WebdriverIOPuppeteerModalDialogHandler extends ModalDialogHandler {
18
+ constructor(page) {
19
+ super();
20
+ this.page = page;
21
+ this.dialogHandlingInProgress = false;
22
+ this.defaultHandler = async (dialog) => {
23
+ await dialog.dismiss();
24
+ return new DismissedModalDialog(dialog.message());
25
+ };
26
+ this.currentHandler = this.defaultHandler;
27
+ // remove the default WebdriverIO handler because it makes any other listeners hang
28
+ // https://github.com/webdriverio/webdriverio/blob/518c56a61353b2f65436b83c618117021da7e622/packages/devtools/src/devtoolsdriver.ts#L69
29
+ this.page.removeAllListeners('dialog');
30
+ // register Serenity/JS handler instead
31
+ this.page.on('dialog', async (dialog) => {
32
+ // Puppeteer doesn't seem to synchronise async handlers correctly,
33
+ // hence the handleModalDialog wrapper and the `dialogHandlingInProgress` lock.
34
+ await this.handleModalDialog(() => this.currentHandler(dialog));
35
+ });
36
+ }
37
+ async acceptNext() {
38
+ this.currentHandler = async (dialog) => {
39
+ await dialog.accept(dialog.defaultValue());
40
+ return new AcceptedModalDialog(dialog.message());
41
+ };
42
+ }
43
+ async acceptNextWithValue(text) {
44
+ this.currentHandler = async (dialog) => {
45
+ await dialog.accept(String(text));
46
+ return new AcceptedModalDialog(dialog.message());
47
+ };
48
+ }
49
+ async dismissNext() {
50
+ this.currentHandler = async (dialog) => {
51
+ await dialog.dismiss();
52
+ return new DismissedModalDialog(dialog.message());
53
+ };
54
+ }
55
+ async reset() {
56
+ this.modalDialog = new AbsentModalDialog();
57
+ this.currentHandler = this.defaultHandler;
58
+ }
59
+ async discard() {
60
+ this.page.off('dialog', this.currentHandler);
61
+ }
62
+ async last() {
63
+ return new Promise((resolve, reject) => {
64
+ const interval = setInterval(() => {
65
+ if (!this.dialogHandlingInProgress) {
66
+ clearInterval(interval);
67
+ resolve(this.modalDialog);
68
+ }
69
+ }, 25);
70
+ });
71
+ }
72
+ async handleModalDialog(handler) {
73
+ this.dialogHandlingInProgress = true;
74
+ this.modalDialog = await handler();
75
+ this.dialogHandlingInProgress = false;
76
+ }
77
+ }
78
+ //# sourceMappingURL=WebdriverIOPuppeteerModalDialogHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOPuppeteerModalDialogHandler.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
3
+ * https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
4
+ *
5
+ * @package
6
+ */
7
+ export declare enum WebdriverProtocolErrorCode {
8
+ WebDriverError = "unknown error",
9
+ DetachedShadowRootError = "detached shadow root",
10
+ ElementClickInterceptedError = "element click intercepted",
11
+ ElementNotInteractableError = "element not interactable",
12
+ ElementNotSelectableError = "element not selectable",
13
+ InsecureCertificateError = "insecure certificate",
14
+ InvalidArgumentError = "invalid argument",
15
+ InvalidCookieDomainError = "invalid cookie domain",
16
+ InvalidCoordinatesError = "invalid coordinates",
17
+ InvalidElementStateError = "invalid element state",
18
+ InvalidSelectorError = "invalid selector",
19
+ NoSuchSessionError = "invalid session id",
20
+ JavascriptError = "javascript error",
21
+ MoveTargetOutOfBoundsError = "move target out of bounds",
22
+ NoSuchAlertError = "no such alert",
23
+ NoSuchCookieError = "no such cookie",
24
+ NoSuchElementError = "no such element",
25
+ NoSuchFrameError = "no such frame",
26
+ NoSuchShadowRootError = "no such shadow root",
27
+ NoSuchWindowError = "no such window",
28
+ ScriptTimeoutError = "script timeout",
29
+ SessionNotCreatedError = "session not created",
30
+ StaleElementReferenceError = "stale element reference",
31
+ TimeoutError = "timeout",
32
+ UnableToSetCookieError = "unable to set cookie",
33
+ UnableToCaptureScreenError = "unable to capture screen",
34
+ UnexpectedAlertOpenError = "unexpected alert open",
35
+ UnknownCommandError = "unknown command",
36
+ UnknownMethodError = "unknown method",
37
+ UnsupportedOperationError = "unsupported operation"
38
+ }
39
+ //# sourceMappingURL=WebdriverProtocolErrorCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverProtocolErrorCode.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,0BAA0B;IAClC,cAAc,kBAAkB;IAChC,uBAAuB,yBAAyB;IAChD,4BAA4B,8BAA8B;IAC1D,2BAA2B,6BAA6B;IACxD,yBAAyB,2BAA2B;IACpD,wBAAwB,yBAAyB;IACjD,oBAAoB,qBAAqB;IACzC,wBAAwB,0BAA0B;IAClD,uBAAuB,wBAAwB;IAC/C,wBAAwB,0BAA0B;IAClD,oBAAoB,qBAAqB;IACzC,kBAAkB,uBAAuB;IACzC,eAAe,qBAAqB;IACpC,0BAA0B,8BAA8B;IACxD,gBAAgB,kBAAkB;IAClC,iBAAiB,mBAAmB;IACpC,kBAAkB,oBAAoB;IACtC,gBAAgB,kBAAkB;IAClC,qBAAqB,wBAAwB;IAC7C,iBAAiB,mBAAmB;IACpC,kBAAkB,mBAAmB;IACrC,sBAAsB,wBAAwB;IAC9C,0BAA0B,4BAA4B;IACtD,YAAY,YAAY;IACxB,sBAAsB,yBAAyB;IAC/C,0BAA0B,6BAA6B;IACvD,wBAAwB,0BAA0B;IAClD,mBAAmB,oBAAoB;IACvC,kBAAkB,mBAAmB;IACrC,yBAAyB,0BAA0B;CACtD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
3
+ * https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
4
+ *
5
+ * @package
6
+ */
7
+ export var WebdriverProtocolErrorCode;
8
+ (function (WebdriverProtocolErrorCode) {
9
+ WebdriverProtocolErrorCode["WebDriverError"] = "unknown error";
10
+ WebdriverProtocolErrorCode["DetachedShadowRootError"] = "detached shadow root";
11
+ WebdriverProtocolErrorCode["ElementClickInterceptedError"] = "element click intercepted";
12
+ WebdriverProtocolErrorCode["ElementNotInteractableError"] = "element not interactable";
13
+ WebdriverProtocolErrorCode["ElementNotSelectableError"] = "element not selectable";
14
+ WebdriverProtocolErrorCode["InsecureCertificateError"] = "insecure certificate";
15
+ WebdriverProtocolErrorCode["InvalidArgumentError"] = "invalid argument";
16
+ WebdriverProtocolErrorCode["InvalidCookieDomainError"] = "invalid cookie domain";
17
+ WebdriverProtocolErrorCode["InvalidCoordinatesError"] = "invalid coordinates";
18
+ WebdriverProtocolErrorCode["InvalidElementStateError"] = "invalid element state";
19
+ WebdriverProtocolErrorCode["InvalidSelectorError"] = "invalid selector";
20
+ WebdriverProtocolErrorCode["NoSuchSessionError"] = "invalid session id";
21
+ WebdriverProtocolErrorCode["JavascriptError"] = "javascript error";
22
+ WebdriverProtocolErrorCode["MoveTargetOutOfBoundsError"] = "move target out of bounds";
23
+ WebdriverProtocolErrorCode["NoSuchAlertError"] = "no such alert";
24
+ WebdriverProtocolErrorCode["NoSuchCookieError"] = "no such cookie";
25
+ WebdriverProtocolErrorCode["NoSuchElementError"] = "no such element";
26
+ WebdriverProtocolErrorCode["NoSuchFrameError"] = "no such frame";
27
+ WebdriverProtocolErrorCode["NoSuchShadowRootError"] = "no such shadow root";
28
+ WebdriverProtocolErrorCode["NoSuchWindowError"] = "no such window";
29
+ WebdriverProtocolErrorCode["ScriptTimeoutError"] = "script timeout";
30
+ WebdriverProtocolErrorCode["SessionNotCreatedError"] = "session not created";
31
+ WebdriverProtocolErrorCode["StaleElementReferenceError"] = "stale element reference";
32
+ WebdriverProtocolErrorCode["TimeoutError"] = "timeout";
33
+ WebdriverProtocolErrorCode["UnableToSetCookieError"] = "unable to set cookie";
34
+ WebdriverProtocolErrorCode["UnableToCaptureScreenError"] = "unable to capture screen";
35
+ WebdriverProtocolErrorCode["UnexpectedAlertOpenError"] = "unexpected alert open";
36
+ WebdriverProtocolErrorCode["UnknownCommandError"] = "unknown command";
37
+ WebdriverProtocolErrorCode["UnknownMethodError"] = "unknown method";
38
+ WebdriverProtocolErrorCode["UnsupportedOperationError"] = "unsupported operation";
39
+ })(WebdriverProtocolErrorCode = WebdriverProtocolErrorCode || (WebdriverProtocolErrorCode = {}));
40
+ //# sourceMappingURL=WebdriverProtocolErrorCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverProtocolErrorCode.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,0BA+BX;AA/BD,WAAY,0BAA0B;IAClC,8DAAgC,CAAA;IAChC,8EAAgD,CAAA;IAChD,wFAA0D,CAAA;IAC1D,sFAAwD,CAAA;IACxD,kFAAoD,CAAA;IACpD,+EAAiD,CAAA;IACjD,uEAAyC,CAAA;IACzC,gFAAkD,CAAA;IAClD,6EAA+C,CAAA;IAC/C,gFAAkD,CAAA;IAClD,uEAAyC,CAAA;IACzC,uEAAyC,CAAA;IACzC,kEAAoC,CAAA;IACpC,sFAAwD,CAAA;IACxD,gEAAkC,CAAA;IAClC,kEAAoC,CAAA;IACpC,oEAAsC,CAAA;IACtC,gEAAkC,CAAA;IAClC,2EAA6C,CAAA;IAC7C,kEAAoC,CAAA;IACpC,mEAAqC,CAAA;IACrC,4EAA8C,CAAA;IAC9C,oFAAsD,CAAA;IACtD,sDAAwB,CAAA;IACxB,6EAA+C,CAAA;IAC/C,qFAAuD,CAAA;IACvD,gFAAkD,CAAA;IAClD,qEAAuC,CAAA;IACvC,mEAAqC,CAAA;IACrC,iFAAmD,CAAA;AACvD,CAAC,EA/BW,0BAA0B,GAA1B,0BAA0B,KAA1B,0BAA0B,QA+BrC"}
@@ -0,0 +1,5 @@
1
+ export * from './WebdriverIOBrowsingSession.js';
2
+ export * from './WebdriverIOCookie.js';
3
+ export * from './WebdriverIOPage.js';
4
+ export * from './WebdriverIOPageElement.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './WebdriverIOBrowsingSession.js';
2
+ export * from './WebdriverIOCookie.js';
3
+ export * from './WebdriverIOPage.js';
4
+ export * from './WebdriverIOPageElement.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Locator, PageElement, RootLocator, Selector } from '@serenity-js/web';
2
+ import type { Element } from 'webdriverio';
3
+ import { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
4
+ /**
5
+ * WebdriverIO-specific implementation of {@apilink Locator}.
6
+ *
7
+ * @group Models
8
+ */
9
+ export declare class WebdriverIOLocator extends Locator<Element, string> {
10
+ private readonly errorHandler;
11
+ constructor(parent: RootLocator<Element>, selector: Selector, errorHandler: WebdriverIOErrorHandler);
12
+ protected nativeSelector(): string;
13
+ isPresent(): Promise<boolean>;
14
+ nativeElement(): Promise<Element>;
15
+ private resolveNativeElement;
16
+ allNativeElements(): Promise<Array<Element>>;
17
+ of(parent: WebdriverIOLocator): Locator<Element, string>;
18
+ locate(child: WebdriverIOLocator): Locator<Element, string>;
19
+ element(): PageElement<Element>;
20
+ allElements(): Promise<Array<PageElement<Element>>>;
21
+ }
22
+ //# sourceMappingURL=WebdriverIOLocator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOLocator.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIOLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAmE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChJ,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAIxE;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAKxD,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAF7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAC5B,QAAQ,EAAE,QAAQ,EACD,YAAY,EAAE,uBAAuB;IAM1D,SAAS,CAAC,cAAc,IAAI,MAAM;IA4B5B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;YASzB,oBAAoB;IAgB5B,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAKlD,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAIxD,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAI3D,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;IAIzB,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;CAc5D"}
@@ -0,0 +1,97 @@
1
+ import { f, LogicError } from '@serenity-js/core';
2
+ import { ByCss, ByCssContainingText, ByDeepCss, ById, ByTagName, ByXPath, Locator } from '@serenity-js/web';
3
+ import { WebdriverIOPageElement } from '../WebdriverIOPageElement.js';
4
+ /**
5
+ * WebdriverIO-specific implementation of {@apilink Locator}.
6
+ *
7
+ * @group Models
8
+ */
9
+ export class WebdriverIOLocator extends Locator {
10
+ constructor(parent, selector, errorHandler) {
11
+ super(parent, selector);
12
+ this.errorHandler = errorHandler;
13
+ }
14
+ // todo: refactor; replace with a map and some more generic lookup mechanism
15
+ nativeSelector() {
16
+ if (this.selector instanceof ByCss) {
17
+ return this.selector.value;
18
+ }
19
+ if (this.selector instanceof ByDeepCss) {
20
+ return `>>> ${this.selector.value}`;
21
+ }
22
+ if (this.selector instanceof ByCssContainingText) {
23
+ return `${this.selector.value}*=${this.selector.text}`;
24
+ }
25
+ if (this.selector instanceof ById) {
26
+ return `#${this.selector.value}`;
27
+ }
28
+ if (this.selector instanceof ByTagName) {
29
+ return `<${this.selector.value} />`;
30
+ }
31
+ if (this.selector instanceof ByXPath) {
32
+ return this.selector.value;
33
+ }
34
+ throw new LogicError(f `${this.selector} is not supported by ${this.constructor.name}`);
35
+ }
36
+ async isPresent() {
37
+ try {
38
+ const element = await this.resolveNativeElement();
39
+ return Boolean(element);
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ }
45
+ async nativeElement() {
46
+ try {
47
+ return await this.resolveNativeElement();
48
+ }
49
+ catch (error) {
50
+ return await this.errorHandler.executeIfHandled(error, () => this.resolveNativeElement());
51
+ }
52
+ }
53
+ async resolveNativeElement() {
54
+ const parent = await this.parent.nativeElement();
55
+ if (parent.error) {
56
+ throw parent.error;
57
+ }
58
+ const element = await parent.$(this.nativeSelector());
59
+ if (element.error) {
60
+ throw element.error;
61
+ }
62
+ return element;
63
+ }
64
+ async allNativeElements() {
65
+ const parent = await this.parent.nativeElement();
66
+ return parent.$$(this.nativeSelector());
67
+ }
68
+ of(parent) {
69
+ return new WebdriverIOLocator(parent, this.selector, this.errorHandler);
70
+ }
71
+ locate(child) {
72
+ return new WebdriverIOLocator(this, child.selector, this.errorHandler);
73
+ }
74
+ element() {
75
+ return new WebdriverIOPageElement(this);
76
+ }
77
+ async allElements() {
78
+ const elements = await this.allNativeElements();
79
+ return elements.map(childElement => new WebdriverIOPageElement(new ExistingElementLocator(this.parent, this.selector, this.errorHandler, childElement)));
80
+ }
81
+ }
82
+ /**
83
+ * @private
84
+ */
85
+ class ExistingElementLocator extends WebdriverIOLocator {
86
+ constructor(parentRoot, selector, errorHandler, existingNativeElement) {
87
+ super(parentRoot, selector, errorHandler);
88
+ this.existingNativeElement = existingNativeElement;
89
+ }
90
+ async nativeElement() {
91
+ return this.existingNativeElement;
92
+ }
93
+ async allNativeElements() {
94
+ return [this.existingNativeElement];
95
+ }
96
+ }
97
+ //# sourceMappingURL=WebdriverIOLocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIOLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { RootLocator } from '@serenity-js/web';
2
+ import type { Browser, Element } from 'webdriverio';
3
+ /**
4
+ * WebdriverIO-specific implementation of {@apilink RootLocator}.
5
+ *
6
+ * @group Models
7
+ */
8
+ export declare class WebdriverIORootLocator extends RootLocator<Browser> {
9
+ private readonly browser;
10
+ constructor(browser: Browser);
11
+ isPresent(): Promise<boolean>;
12
+ nativeElement(): Promise<Pick<Browser, '$' | '$$'>>;
13
+ switchToFrame(frame: Element): Promise<void>;
14
+ switchToParentFrame(): Promise<void>;
15
+ switchToMainFrame(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=WebdriverIORootLocator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIORootLocator.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,WAAW,CAAC,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAIvC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IAInD,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3C"}
@@ -0,0 +1,28 @@
1
+ import { RootLocator } from '@serenity-js/web';
2
+ /**
3
+ * WebdriverIO-specific implementation of {@apilink RootLocator}.
4
+ *
5
+ * @group Models
6
+ */
7
+ export class WebdriverIORootLocator extends RootLocator {
8
+ constructor(browser) {
9
+ super();
10
+ this.browser = browser;
11
+ }
12
+ async isPresent() {
13
+ return true;
14
+ }
15
+ async nativeElement() {
16
+ return this.browser;
17
+ }
18
+ async switchToFrame(frame) {
19
+ await this.browser.switchToFrame(frame);
20
+ }
21
+ async switchToParentFrame() {
22
+ await this.browser.switchToParentFrame();
23
+ }
24
+ async switchToMainFrame() {
25
+ await this.browser.switchToFrame(null); // eslint-disable-line unicorn/no-null
26
+ }
27
+ }
28
+ //# sourceMappingURL=WebdriverIORootLocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIORootLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAoB;IAC5D,YAA6B,OAAgB;QACzC,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAS;IAE7C,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAc;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;IAClF,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export * from './WebdriverIOLocator.js';
2
+ export * from './WebdriverIORootLocator.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './WebdriverIOLocator.js';
2
+ export * from './WebdriverIORootLocator.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -1,6 +1,6 @@
1
- import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter';
2
- import { ModuleLoader, Path } from '@serenity-js/core/lib/io';
3
- import { WebdriverIOConfig } from './WebdriverIOConfig';
1
+ import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter/index.js';
2
+ import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
3
+ import { WebdriverIOConfig } from '../config/index.js';
4
4
  export declare class TestRunnerLoader {
5
5
  private readonly loader;
6
6
  private readonly cwd;
@@ -1 +1 @@
1
- {"version":3,"file":"TestRunnerLoader.d.ts","sourceRoot":"","sources":["../../src/adapter/TestRunnerLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAkC,YAAY,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAG9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAgB;IAKrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAGf,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,MAAM;IAMhC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB;IAiB9D,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;CAIvB"}
1
+ {"version":3,"file":"TestRunnerLoader.d.ts","sourceRoot":"","sources":["../../src/adapter/TestRunnerLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAkC,YAAY,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQvD,qBAAa,gBAAgB;IAKrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAGf,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,MAAM;IAMhC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB;IAiB9D,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;CAIvB"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TestRunnerLoader = void 0;
4
4
  const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
5
+ const index_js_1 = require("@serenity-js/core/lib/io/index.js");
6
6
  class TestRunnerLoader {
7
7
  constructor(loader, cwd, cid) {
8
8
  this.loader = loader;
9
9
  this.cwd = cwd;
10
10
  this.cid = cid;
11
- this.fileSystem = new io_1.FileSystem(cwd);
12
- this.finder = new io_1.FileFinder(cwd);
11
+ this.fileSystem = new index_js_1.FileSystem(cwd);
12
+ this.finder = new index_js_1.FileFinder(cwd);
13
13
  }
14
14
  runnerAdapterFor(config) {
15
15
  var _a, _b;
@@ -27,17 +27,17 @@ class TestRunnerLoader {
27
27
  }
28
28
  cucumberAdapter(cucumberOptions) {
29
29
  var _a;
30
- const { CucumberCLIAdapter, CucumberFormat, StandardOutput, TempFileOutput } = this.loader.require('@serenity-js/cucumber/lib/adapter');
30
+ const { CucumberCLIAdapter, CucumberFormat, StandardOutput, TempFileOutput } = this.loader.require('@serenity-js/cucumber/lib/adapter/index.js');
31
31
  cucumberOptions === null || cucumberOptions === void 0 ? true : delete cucumberOptions.timeout; // todo: support setting a timeout via config?
32
32
  cucumberOptions === null || cucumberOptions === void 0 ? true : delete cucumberOptions.parallel; // WebdriverIO handles that already
33
- const cleanedCucumberOptions = new io_1.Config(cucumberOptions)
33
+ const cleanedCucumberOptions = new index_js_1.Config(cucumberOptions)
34
34
  .where('require', requires => this.finder.filesMatching(requires).map(p => p.value))
35
35
  .where('format', values => [].concat(values).map(value => {
36
36
  const format = new CucumberFormat(value);
37
37
  if (format.output === '') {
38
38
  return format.value;
39
39
  }
40
- const basename = io_1.Path.from(format.output).basename();
40
+ const basename = index_js_1.Path.from(format.output).basename();
41
41
  const filenameParts = basename.split('.');
42
42
  if (filenameParts[0] === basename) {
43
43
  return `${format.formatter}:${format.output}.${this.cid}`;
@@ -52,11 +52,11 @@ class TestRunnerLoader {
52
52
  return new CucumberCLIAdapter(cleanedCucumberOptions, this.loader, this.fileSystem, output);
53
53
  }
54
54
  jasmineAdapter(jasmineOptions) {
55
- const { JasmineAdapter } = this.loader.require('@serenity-js/jasmine/lib/adapter');
55
+ const { JasmineAdapter } = this.loader.require('@serenity-js/jasmine/lib/adapter/index.js');
56
56
  return new JasmineAdapter(jasmineOptions, this.loader);
57
57
  }
58
58
  mochaAdapter(mochaOptions) {
59
- const { MochaAdapter } = this.loader.require('@serenity-js/mocha/lib/adapter');
59
+ const { MochaAdapter } = this.loader.require('@serenity-js/mocha/lib/adapter/index.js');
60
60
  return new MochaAdapter(mochaOptions, this.loader);
61
61
  }
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TestRunnerLoader.js","sourceRoot":"","sources":["../../src/adapter/TestRunnerLoader.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,iDAA8F;AAK9F,MAAa,gBAAgB;IAIzB,YACqB,MAAoB,EACpB,GAAS,EACT,GAAW;QAFX,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;QACT,QAAG,GAAH,GAAG,CAAQ;QAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAU,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAO,IAAI,eAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB,CAAC,MAAyB;;QACtC,QAAQ,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,MAAM,EAAE;YAC9B,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;YAEtD,KAAK,SAAS;gBACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC,CAAC;YAEpD,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACV,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,CAAC;YAEhD;gBACI,MAAM,IAAI,yBAAkB,CAAC,IAAK,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,MAAO,gFAAgF,CAAC,CAAC;SACpJ;IACL,CAAC;IAEO,eAAe,CAAC,eAA0C;;QAC9D,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAEjI,eAAe,aAAf,eAAe,4BAAf,eAAe,CAAE,OAAO,CAAC,CAAG,8CAA8C;QAC1E,eAAe,aAAf,eAAe,4BAAf,eAAe,CAAE,QAAQ,CAAC,CAAE,mCAAmC;QAEtE,MAAM,sBAAsB,GAAG,IAAI,WAAM,CAAC,eAAe,CAAC;aACrD,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACxD;aACA,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACtB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;gBACtB,OAAO,MAAM,CAAC,KAAK,CAAC;aACvB;YAED,MAAM,QAAQ,GAAG,SAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE1C,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC/B,OAAO,GAAI,MAAM,CAAC,SAAU,IAAK,MAAM,CAAC,MAAO,IAAK,IAAI,CAAC,GAAI,EAAE,CAAC;aACnE;YAED,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAI,IAAI,CAAC,GAAI,EAAE,CAAC,CAAC;YAE7C,OAAO,GAAI,MAAM,CAAC,SAAU,IAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC;QACjG,CAAC,CAAC,CACL,CAAC,MAAM,EAAE,CAAC;QAEf,8DAA8D;QAC9D,MAAM,MAAM,GAAG,CAAA,MAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,MAAM,0CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;YACnG,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;YACrC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;QAE3B,OAAO,IAAI,kBAAkB,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IAEO,cAAc,CAAC,cAAuC;QAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAA;QAClF,OAAO,IAAI,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAEO,YAAY,CAAC,YAAmC;QACpD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;QAC9E,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;CACJ;AA9ED,4CA8EC"}
1
+ {"version":3,"file":"TestRunnerLoader.js","sourceRoot":"","sources":["../../src/adapter/TestRunnerLoader.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { Serenity } from '@serenity-js/core';
3
- import { ModuleLoader, Path } from '@serenity-js/core/lib/io';
3
+ import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
4
4
  import type { Capabilities } from '@wdio/types';
5
5
  import type { EventEmitter } from 'events';
6
- import { InitialisesReporters, ProvidesWriteStream } from './reporter';
7
- import { WebdriverIOConfig } from './WebdriverIOConfig';
6
+ import { WebdriverIOConfig } from '../config/index.js';
7
+ import { InitialisesReporters, ProvidesWriteStream } from './reporter/index.js';
8
8
  export declare class WebdriverIOFrameworkAdapter {
9
9
  private readonly serenity;
10
10
  private readonly loader;
@@ -12,6 +12,7 @@ export declare class WebdriverIOFrameworkAdapter {
12
12
  private readonly cid;
13
13
  private readonly specs;
14
14
  private readonly capabilities;
15
+ private readonly reporter;
15
16
  private adapter;
16
17
  private notifier;
17
18
  constructor(serenity: Serenity, loader: ModuleLoader, cwd: Path, cid: string, webdriverIOConfig: WebdriverIOConfig, specs: string[], capabilities: Capabilities.RemoteCapability, reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters);
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOFrameworkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAA6C,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,OAAO,EAA+B,oBAAoB,EAAsB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,qBAAa,2BAA2B;IAMhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAVjC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAsB;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,MAAM,EAC5B,iBAAiB,EAAE,iBAAiB,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAC5D,QAAQ,EAAE,YAAY,GAAG,mBAAmB,GAAG,oBAAoB;IA4DjE,IAAI,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAOlD,QAAQ,IAAI,OAAO;IAIb,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5B,OAAO,CAAC,aAAa;CASxB"}
1
+ {"version":3,"file":"WebdriverIOFrameworkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAA6C,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAEH,oBAAoB,EAEpB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,2BAA2B;IAMhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAsB;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,MAAM,EAC5B,iBAAiB,EAAE,iBAAiB,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAC3C,QAAQ,EAAE,YAAY,GAAG,mBAAmB,GAAG,oBAAoB;IAqDlF,IAAI,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAqBlD,QAAQ,IAAI,OAAO;IAIb,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5B,OAAO,CAAC,aAAa;CASxB"}