@serenity-js/webdriverio 3.1.5 → 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 +29 -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 +49 -25
  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 -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
@@ -1,16 +1,16 @@
1
1
  import { RootLocator } from '@serenity-js/web';
2
- import * as wdio from 'webdriverio';
2
+ import type { Browser, Element } from 'webdriverio';
3
3
  /**
4
4
  * WebdriverIO-specific implementation of {@apilink RootLocator}.
5
5
  *
6
6
  * @group Models
7
7
  */
8
- export declare class WebdriverIORootLocator extends RootLocator<wdio.Browser<'async'>> {
8
+ export declare class WebdriverIORootLocator extends RootLocator<Browser> {
9
9
  private readonly browser;
10
- constructor(browser: wdio.Browser<'async'>);
10
+ constructor(browser: Browser);
11
11
  isPresent(): Promise<boolean>;
12
- nativeElement(): Promise<Pick<wdio.Browser<'async'>, '$' | '$$'>>;
13
- switchToFrame(frame: wdio.Element<'async'>): Promise<void>;
12
+ nativeElement(): Promise<Pick<Browser, '$' | '$$'>>;
13
+ switchToFrame(frame: Element): Promise<void>;
14
14
  switchToParentFrame(): Promise<void>;
15
15
  switchToMainFrame(): Promise<void>;
16
16
  }
@@ -1 +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,IAAI,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAIrD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IAIjE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3C"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIORootLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":";;;AAAA,0CAA+C;AAG/C;;;;GAIG;AACH,MAAa,sBAAuB,SAAQ,iBAAkC;IAC1E,YAA6B,OAA8B;QACvD,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAuB;IAE3D,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,KAA4B;QAC5C,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;AAxBD,wDAwBC"}
1
+ {"version":3,"file":"WebdriverIORootLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":";;;AAAA,0CAA+C;AAG/C;;;;GAIG;AACH,MAAa,sBAAuB,SAAQ,iBAAoB;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;AAxBD,wDAwBC"}
@@ -1,3 +1,3 @@
1
- export * from './WebdriverIOLocator';
2
- export * from './WebdriverIORootLocator';
1
+ export * from './WebdriverIOLocator.js';
2
+ export * from './WebdriverIORootLocator.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
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"}
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./WebdriverIOLocator"), exports);
18
- __exportStar(require("./WebdriverIORootLocator"), exports);
17
+ __exportStar(require("./WebdriverIOLocator.js"), exports);
18
+ __exportStar(require("./WebdriverIORootLocator.js"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,8DAA4C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/webdriverio",
3
- "version": "3.1.5",
3
+ "version": "3.2.0",
4
4
  "description": "Serenity/JS reporter and Screenplay Pattern library for WebdriverIO",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -15,8 +15,21 @@
15
15
  "publishConfig": {
16
16
  "access": "public"
17
17
  },
18
- "main": "lib/index.js",
19
- "typings": "lib/index.d.ts",
18
+ "main": "./lib/index.js",
19
+ "types": "./lib/index.d.ts",
20
+ "type": "module",
21
+ "module": "./esm/index.js",
22
+ "exports": {
23
+ ".": [
24
+ {
25
+ "types": "./esm/index.d.ts",
26
+ "import": "./esm/index.js",
27
+ "require": "./lib/index.js"
28
+ },
29
+ "./lib/index.js"
30
+ ],
31
+ "./package.json": "./package.json"
32
+ },
20
33
  "keywords": [
21
34
  "serenity-js",
22
35
  "ui",
@@ -31,8 +44,13 @@
31
44
  ],
32
45
  "scripts": {
33
46
  "clean": "rimraf target",
34
- "test": "nyc mocha --config ../../.mocharc.yml 'spec/adapter/**/*.spec.*'",
35
- "compile": "rimraf lib && tsc --project tsconfig.build.json"
47
+ "test": "c8 npm run test:no-coverage",
48
+ "test:no-coverage": "mocha --config .mocharc.yml 'spec/**/*.spec.*'",
49
+ "compile": "npm run compile:clean && npm run compile:esm && npm run compile:cjs && npm run compile:cjs-package",
50
+ "compile:clean": "rimraf lib esm",
51
+ "compile:esm": "tsc --project tsconfig-esm.build.json",
52
+ "compile:cjs": "tsc --project tsconfig-cjs.build.json",
53
+ "compile:cjs-package": "node -e \"require('fs').writeFileSync('lib/package.json', '{ \\\"type\\\": \\\"commonjs\\\" }')\""
36
54
  },
37
55
  "repository": {
38
56
  "type": "git",
@@ -43,14 +61,12 @@
43
61
  "url": "https://github.com/serenity-js/serenity-js/issues"
44
62
  },
45
63
  "engines": {
46
- "node": "^14 || ^16 || ^18",
47
- "npm": "^6 || ^7 || ^8 || ^9"
64
+ "node": "^16.13 || ^18.12 || ^20"
48
65
  },
49
66
  "dependencies": {
50
- "@serenity-js/core": "3.1.5",
51
- "@serenity-js/web": "3.1.5",
52
- "@wdio/reporter": "7.30.2",
53
- "@wdio/types": "7.30.2",
67
+ "@serenity-js/core": "3.2.0",
68
+ "@serenity-js/web": "3.2.0",
69
+ "@wdio/reporter": "^8.8.7",
54
70
  "deepmerge": "^4.3.1",
55
71
  "tiny-types": "^1.19.1"
56
72
  },
@@ -58,8 +74,8 @@
58
74
  "@serenity-js/cucumber": "^3.0.0",
59
75
  "@serenity-js/jasmine": "^3.0.0",
60
76
  "@serenity-js/mocha": "^3.0.0",
61
- "@wdio/cli": "7.30.2",
62
- "webdriverio": "7.30.2"
77
+ "@wdio/cli": "^8.10.0",
78
+ "webdriverio": "^8.10.0"
63
79
  },
64
80
  "peerDependenciesMeta": {
65
81
  "@serenity-js/cucumber": {
@@ -75,41 +91,21 @@
75
91
  "devDependencies": {
76
92
  "@integration/testing-tools": "3.0.0",
77
93
  "@types/mocha": "^10.0.1",
78
- "@wdio/cli": "7.30.2",
79
- "@wdio/devtools-service": "7.30.2",
80
- "@wdio/dot-reporter": "7.30.2",
81
- "@wdio/local-runner": "7.30.2",
82
- "@wdio/mocha-framework": "7.30.2",
83
- "@wdio/spec-reporter": "7.30.2",
94
+ "@wdio/cli": "8.10.0",
95
+ "@wdio/devtools-service": "8.10.0",
96
+ "@wdio/dot-reporter": "8.10.0",
97
+ "@wdio/local-runner": "8.10.0",
98
+ "@wdio/spec-reporter": "8.10.0",
99
+ "@wdio/types": "8.10.0",
84
100
  "axios": "^1.3.5",
101
+ "c8": "7.13.0",
85
102
  "cross-env": "^7.0.3",
86
103
  "mocha": "^10.2.0",
87
104
  "mocha-multi": "^1.1.7",
88
105
  "mocha-testdata": "^1.2.0",
89
- "nyc": "15.1.0",
90
- "puppeteer-core": "^19.9.0",
106
+ "puppeteer-core": "^19.11.1",
91
107
  "start-server-and-test": "^2.0.0",
92
- "webdriverio": "7.30.2"
93
- },
94
- "nyc": {
95
- "include": [
96
- "src/**/*.ts"
97
- ],
98
- "exclude": [
99
- "src/**/*.d.ts",
100
- "lib",
101
- "node_modules",
102
- "spec"
103
- ],
104
- "extension": [
105
- ".ts"
106
- ],
107
- "require": [],
108
- "reporter": [
109
- "json"
110
- ],
111
- "cache": true,
112
- "all": false
108
+ "webdriverio": "8.10.0"
113
109
  },
114
- "gitHead": "31f621a7c827e20ba07a86a2f7c77d941784bb0a"
110
+ "gitHead": "e69cea764f50991c3ad742f28926b4345b3e2422"
115
111
  }
@@ -1,9 +1,14 @@
1
1
  import { ConfigurationError } from '@serenity-js/core';
2
- import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter';
3
- import { Config, FileFinder, FileSystem, ModuleLoader, Path } from '@serenity-js/core/lib/io';
4
- import { WebdriverIO } from '@wdio/types/build/Options';
2
+ import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter/index.js';
3
+ import { Config, FileFinder, FileSystem, ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
5
4
 
6
- import { WebdriverIOConfig } from './WebdriverIOConfig';
5
+ import { WebdriverIOConfig } from '../config/index.js';
6
+
7
+ // We define TestRunnerOptions to avoid importing the global WebdriverIO namespace.
8
+ // WebdriverIO v8 doesn't offer any more precise type declarations anyway.
9
+ interface TestRunnerOptions {
10
+ [key: string]: any;
11
+ }
7
12
 
8
13
  export class TestRunnerLoader {
9
14
  private readonly fileSystem: FileSystem;
@@ -35,8 +40,8 @@ export class TestRunnerLoader {
35
40
  }
36
41
  }
37
42
 
38
- private cucumberAdapter(cucumberOptions?: WebdriverIO.CucumberOpts): TestRunnerAdapter {
39
- const { CucumberCLIAdapter, CucumberFormat, StandardOutput, TempFileOutput } = this.loader.require('@serenity-js/cucumber/lib/adapter');
43
+ private cucumberAdapter(cucumberOptions?: TestRunnerOptions): TestRunnerAdapter {
44
+ const { CucumberCLIAdapter, CucumberFormat, StandardOutput, TempFileOutput } = this.loader.require('@serenity-js/cucumber/lib/adapter/index.js');
40
45
 
41
46
  delete cucumberOptions?.timeout; // todo: support setting a timeout via config?
42
47
  delete cucumberOptions?.parallel; // WebdriverIO handles that already
@@ -74,13 +79,13 @@ export class TestRunnerLoader {
74
79
  return new CucumberCLIAdapter(cleanedCucumberOptions, this.loader, this.fileSystem, output);
75
80
  }
76
81
 
77
- private jasmineAdapter(jasmineOptions: WebdriverIO.JasmineOpts): TestRunnerAdapter {
78
- const { JasmineAdapter } = this.loader.require('@serenity-js/jasmine/lib/adapter')
82
+ private jasmineAdapter(jasmineOptions: TestRunnerOptions): TestRunnerAdapter {
83
+ const { JasmineAdapter } = this.loader.require('@serenity-js/jasmine/lib/adapter/index.js')
79
84
  return new JasmineAdapter(jasmineOptions, this.loader);
80
85
  }
81
86
 
82
- private mochaAdapter(mochaOptions: WebdriverIO.MochaOpts): TestRunnerAdapter {
83
- const { MochaAdapter } = this.loader.require('@serenity-js/mocha/lib/adapter')
87
+ private mochaAdapter(mochaOptions: TestRunnerOptions): TestRunnerAdapter {
88
+ const { MochaAdapter } = this.loader.require('@serenity-js/mocha/lib/adapter/index.js')
84
89
  return new MochaAdapter(mochaOptions, this.loader);
85
90
  }
86
91
  }
@@ -1,17 +1,23 @@
1
1
  import { AnsiDiffFormatter, ArtifactArchiver, Cast, Serenity, TakeNotes } from '@serenity-js/core';
2
- import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter';
3
- import { ModuleLoader, Path } from '@serenity-js/core/lib/io';
2
+ import { TestRunnerAdapter } from '@serenity-js/core/lib/adapter/index.js';
3
+ import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
4
4
  import type { Capabilities } from '@wdio/types';
5
+ import * as deepmerge from 'deepmerge';
5
6
  import type { EventEmitter } from 'events';
6
- import { isRecord } from 'tiny-types/lib/objects';
7
-
8
- import { BrowseTheWebWithWebdriverIO } from '../screenplay';
9
- import { BrowserCapabilitiesReporter, InitialisesReporters, OutputStreamBuffer, ProvidesWriteStream } from './reporter';
10
- import { OutputStreamBufferPrinter } from './reporter/OutputStreamBufferPrinter';
11
- import { TestRunnerLoader } from './TestRunnerLoader';
12
- import { WebdriverIOConfig } from './WebdriverIOConfig';
13
- import { WebdriverIONotifier } from './WebdriverIONotifier';
14
- import deepmerge = require('deepmerge');
7
+ import { isRecord } from 'tiny-types/lib/objects/isRecord.js';
8
+ import type { Browser } from 'webdriverio';
9
+
10
+ import { WebdriverIOConfig } from '../config/index.js';
11
+ import { BrowseTheWebWithWebdriverIO } from '../screenplay/index.js';
12
+ import {
13
+ BrowserCapabilitiesReporter,
14
+ InitialisesReporters,
15
+ OutputStreamBuffer,
16
+ ProvidesWriteStream
17
+ } from './reporter/index.js';
18
+ import { OutputStreamBufferPrinter } from './reporter/OutputStreamBufferPrinter.js';
19
+ import { TestRunnerLoader } from './TestRunnerLoader.js';
20
+ import { WebdriverIONotifier } from './WebdriverIONotifier.js';
15
21
 
16
22
  export class WebdriverIOFrameworkAdapter {
17
23
 
@@ -26,9 +32,9 @@ export class WebdriverIOFrameworkAdapter {
26
32
  webdriverIOConfig: WebdriverIOConfig,
27
33
  private readonly specs: string[],
28
34
  private readonly capabilities: Capabilities.RemoteCapability,
29
- reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters
35
+ private readonly reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters
30
36
  ) {
31
- const config = deepmerge<WebdriverIOConfig>(this.defaultConfig(), webdriverIOConfig, {
37
+ const config = deepmerge.default<WebdriverIOConfig>(this.defaultConfig(), webdriverIOConfig, {
32
38
  isMergeableObject: isRecord,
33
39
  });
34
40
 
@@ -41,13 +47,6 @@ export class WebdriverIOFrameworkAdapter {
41
47
  this.adapter = new TestRunnerLoader(this.loader, this.cwd, this.cid)
42
48
  .runnerAdapterFor(config);
43
49
 
44
- // This is the only (hacky) way to register a fake reporter programmatically (as of @wdio/reporter 7.4.2)
45
- // - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/index.ts#L147-L181
46
- // - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/reporter.ts#L24
47
- (reporter as any)._reporters.push(reporter.initReporter([
48
- BrowserCapabilitiesReporter, { serenity: this.serenity },
49
- ]));
50
-
51
50
  this.notifier = new WebdriverIONotifier(
52
51
  config,
53
52
  capabilities,
@@ -58,7 +57,7 @@ export class WebdriverIOFrameworkAdapter {
58
57
  );
59
58
 
60
59
  const outputStreamBuffer = new OutputStreamBuffer(
61
- `[${this.cid}]`,
60
+ `[${ this.cid }]`,
62
61
  );
63
62
 
64
63
  const outputStreamBufferPrinter = new OutputStreamBufferPrinter(
@@ -67,14 +66,14 @@ export class WebdriverIOFrameworkAdapter {
67
66
  );
68
67
 
69
68
  this.serenity.configure({
70
- outputStream: outputStreamBuffer,
71
- cueTimeout: config.serenity.cueTimeout,
69
+ outputStream: outputStreamBuffer,
70
+ cueTimeout: config.serenity.cueTimeout,
72
71
  interactionTimeout: config.serenity.interactionTimeout,
73
72
 
74
- diffFormatter: config.serenity.diffFormatter ?? new AnsiDiffFormatter(),
73
+ diffFormatter: config.serenity.diffFormatter ?? new AnsiDiffFormatter(),
75
74
 
76
75
  actors: config.serenity.actors || Cast.where(actor => actor.whoCan(
77
- BrowseTheWebWithWebdriverIO.using(browser),
76
+ BrowseTheWebWithWebdriverIO.using(global.browser as unknown as Browser),
78
77
  TakeNotes.usingAnEmptyNotepad(),
79
78
  )),
80
79
 
@@ -88,7 +87,21 @@ export class WebdriverIOFrameworkAdapter {
88
87
 
89
88
  async init(): Promise<WebdriverIOFrameworkAdapter> {
90
89
 
91
- await this.adapter.load(this.specs);
90
+ // This is the only (hacky) way to register a fake reporter programmatically (as of @wdio/reporter 7.4.2)
91
+ // - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/index.ts#L147-L181
92
+ // - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/reporter.ts#L24
93
+ const browserCapabilitiesReporter = await (this.reporter._loadReporter([
94
+ BrowserCapabilitiesReporter, {
95
+ serenity: this.serenity
96
+ },
97
+ ]));
98
+
99
+ (this.reporter as any)._reporters.push(browserCapabilitiesReporter);
100
+
101
+ // WebdriverIO v8 represents paths to specs as file URIs, so they need to be converted to absolute paths to avoid confusing the test runners like Cucumber
102
+ const absolutePaths = this.specs.map(pathToSpec => Path.fromURI(pathToSpec).value);
103
+
104
+ await this.adapter.load(absolutePaths);
92
105
 
93
106
  return this;
94
107
  }
@@ -1,11 +1,11 @@
1
1
  import { Serenity } from '@serenity-js/core';
2
- import { ModuleLoader, Path } from '@serenity-js/core/lib/io';
2
+ import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
3
3
  import type { Capabilities } from '@wdio/types';
4
4
  import type { EventEmitter } from 'events';
5
5
 
6
- import { InitialisesReporters, ProvidesWriteStream } from './reporter';
7
- import { WebdriverIOConfig } from './WebdriverIOConfig';
8
- import { WebdriverIOFrameworkAdapter } from './WebdriverIOFrameworkAdapter';
6
+ import { WebdriverIOConfig } from '../config/index.js';
7
+ import { InitialisesReporters, ProvidesWriteStream } from './reporter/index.js';
8
+ import { WebdriverIOFrameworkAdapter } from './WebdriverIOFrameworkAdapter.js';
9
9
 
10
10
  /**
11
11
  * @group Test Runner Adapter
@@ -1,5 +1,5 @@
1
1
  import { LogicError, Stage, StageCrewMember } from '@serenity-js/core';
2
- import { AsyncOperationAttempted, AsyncOperationCompleted, DomainEvent, SceneFinished, SceneStarts, TestRunFinishes, TestSuiteFinished, TestSuiteStarts } from '@serenity-js/core/lib/events';
2
+ import { AsyncOperationAttempted, AsyncOperationCompleted, DomainEvent, SceneFinished, SceneStarts, TestRunFinishes, TestSuiteFinished, TestSuiteStarts } from '@serenity-js/core/lib/events/index.js';
3
3
  import {
4
4
  CorrelationId,
5
5
  Description,
@@ -12,15 +12,38 @@ import {
12
12
  Outcome,
13
13
  ProblemIndication,
14
14
  TestSuiteDetails,
15
- } from '@serenity-js/core/lib/model';
16
- import { Suite as suiteStats } from '@wdio/reporter/build/stats/suite';
17
- import { Test as testStats } from '@wdio/reporter/build/stats/test';
18
- import { RemoteCapability } from '@wdio/types/build/Capabilities';
19
- import * as frameworks from '@wdio/types/build/Frameworks';
15
+ } from '@serenity-js/core/lib/model/index.js';
16
+ import type { Test as testStats } from '@wdio/reporter';
17
+ import type { Capabilities, Frameworks } from '@wdio/types';
20
18
  import type { EventEmitter } from 'events';
21
19
  import { match } from 'tiny-types';
22
20
 
23
- import { WebdriverIOConfig } from './WebdriverIOConfig';
21
+ import { WebdriverIOConfig } from '../config/index.js';
22
+
23
+ // interface Argument {
24
+ // rows?: {
25
+ // cells: string[];
26
+ // }[];
27
+ // }
28
+ //
29
+ // export interface testStats {
30
+ // type: 'test:start' | 'test:pass' | 'test:fail' | 'test:retry' | 'test:pending' | 'test:end' | 'test:skip';
31
+ // title: string;
32
+ // parent: string;
33
+ // fullTitle: string;
34
+ // pending: boolean;
35
+ // file?: string;
36
+ // duration?: number;
37
+ // cid: string;
38
+ // specs: string[];
39
+ // uid: string;
40
+ // pendingReason?: string;
41
+ // error?: Error;
42
+ // errors?: Error[];
43
+ // retries?: number;
44
+ // argument?: string | Argument;
45
+ // }
46
+ //
24
47
 
25
48
  /**
26
49
  * @package
@@ -41,7 +64,7 @@ export class WebdriverIONotifier implements StageCrewMember {
41
64
 
42
65
  constructor(
43
66
  private readonly config: WebdriverIOConfig,
44
- private readonly capabilities: RemoteCapability,
67
+ private readonly capabilities: Capabilities.RemoteCapability,
45
68
  private readonly reporter: EventEmitter,
46
69
  private readonly successThreshold: Outcome | { Code: number },
47
70
  private readonly cid: string,
@@ -97,7 +120,7 @@ export class WebdriverIONotifier implements StageCrewMember {
97
120
  return this.invokeHooks('afterSuite', this.config.afterSuite, [suite as any]); // todo: correct types
98
121
  }
99
122
 
100
- private suiteStartEventFrom(started: TestSuiteStarts): suiteStats & frameworks.Suite {
123
+ private suiteStartEventFrom(started: TestSuiteStarts): { uid: string, cid: string, specs: string[] } & Frameworks.Suite {
101
124
  return {
102
125
  type: 'suite:start',
103
126
  uid: started.details.correlationId.value,
@@ -105,7 +128,7 @@ export class WebdriverIONotifier implements StageCrewMember {
105
128
  title: started.details.name.value,
106
129
  fullTitle: this.suiteNamesConcatenatedWith(started.details.name.value),
107
130
  parent: this.parentSuiteName(),
108
- file: started.details.location.path.value,
131
+ file: started.details.location.path.value,
109
132
  specs: this.specs,
110
133
  pending: false,
111
134
  }
@@ -115,7 +138,7 @@ export class WebdriverIONotifier implements StageCrewMember {
115
138
  return this.suites.map(suite => suite.name.value).concat(name).join(' ');
116
139
  }
117
140
 
118
- private suiteEndEventFrom(started: TestSuiteStarts, finished: TestSuiteFinished): suiteStats & frameworks.Suite {
141
+ private suiteEndEventFrom(started: TestSuiteStarts, finished: TestSuiteFinished): Frameworks.Suite {
119
142
  return {
120
143
  ...this.suiteStartEventFrom(started),
121
144
  type: 'suite:end',
@@ -175,7 +198,7 @@ export class WebdriverIONotifier implements StageCrewMember {
175
198
  .trim();
176
199
  }
177
200
 
178
- private testFrom(started: SceneStarts): frameworks.Test {
201
+ private testFrom(started: SceneStarts): Frameworks.Test {
179
202
  const
180
203
  title = this.testShortTitleFrom(started);
181
204
 
@@ -219,14 +242,14 @@ export class WebdriverIONotifier implements StageCrewMember {
219
242
  * @param finished
220
243
  * @private
221
244
  */
222
- private testResultFrom(started: SceneStarts, finished: SceneFinished): frameworks.TestResult {
245
+ private testResultFrom(started: SceneStarts, finished: SceneFinished): Frameworks.TestResult {
223
246
  const duration = finished.timestamp.diff(started.timestamp).inMilliseconds();
224
247
  const defaultRetries = { attempts: 0, limit: 0 };
225
248
 
226
249
  const passedOrFailed = (outcome: Outcome): boolean =>
227
250
  this.whenSuccessful<boolean>(outcome, true, false);
228
251
 
229
- return match<Outcome, frameworks.TestResult>(finished.outcome)
252
+ return match<Outcome, Frameworks.TestResult>(finished.outcome)
230
253
  .when(ExecutionCompromised, (outcome: ExecutionCompromised) => {
231
254
  const error = this.errorFrom(outcome);
232
255
  return {
@@ -1,2 +1 @@
1
- export * from './WebdriverIOConfig';
2
- export * from './WebdriverIOFrameworkAdapterFactory';
1
+ export * from './WebdriverIOFrameworkAdapterFactory.js';
@@ -1,10 +1,10 @@
1
1
  import { Serenity } from '@serenity-js/core';
2
- import { SceneTagged } from '@serenity-js/core/lib/events';
3
- import { Tag } from '@serenity-js/core/lib/model';
2
+ import { SceneTagged } from '@serenity-js/core/lib/events/index.js';
3
+ import { Tag } from '@serenity-js/core/lib/model/index.js';
4
4
  import Reporter from '@wdio/reporter';
5
- import { Capabilities, Options, Reporters } from '@wdio/types';
5
+ import type { Capabilities, Options, Reporters } from '@wdio/types';
6
6
 
7
- import { TagPrinter } from './TagPrinter';
7
+ import { TagPrinter } from './TagPrinter.js';
8
8
 
9
9
  /**
10
10
  * @package
@@ -1,8 +1,8 @@
1
- import { Reporters } from '@wdio/types';
1
+ import type { Reporters } from '@wdio/types';
2
2
 
3
3
  /**
4
4
  * @package
5
5
  */
6
6
  export interface InitialisesReporters {
7
- initReporter(reporter: Reporters.ReporterEntry): void;
7
+ _loadReporter(reporter: Reporters.ReporterEntry): Promise<void>;
8
8
  }
@@ -1,4 +1,4 @@
1
- import { OutputStream } from '@serenity-js/core/lib/adapter';
1
+ import { OutputStream } from '@serenity-js/core/lib/adapter/index.js';
2
2
 
3
3
  /**
4
4
  * @package
@@ -1,8 +1,8 @@
1
1
  import { Stage, StageCrewMember } from '@serenity-js/core';
2
- import { OutputStream } from '@serenity-js/core/lib/adapter';
3
- import { DomainEvent, SceneFinished } from '@serenity-js/core/lib/events';
2
+ import { OutputStream } from '@serenity-js/core/lib/adapter/index.js';
3
+ import { DomainEvent, SceneFinished } from '@serenity-js/core/lib/events/index.js';
4
4
 
5
- import { OutputStreamBuffer } from './OutputStreamBuffer';
5
+ import { OutputStreamBuffer } from './OutputStreamBuffer.js';
6
6
 
7
7
  /**
8
8
  * @package
@@ -1,4 +1,4 @@
1
- import { OutputStream } from '@serenity-js/core/lib/adapter';
1
+ import { OutputStream } from '@serenity-js/core/lib/adapter/index.js';
2
2
 
3
3
  /**
4
4
  * @package
@@ -1,5 +1,5 @@
1
- import { BrowserTag, PlatformTag, Tag } from '@serenity-js/core/lib/model';
2
- import { Capabilities } from '@wdio/types';
1
+ import { BrowserTag, PlatformTag, Tag } from '@serenity-js/core/lib/model/index.js';
2
+ import type { Capabilities } from '@wdio/types';
3
3
 
4
4
  /**
5
5
  * @package
@@ -31,12 +31,13 @@ export class TagPrinter {
31
31
  private browserNameFrom(capabilities: Capabilities.DesiredCapabilities): string {
32
32
  return capabilities.browserName
33
33
  || capabilities.browser
34
- || (capabilities.app && capabilities.app.replace('sauce-storage:', ''))
34
+ || (capabilities['appium:app'] && capabilities['appium:app'].replace('sauce-storage:', ''))
35
35
  || 'unknown';
36
36
  }
37
37
 
38
38
  private browserVersionFrom(capabilities: Capabilities.DesiredCapabilities): string | undefined {
39
39
  return capabilities.deviceName // mobile web
40
+ || capabilities['appium:deviceName']
40
41
  || capabilities.browserVersion // W3C format
41
42
  || capabilities.version // JSONWP format
42
43
  || capabilities.browser_version; // BrowserStack
@@ -44,13 +45,14 @@ export class TagPrinter {
44
45
 
45
46
  private platformNameFrom(capabilities: Capabilities.DesiredCapabilities): string {
46
47
  return capabilities.platformName
48
+ || capabilities['appium:platformName']
47
49
  || capabilities.platform
48
50
  || capabilities.os
49
51
  || 'unknown';
50
52
  }
51
53
 
52
54
  private platformVersionFrom(capabilities: Capabilities.DesiredCapabilities): string | undefined {
53
- return capabilities.platformVersion
55
+ return capabilities['appium:platformVersion']
54
56
  || capabilities.os_version;
55
57
  }
56
58
 
@@ -1,5 +1,5 @@
1
- export * from './BrowserCapabilitiesReporter';
2
- export * from './InitialisesReporters';
3
- export * from './OutputStreamBuffer';
4
- export * from './ProvidesWriteStream';
5
- export * from './TagPrinter';
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';
package/src/api.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { WebdriverIOConfig } from './config/index.js';
2
+ export * from './screenplay/index.js';
@@ -0,0 +1 @@
1
+ export * from './WebdriverIOConfig.js';