@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.
- package/CHANGELOG.md +18 -0
- package/README.md +91 -41
- package/esm/adapter/TestRunnerLoader.d.ts +16 -0
- package/esm/adapter/TestRunnerLoader.d.ts.map +1 -0
- package/esm/adapter/TestRunnerLoader.js +58 -0
- package/esm/adapter/TestRunnerLoader.js.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +24 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.js +77 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +19 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js +15 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
- package/esm/adapter/WebdriverIONotifier.d.ts +72 -0
- package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -0
- package/esm/adapter/WebdriverIONotifier.js +385 -0
- package/esm/adapter/WebdriverIONotifier.js.map +1 -0
- package/esm/adapter/index.d.ts +2 -0
- package/esm/adapter/index.d.ts.map +1 -0
- package/esm/adapter/index.js +2 -0
- package/esm/adapter/index.js.map +1 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.js +41 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
- package/esm/adapter/reporter/InitialisesReporters.d.ts +8 -0
- package/esm/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
- package/esm/adapter/reporter/InitialisesReporters.js +2 -0
- package/esm/adapter/reporter/InitialisesReporters.js.map +1 -0
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
- package/esm/adapter/reporter/OutputStreamBuffer.js +24 -0
- package/esm/adapter/reporter/OutputStreamBuffer.js.map +1 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.js +21 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
- package/esm/adapter/reporter/ProvidesWriteStream.js +2 -0
- package/esm/adapter/reporter/ProvidesWriteStream.js.map +1 -0
- package/esm/adapter/reporter/TagPrinter.d.ts +17 -0
- package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -0
- package/esm/adapter/reporter/TagPrinter.js +52 -0
- package/esm/adapter/reporter/TagPrinter.js.map +1 -0
- package/esm/adapter/reporter/index.d.ts +6 -0
- package/esm/adapter/reporter/index.d.ts.map +1 -0
- package/esm/adapter/reporter/index.js +6 -0
- package/esm/adapter/reporter/index.js.map +1 -0
- package/esm/api.d.ts +3 -0
- package/esm/api.d.ts.map +1 -0
- package/esm/api.js +2 -0
- package/esm/api.js.map +1 -0
- package/esm/config/WebdriverIOConfig.d.ts.map +1 -0
- package/esm/config/WebdriverIOConfig.js +2 -0
- package/esm/config/WebdriverIOConfig.js.map +1 -0
- package/esm/config/index.d.ts +2 -0
- package/esm/config/index.d.ts.map +1 -0
- package/esm/config/index.js +2 -0
- package/esm/config/index.js.map +1 -0
- package/esm/index.d.ts +16 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +14 -0
- package/esm/index.js.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +42 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +48 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
- package/esm/screenplay/abilities/index.d.ts +2 -0
- package/esm/screenplay/abilities/index.d.ts.map +1 -0
- package/esm/screenplay/abilities/index.js +2 -0
- package/esm/screenplay/abilities/index.js.map +1 -0
- package/esm/screenplay/index.d.ts +3 -0
- package/esm/screenplay/index.d.ts.map +1 -0
- package/esm/screenplay/index.js +3 -0
- package/esm/screenplay/index.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +24 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js +121 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOCookie.d.ts +14 -0
- package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOCookie.js +40 -0
- package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.js +19 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +29 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.js +73 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPage.d.ts +48 -0
- package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPage.js +203 -0
- package/esm/screenplay/models/WebdriverIOPage.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPageElement.js +205 -0
- package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +32 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +78 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js +40 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
- package/esm/screenplay/models/index.d.ts +5 -0
- package/esm/screenplay/models/index.d.ts.map +1 -0
- package/esm/screenplay/models/index.js +5 -0
- package/esm/screenplay/models/index.js.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +22 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.js +97 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.js +28 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
- package/esm/screenplay/models/locators/index.d.ts +3 -0
- package/esm/screenplay/models/locators/index.d.ts.map +1 -0
- package/esm/screenplay/models/locators/index.js +3 -0
- package/esm/screenplay/models/locators/index.js.map +1 -0
- package/lib/adapter/TestRunnerLoader.d.ts +3 -3
- package/lib/adapter/TestRunnerLoader.d.ts.map +1 -1
- package/lib/adapter/TestRunnerLoader.js +8 -8
- package/lib/adapter/TestRunnerLoader.js.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +5 -4
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapter.js +51 -21
- package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +5 -5
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js +2 -2
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -1
- package/lib/adapter/WebdriverIONotifier.d.ts +6 -6
- package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -1
- package/lib/adapter/WebdriverIONotifier.js +48 -24
- package/lib/adapter/WebdriverIONotifier.js.map +1 -1
- package/lib/adapter/index.d.ts +1 -2
- package/lib/adapter/index.d.ts.map +1 -1
- package/lib/adapter/index.js +1 -2
- package/lib/adapter/index.js.map +1 -1
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +1 -1
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -1
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.js +4 -4
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -1
- package/lib/adapter/reporter/InitialisesReporters.d.ts +2 -2
- package/lib/adapter/reporter/InitialisesReporters.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts +1 -1
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +3 -3
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBufferPrinter.js +2 -2
- package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -1
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts +1 -1
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -1
- package/lib/adapter/reporter/TagPrinter.d.ts +2 -2
- package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -1
- package/lib/adapter/reporter/TagPrinter.js +7 -5
- package/lib/adapter/reporter/TagPrinter.js.map +1 -1
- package/lib/adapter/reporter/index.d.ts +5 -5
- package/lib/adapter/reporter/index.d.ts.map +1 -1
- package/lib/adapter/reporter/index.js +5 -5
- package/lib/adapter/reporter/index.js.map +1 -1
- package/lib/api.d.ts +3 -0
- package/lib/api.d.ts.map +1 -0
- package/lib/api.js +18 -0
- package/lib/api.js.map +1 -0
- package/lib/config/WebdriverIOConfig.d.ts +128 -0
- package/lib/config/WebdriverIOConfig.d.ts.map +1 -0
- package/lib/config/WebdriverIOConfig.js.map +1 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +18 -0
- package/lib/config/index.js.map +1 -0
- package/lib/index.d.ts +15 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +12 -5
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -0
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +5 -5
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -1
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +2 -2
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -1
- package/lib/screenplay/abilities/index.d.ts +1 -1
- package/lib/screenplay/abilities/index.d.ts.map +1 -1
- package/lib/screenplay/abilities/index.js +1 -1
- package/lib/screenplay/abilities/index.js.map +1 -1
- package/lib/screenplay/index.d.ts +2 -2
- package/lib/screenplay/index.d.ts.map +1 -1
- package/lib/screenplay/index.js +2 -2
- package/lib/screenplay/index.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +4 -4
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js +12 -12
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOCookie.d.ts +2 -2
- package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +1 -1
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +3 -3
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.js +3 -3
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPage.d.ts +9 -9
- package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPage.js +9 -12
- package/lib/screenplay/models/WebdriverIOPage.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts +2 -2
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPageElement.js +16 -15
- package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +1 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -1
- package/lib/screenplay/models/index.d.ts +4 -4
- package/lib/screenplay/models/index.d.ts.map +1 -1
- package/lib/screenplay/models/index.js +4 -4
- package/lib/screenplay/models/index.js.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +10 -10
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIOLocator.js +3 -3
- package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts +5 -5
- package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -1
- package/lib/screenplay/models/locators/index.d.ts +2 -2
- package/lib/screenplay/models/locators/index.d.ts.map +1 -1
- package/lib/screenplay/models/locators/index.js +2 -2
- package/lib/screenplay/models/locators/index.js.map +1 -1
- package/package.json +39 -42
- package/src/adapter/TestRunnerLoader.ts +15 -10
- package/src/adapter/WebdriverIOFrameworkAdapter.ts +39 -26
- package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +4 -4
- package/src/adapter/WebdriverIONotifier.ts +37 -14
- package/src/adapter/index.ts +1 -2
- package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +4 -4
- package/src/adapter/reporter/InitialisesReporters.ts +2 -2
- package/src/adapter/reporter/OutputStreamBuffer.ts +1 -1
- package/src/adapter/reporter/OutputStreamBufferPrinter.ts +3 -3
- package/src/adapter/reporter/ProvidesWriteStream.ts +1 -1
- package/src/adapter/reporter/TagPrinter.ts +6 -4
- package/src/adapter/reporter/index.ts +5 -5
- package/src/api.ts +2 -0
- package/src/config/index.ts +1 -0
- package/src/index.ts +27 -10
- package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +5 -5
- package/src/screenplay/abilities/index.ts +1 -1
- package/src/screenplay/index.ts +2 -2
- package/src/screenplay/models/WebdriverIOBrowsingSession.ts +8 -8
- package/src/screenplay/models/WebdriverIOCookie.ts +2 -2
- package/src/screenplay/models/WebdriverIOErrorHandler.ts +1 -1
- package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +4 -4
- package/src/screenplay/models/WebdriverIOPage.ts +11 -15
- package/src/screenplay/models/WebdriverIOPageElement.ts +21 -21
- package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +8 -3
- package/src/screenplay/models/index.ts +4 -4
- package/src/screenplay/models/locators/WebdriverIOLocator.ts +17 -17
- package/src/screenplay/models/locators/WebdriverIORootLocator.ts +5 -5
- package/src/screenplay/models/locators/index.ts +2 -2
- package/lib/adapter/WebdriverIOConfig.d.ts.map +0 -1
- package/lib/adapter/WebdriverIOConfig.js.map +0 -1
- package/tsconfig.build.json +0 -17
- /package/{lib/adapter → esm/config}/WebdriverIOConfig.d.ts +0 -0
- /package/lib/{adapter → config}/WebdriverIOConfig.js +0 -0
- /package/src/{adapter → config}/WebdriverIOConfig.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.2.0](https://github.com/serenity-js/serenity-js/compare/v3.1.6...v3.2.0) (2023-05-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **webdriverio:** aligned CJS and ESM exports to offer a consistent developer experience ([c72213b](https://github.com/serenity-js/serenity-js/commit/c72213bc4527cda3bb64f208ebdb74f25b366302))
|
|
12
|
+
* **webdriverio:** support for WebdriverIO 8.10.0 ([71da9f9](https://github.com/serenity-js/serenity-js/commit/71da9f93d6c4af3ae9e1734b38107418ada37f9a))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **core:** introduced support for Node.js 20, dropped support for Node.js 14 ([491fef8](https://github.com/serenity-js/serenity-js/commit/491fef8df672a2b40d247887b3da409dccbd26fd)), closes [#1678](https://github.com/serenity-js/serenity-js/issues/1678)
|
|
18
|
+
* **webdriverio:** support for WebdriverIO 8 ([deeedad](https://github.com/serenity-js/serenity-js/commit/deeedadeeb50b5b5709d428e82249901282233ac)), closes [#1541](https://github.com/serenity-js/serenity-js/issues/1541) [#1682](https://github.com/serenity-js/serenity-js/issues/1682) [webdriverio/webdriverio#10314](https://github.com/webdriverio/webdriverio/issues/10314)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
## [3.1.6](https://github.com/serenity-js/serenity-js/compare/v3.1.5...v3.1.6) (2023-04-18)
|
|
7
25
|
|
|
8
26
|
|
package/README.md
CHANGED
|
@@ -5,17 +5,24 @@
|
|
|
5
5
|
[](https://matrix.to/#/#serenity-js:gitter.im)
|
|
6
6
|
[](https://github.com/sponsors/serenity-js)
|
|
7
7
|
|
|
8
|
-
[Serenity/JS](https://serenity-js.org) is an innovative framework designed to make acceptance and regression testing
|
|
8
|
+
[Serenity/JS](https://serenity-js.org) is an innovative open-source framework designed to make acceptance and regression testing
|
|
9
9
|
of complex software systems faster, more collaborative and easier to scale.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
⭐️ Get started with Serenity/JS!
|
|
12
|
+
- [Serenity/JS Handbook](https://serenity-js.org/handbook) and [tutorial](https://serenity-js.org/handbook/web-testing/your-first-web-scenario),
|
|
13
|
+
- [API documentation](https://serenity-js.org/api/core),
|
|
14
|
+
- [Serenity/JS project templates on GitHub](https://serenity-js.org/handbook/getting-started#serenityjs-project-templates).
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
👋 Join the Serenity/JS Community!
|
|
17
|
+
- Meet other Serenity/JS developers and maintainers on the [Serenity/JS Community chat channel](https://matrix.to/#/#serenity-js:gitter.im),
|
|
18
|
+
- Find answers to your Serenity/JS questions on the [Serenity/JS Forum](https://github.com/orgs/serenity-js/discussions/categories/how-do-i),
|
|
19
|
+
- Learn how to [contribute to Serenity/JS](https://serenity-js.org/contributing),
|
|
20
|
+
- Support the project and gain access to [Serenity/JS Playbooks](https://github.com/serenity-js/playbooks) by becoming a [Serenity/JS GitHub Sponsor](https://github.com/sponsors/serenity-js)!
|
|
14
21
|
|
|
15
22
|
## Serenity/JS WebdriverIO
|
|
16
23
|
|
|
17
|
-
[`@serenity-js/webdriverio`](https://serenity-js.org/
|
|
18
|
-
for [WebdriverIO](https://webdriver.io/)
|
|
24
|
+
[`@serenity-js/webdriverio`](https://serenity-js.org/api/webdriverio/) module is a [Screenplay Pattern](https://serenity-js.org/handbook/thinking-in-serenity-js/screenplay-pattern.html)-style adapter
|
|
25
|
+
for [WebdriverIO](https://webdriver.io/) that will help you with testing Web and mobile apps.
|
|
19
26
|
|
|
20
27
|
### Installation
|
|
21
28
|
|
|
@@ -25,7 +32,7 @@ To install this module, run the following command in your [WebdriverIO project d
|
|
|
25
32
|
npm install --save-dev @serenity-js/{assertions,console-reporter,core,serenity-bdd,web,webdriverio}
|
|
26
33
|
```
|
|
27
34
|
|
|
28
|
-
Next, install
|
|
35
|
+
Next, install a [Serenity/JS test runner adapter](https://serenity-js.org/handbook/test-runners/) appropriate for your preferred test runner.
|
|
29
36
|
|
|
30
37
|
#### Usage with Cucumber.js
|
|
31
38
|
|
|
@@ -50,49 +57,34 @@ To use Serenity/JS WebdriverIO with Mocha, install the following adapter:
|
|
|
50
57
|
npm install --save-dev @serenity-js/mocha
|
|
51
58
|
```
|
|
52
59
|
|
|
53
|
-
### Configuring
|
|
60
|
+
### Configuring WebdriverIO
|
|
54
61
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
import { BrowseTheWebWithWebdriverIO } from '@serenity-js/webdriverio';
|
|
59
|
-
import * as wdio from 'webdriverio';
|
|
62
|
+
To integrate Serenity/JS with WebdriverIO,
|
|
63
|
+
configure your `wdio.conf.ts` to specify `framework: '@serenity-js/webdriverio'`.
|
|
64
|
+
You can [configure Serenity/JS](https://serenity-js.org/api/core/class/SerenityConfig) in the same file.
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
class Actors implements Cast {
|
|
63
|
-
constructor(private readonly browser: wdio.Browser<'async'>) {
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
prepare(actor: Actor): Actor {
|
|
67
|
-
return actor.whoCan(
|
|
68
|
-
BrowseTheWebWithWebdriverIO.using(this.browser),
|
|
69
|
-
// ... add other abilities as needed, like CallAnApi or TakeNotes
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
```typescript
|
|
66
|
+
```typescript title="wdio.conf.ts"
|
|
77
67
|
// wdio.conf.ts
|
|
78
68
|
|
|
79
|
-
//
|
|
69
|
+
// Optional, import custom Actors if needed; More on this below.
|
|
80
70
|
import { Actors } from './serenity/Actors.ts'
|
|
81
71
|
|
|
82
72
|
export const config: WebdriverIOConfig = {
|
|
73
|
+
|
|
83
74
|
// Tell WebdriverIO to use Serenity/JS framework
|
|
84
75
|
framework: '@serenity-js/webdriverio',
|
|
85
76
|
|
|
77
|
+
// Serenity/JS configuration
|
|
86
78
|
serenity: {
|
|
87
79
|
// Configure Serenity/JS to use an appropriate test runner adapter
|
|
88
80
|
runner: 'cucumber',
|
|
89
81
|
// runner: 'mocha',
|
|
90
82
|
// runner: 'jasmine',
|
|
91
83
|
|
|
92
|
-
// register custom
|
|
93
|
-
actors: new Actors(),
|
|
84
|
+
// Optional, register custom Cast to configure your Serenity/JS actors
|
|
85
|
+
actors: new Actors(`https://api.example.org`),
|
|
94
86
|
|
|
95
|
-
// Register
|
|
87
|
+
// Register Serenity/JS reporting services, a.k.a. the "stage crew"
|
|
96
88
|
crew: [
|
|
97
89
|
'@serenity-js/console-reporter',
|
|
98
90
|
'@serenity-js/serenity-bdd',
|
|
@@ -135,14 +127,58 @@ export const config: WebdriverIOConfig = {
|
|
|
135
127
|
```
|
|
136
128
|
|
|
137
129
|
Learn more about:
|
|
138
|
-
- [Cucumber configuration options](https://serenity-js.org/
|
|
139
|
-
- [Jasmine configuration options](https://serenity-js.org/
|
|
140
|
-
- [Mocha configuration options](https://serenity-js.org/
|
|
130
|
+
- [Cucumber configuration options](https://serenity-js.org/api/cucumber-adapter/interface/CucumberConfig/)
|
|
131
|
+
- [Jasmine configuration options](https://serenity-js.org/api/jasmine-adapter/interface/JasmineConfig/)
|
|
132
|
+
- [Mocha configuration options](https://serenity-js.org/api/mocha-adapter/interface/MochaConfig/)
|
|
141
133
|
- [WebdriverIO configuration file](https://webdriver.io/docs/configurationfile/)
|
|
142
134
|
|
|
143
|
-
|
|
135
|
+
#### Using custom Serenity/JS Actors
|
|
136
|
+
|
|
137
|
+
By default, Serenity/JS uses a default [cast of actors](https://serenity-js.org/api/core/class/Cast) where every actor can:
|
|
138
|
+
- [`BrowseTheWebWithWebdriverIO`](https://serenity-js.org/api/webdriverio/class/BrowseTheWebWithWebdriverIO)
|
|
139
|
+
- [`TakeNotes.usingAnEmptyNotepad()`](https://serenity-js.org/api/core/class/TakeNotes)
|
|
140
|
+
|
|
141
|
+
If you're planning to implement scenarios where [actors](https://serenity-js.org/api/core/class/Actor) have
|
|
142
|
+
additional [abilities](https://serenity-js.org/api/core/class/Ability), you can replace this default setup
|
|
143
|
+
with a custom [`Cast`](https://serenity-js.org/api/core/class/Cast), like this one:
|
|
144
|
+
|
|
145
|
+
```typescript title="serenity/Actors.ts"
|
|
146
|
+
// serenity/Actors.ts
|
|
147
|
+
import { Actor, Cast, TakeNotes } from '@serenity-js/core';
|
|
148
|
+
import { CallAnApi } from '@serenity-js/rest';
|
|
149
|
+
import { BrowseTheWebWithWebdriverIO } from '@serenity-js/webdriverio';
|
|
150
|
+
import type { Browser } from 'webdriverio';
|
|
151
|
+
|
|
152
|
+
export class Actors implements Cast {
|
|
144
153
|
|
|
145
|
-
|
|
154
|
+
// Inject custom parameters via constructor
|
|
155
|
+
constructor(private readonly apiUrl: string) {
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
prepare(actor: Actor): Actor {
|
|
159
|
+
// You can assign abilities based on actor name, env variables, and so on
|
|
160
|
+
switch (actor.name) {
|
|
161
|
+
|
|
162
|
+
case 'Apisitt':
|
|
163
|
+
return actor.whoCan(
|
|
164
|
+
CallAnApi.at(this.apiUrl)
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
default:
|
|
168
|
+
return actor.whoCan(
|
|
169
|
+
BrowseTheWebWithWebdriverIO.using(browser), // global WDIO browser
|
|
170
|
+
TakeNotes.usingAnEmptyNotepad(),
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Using Serenity/JS with WebdriverIO and Mocha
|
|
179
|
+
|
|
180
|
+
```typescript title="specs/example.spec.ts"
|
|
181
|
+
// specs/example.spec.ts
|
|
146
182
|
import { actorCalled } from '@serenity-js/core';
|
|
147
183
|
import { Ensure, equals } from '@serenity-js/assertions';
|
|
148
184
|
import { By, Navigate, PageElement, Text } from '@serenity-js/web';
|
|
@@ -165,10 +201,10 @@ describe('Serenity/JS', () => {
|
|
|
165
201
|
Navigate.to('https://serenity-js.org'),
|
|
166
202
|
Ensure.that(
|
|
167
203
|
Text.of(SerenityJSWebsite.header()),
|
|
168
|
-
equals('
|
|
204
|
+
equals('Enable collaborative test automation at any scale!')
|
|
169
205
|
),
|
|
170
206
|
)
|
|
171
|
-
})
|
|
207
|
+
});
|
|
172
208
|
});
|
|
173
209
|
```
|
|
174
210
|
|
|
@@ -182,6 +218,20 @@ The easiest way for you to start writing web-based acceptance tests using Sereni
|
|
|
182
218
|
- [Serenity/JS, Cucumber, and WebdriverIO template](https://github.com/serenity-js/serenity-js-cucumber-webdriverio-template)
|
|
183
219
|
- Serenity/JS, Jasmine, and WebdriverIO template (coming soon!)
|
|
184
220
|
|
|
185
|
-
##
|
|
221
|
+
## 📣 Stay up to date
|
|
222
|
+
|
|
223
|
+
New features, tutorials, and demos are coming soon!
|
|
224
|
+
Follow [Serenity/JS on LinkedIn](https://www.linkedin.com/company/serenity-js),
|
|
225
|
+
subscribe to [Serenity/JS channel on YouTube](https://www.youtube.com/@serenity-js) and join the [Serenity/JS Community Chat](https://matrix.to/#/#serenity-js:gitter.im) to stay up to date!
|
|
226
|
+
Please also make sure to star ⭐️ [Serenity/JS on GitHub](https://github.com/serenity-js/serenity-js) to help others discover the framework!
|
|
227
|
+
|
|
228
|
+
[](https://www.linkedin.com/company/serenity-js)
|
|
229
|
+
[](https://www.youtube.com/@serenity-js)
|
|
230
|
+
[](https://matrix.to/#/#serenity-js:gitter.im)
|
|
231
|
+
[](https://github.com/serenity-js/serenity-js)
|
|
232
|
+
|
|
233
|
+
## 💛 Support Serenity/JS
|
|
234
|
+
|
|
235
|
+
If you appreciate all the effort that goes into making sophisticated tools easy to work with, please support our work and become a Serenity/JS GitHub Sponsor today!
|
|
186
236
|
|
|
187
|
-
|
|
237
|
+
[](https://github.com/sponsors/serenity-js)
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
export declare class TestRunnerLoader {
|
|
5
|
+
private readonly loader;
|
|
6
|
+
private readonly cwd;
|
|
7
|
+
private readonly cid;
|
|
8
|
+
private readonly fileSystem;
|
|
9
|
+
private readonly finder;
|
|
10
|
+
constructor(loader: ModuleLoader, cwd: Path, cid: string);
|
|
11
|
+
runnerAdapterFor(config: WebdriverIOConfig): TestRunnerAdapter;
|
|
12
|
+
private cucumberAdapter;
|
|
13
|
+
private jasmineAdapter;
|
|
14
|
+
private mochaAdapter;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=TestRunnerLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ConfigurationError } from '@serenity-js/core';
|
|
2
|
+
import { Config, FileFinder, FileSystem, Path } from '@serenity-js/core/lib/io/index.js';
|
|
3
|
+
export class TestRunnerLoader {
|
|
4
|
+
constructor(loader, cwd, cid) {
|
|
5
|
+
this.loader = loader;
|
|
6
|
+
this.cwd = cwd;
|
|
7
|
+
this.cid = cid;
|
|
8
|
+
this.fileSystem = new FileSystem(cwd);
|
|
9
|
+
this.finder = new FileFinder(cwd);
|
|
10
|
+
}
|
|
11
|
+
runnerAdapterFor(config) {
|
|
12
|
+
switch (config?.serenity?.runner) {
|
|
13
|
+
case 'cucumber':
|
|
14
|
+
return this.cucumberAdapter(config?.cucumberOpts);
|
|
15
|
+
case 'jasmine':
|
|
16
|
+
return this.jasmineAdapter(config?.jasmineOpts);
|
|
17
|
+
case 'mocha':
|
|
18
|
+
case undefined:
|
|
19
|
+
return this.mochaAdapter(config?.mochaOpts);
|
|
20
|
+
default:
|
|
21
|
+
throw new ConfigurationError(`"${config?.serenity?.runner}" is not a supported test runner. Please use "mocha", "jasmine", or "cucumber"`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
cucumberAdapter(cucumberOptions) {
|
|
25
|
+
const { CucumberCLIAdapter, CucumberFormat, StandardOutput, TempFileOutput } = this.loader.require('@serenity-js/cucumber/lib/adapter/index.js');
|
|
26
|
+
delete cucumberOptions?.timeout; // todo: support setting a timeout via config?
|
|
27
|
+
delete cucumberOptions?.parallel; // WebdriverIO handles that already
|
|
28
|
+
const cleanedCucumberOptions = new Config(cucumberOptions)
|
|
29
|
+
.where('require', requires => this.finder.filesMatching(requires).map(p => p.value))
|
|
30
|
+
.where('format', values => [].concat(values).map(value => {
|
|
31
|
+
const format = new CucumberFormat(value);
|
|
32
|
+
if (format.output === '') {
|
|
33
|
+
return format.value;
|
|
34
|
+
}
|
|
35
|
+
const basename = Path.from(format.output).basename();
|
|
36
|
+
const filenameParts = basename.split('.');
|
|
37
|
+
if (filenameParts[0] === basename) {
|
|
38
|
+
return `${format.formatter}:${format.output}.${this.cid}`;
|
|
39
|
+
}
|
|
40
|
+
filenameParts.splice(-1, 0, `${this.cid}`);
|
|
41
|
+
return `${format.formatter}:${format.output.replace(basename, filenameParts.join('.'))}`;
|
|
42
|
+
})).object();
|
|
43
|
+
// check if we need to free up stdout for any native reporters
|
|
44
|
+
const output = cleanedCucumberOptions?.format?.some(format => new CucumberFormat(format).output === '')
|
|
45
|
+
? new TempFileOutput(this.fileSystem)
|
|
46
|
+
: new StandardOutput();
|
|
47
|
+
return new CucumberCLIAdapter(cleanedCucumberOptions, this.loader, this.fileSystem, output);
|
|
48
|
+
}
|
|
49
|
+
jasmineAdapter(jasmineOptions) {
|
|
50
|
+
const { JasmineAdapter } = this.loader.require('@serenity-js/jasmine/lib/adapter/index.js');
|
|
51
|
+
return new JasmineAdapter(jasmineOptions, this.loader);
|
|
52
|
+
}
|
|
53
|
+
mochaAdapter(mochaOptions) {
|
|
54
|
+
const { MochaAdapter } = this.loader.require('@serenity-js/mocha/lib/adapter/index.js');
|
|
55
|
+
return new MochaAdapter(mochaOptions, this.loader);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=TestRunnerLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestRunnerLoader.js","sourceRoot":"","sources":["../../src/adapter/TestRunnerLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Serenity } from '@serenity-js/core';
|
|
3
|
+
import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
|
|
4
|
+
import type { Capabilities } from '@wdio/types';
|
|
5
|
+
import type { EventEmitter } from 'events';
|
|
6
|
+
import { WebdriverIOConfig } from '../config/index.js';
|
|
7
|
+
import { InitialisesReporters, ProvidesWriteStream } from './reporter/index.js';
|
|
8
|
+
export declare class WebdriverIOFrameworkAdapter {
|
|
9
|
+
private readonly serenity;
|
|
10
|
+
private readonly loader;
|
|
11
|
+
private readonly cwd;
|
|
12
|
+
private readonly cid;
|
|
13
|
+
private readonly specs;
|
|
14
|
+
private readonly capabilities;
|
|
15
|
+
private readonly reporter;
|
|
16
|
+
private adapter;
|
|
17
|
+
private notifier;
|
|
18
|
+
constructor(serenity: Serenity, loader: ModuleLoader, cwd: Path, cid: string, webdriverIOConfig: WebdriverIOConfig, specs: string[], capabilities: Capabilities.RemoteCapability, reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters);
|
|
19
|
+
init(): Promise<WebdriverIOFrameworkAdapter>;
|
|
20
|
+
hasTests(): boolean;
|
|
21
|
+
run(): Promise<number>;
|
|
22
|
+
private defaultConfig;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=WebdriverIOFrameworkAdapter.d.ts.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AnsiDiffFormatter, ArtifactArchiver, Cast, TakeNotes } from '@serenity-js/core';
|
|
2
|
+
import { Path } from '@serenity-js/core/lib/io/index.js';
|
|
3
|
+
import * as deepmerge from 'deepmerge';
|
|
4
|
+
import { isRecord } from 'tiny-types/lib/objects/isRecord.js';
|
|
5
|
+
import { BrowseTheWebWithWebdriverIO } from '../screenplay/index.js';
|
|
6
|
+
import { BrowserCapabilitiesReporter, OutputStreamBuffer } from './reporter/index.js';
|
|
7
|
+
import { OutputStreamBufferPrinter } from './reporter/OutputStreamBufferPrinter.js';
|
|
8
|
+
import { TestRunnerLoader } from './TestRunnerLoader.js';
|
|
9
|
+
import { WebdriverIONotifier } from './WebdriverIONotifier.js';
|
|
10
|
+
export class WebdriverIOFrameworkAdapter {
|
|
11
|
+
constructor(serenity, loader, cwd, cid, webdriverIOConfig, specs, capabilities, reporter) {
|
|
12
|
+
this.serenity = serenity;
|
|
13
|
+
this.loader = loader;
|
|
14
|
+
this.cwd = cwd;
|
|
15
|
+
this.cid = cid;
|
|
16
|
+
this.specs = specs;
|
|
17
|
+
this.capabilities = capabilities;
|
|
18
|
+
this.reporter = reporter;
|
|
19
|
+
const config = deepmerge.default(this.defaultConfig(), webdriverIOConfig, {
|
|
20
|
+
isMergeableObject: isRecord,
|
|
21
|
+
});
|
|
22
|
+
// SauceLabs service serialises the config object for debugging.
|
|
23
|
+
// However, since Serenity/JS Stage is a pub/sub mechanism,
|
|
24
|
+
// it contains cyclic references which are not serialisable.
|
|
25
|
+
// We get rid of them from the config object to avoid confusing other services.
|
|
26
|
+
delete webdriverIOConfig.serenity;
|
|
27
|
+
this.adapter = new TestRunnerLoader(this.loader, this.cwd, this.cid)
|
|
28
|
+
.runnerAdapterFor(config);
|
|
29
|
+
this.notifier = new WebdriverIONotifier(config, capabilities, reporter, this.adapter.successThreshold(), cid, this.specs);
|
|
30
|
+
const outputStreamBuffer = new OutputStreamBuffer(`[${this.cid}]`);
|
|
31
|
+
const outputStreamBufferPrinter = new OutputStreamBufferPrinter(outputStreamBuffer, reporter.getWriteStreamObject('@serenity-js/webdriverio'));
|
|
32
|
+
this.serenity.configure({
|
|
33
|
+
outputStream: outputStreamBuffer,
|
|
34
|
+
cueTimeout: config.serenity.cueTimeout,
|
|
35
|
+
interactionTimeout: config.serenity.interactionTimeout,
|
|
36
|
+
diffFormatter: config.serenity.diffFormatter ?? new AnsiDiffFormatter(),
|
|
37
|
+
actors: config.serenity.actors || Cast.where(actor => actor.whoCan(BrowseTheWebWithWebdriverIO.using(global.browser), TakeNotes.usingAnEmptyNotepad())),
|
|
38
|
+
crew: [
|
|
39
|
+
...config.serenity.crew,
|
|
40
|
+
this.notifier,
|
|
41
|
+
outputStreamBufferPrinter,
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
async init() {
|
|
46
|
+
// This is the only (hacky) way to register a fake reporter programmatically (as of @wdio/reporter 7.4.2)
|
|
47
|
+
// - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/index.ts#L147-L181
|
|
48
|
+
// - https://github.com/webdriverio/webdriverio/blob/365fb0ad79fcf4471f21f23e18afa6818986dbdb/packages/wdio-runner/src/reporter.ts#L24
|
|
49
|
+
const browserCapabilitiesReporter = await (this.reporter._loadReporter([
|
|
50
|
+
BrowserCapabilitiesReporter, {
|
|
51
|
+
serenity: this.serenity
|
|
52
|
+
},
|
|
53
|
+
]));
|
|
54
|
+
this.reporter._reporters.push(browserCapabilitiesReporter);
|
|
55
|
+
// 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
|
|
56
|
+
const absolutePaths = this.specs.map(pathToSpec => Path.fromURI(pathToSpec).value);
|
|
57
|
+
await this.adapter.load(absolutePaths);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
hasTests() {
|
|
61
|
+
return this.adapter.scenarioCount() > 0;
|
|
62
|
+
}
|
|
63
|
+
async run() {
|
|
64
|
+
await this.adapter.run();
|
|
65
|
+
return this.notifier.failureCount();
|
|
66
|
+
}
|
|
67
|
+
defaultConfig() {
|
|
68
|
+
return {
|
|
69
|
+
serenity: {
|
|
70
|
+
crew: [
|
|
71
|
+
ArtifactArchiver.storingArtifactsAt(this.cwd.value, 'target/site/serenity'),
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=WebdriverIOFrameworkAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOFrameworkAdapter.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Serenity } from '@serenity-js/core';
|
|
3
|
+
import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
|
|
4
|
+
import type { Capabilities } from '@wdio/types';
|
|
5
|
+
import type { EventEmitter } from 'events';
|
|
6
|
+
import { WebdriverIOConfig } from '../config/index.js';
|
|
7
|
+
import { InitialisesReporters, ProvidesWriteStream } from './reporter/index.js';
|
|
8
|
+
import { WebdriverIOFrameworkAdapter } from './WebdriverIOFrameworkAdapter.js';
|
|
9
|
+
/**
|
|
10
|
+
* @group Test Runner Adapter
|
|
11
|
+
*/
|
|
12
|
+
export declare class WebdriverIOFrameworkAdapterFactory {
|
|
13
|
+
private readonly serenity;
|
|
14
|
+
private readonly loader;
|
|
15
|
+
private readonly cwd;
|
|
16
|
+
constructor(serenity: Serenity, loader: ModuleLoader, cwd: Path);
|
|
17
|
+
init(cid: string, config: WebdriverIOConfig, specs: string[], capabilities: Capabilities.RemoteCapability, reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters): Promise<WebdriverIOFrameworkAdapter>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=WebdriverIOFrameworkAdapterFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOFrameworkAdapterFactory.d.ts","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapterFactory.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;GAEG;AACH,qBAAa,kCAAkC;IAEvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI;IAIvB,IAAI,CACP,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAC3C,QAAQ,EAAE,YAAY,GAAG,mBAAmB,GAAG,oBAAoB,GACpE,OAAO,CAAC,2BAA2B,CAAC;CAY1C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WebdriverIOFrameworkAdapter } from './WebdriverIOFrameworkAdapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* @group Test Runner Adapter
|
|
4
|
+
*/
|
|
5
|
+
export class WebdriverIOFrameworkAdapterFactory {
|
|
6
|
+
constructor(serenity, loader, cwd) {
|
|
7
|
+
this.serenity = serenity;
|
|
8
|
+
this.loader = loader;
|
|
9
|
+
this.cwd = cwd;
|
|
10
|
+
}
|
|
11
|
+
init(cid, config, specs, capabilities, reporter) {
|
|
12
|
+
return new WebdriverIOFrameworkAdapter(this.serenity, this.loader, this.cwd, cid, config, specs, capabilities, reporter).init();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=WebdriverIOFrameworkAdapterFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOFrameworkAdapterFactory.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapterFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;GAEG;AACH,MAAM,OAAO,kCAAkC;IAC3C,YACqB,QAAkB,EAClB,MAAoB,EACpB,GAAS;QAFT,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;IAE9B,CAAC;IAEM,IAAI,CACP,GAAW,EACX,MAAyB,EACzB,KAAe,EACf,YAA2C,EAC3C,QAAmE;QAEnE,OAAO,IAAI,2BAA2B,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,GAAG,EACH,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,CACX,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;CACJ"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Stage, StageCrewMember } from '@serenity-js/core';
|
|
3
|
+
import { DomainEvent } from '@serenity-js/core/lib/events/index.js';
|
|
4
|
+
import { Outcome } from '@serenity-js/core/lib/model/index.js';
|
|
5
|
+
import type { Capabilities } from '@wdio/types';
|
|
6
|
+
import type { EventEmitter } from 'events';
|
|
7
|
+
import { WebdriverIOConfig } from '../config/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* @package
|
|
10
|
+
*/
|
|
11
|
+
export declare class WebdriverIONotifier implements StageCrewMember {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly capabilities;
|
|
14
|
+
private readonly reporter;
|
|
15
|
+
private readonly successThreshold;
|
|
16
|
+
private readonly cid;
|
|
17
|
+
private readonly specs;
|
|
18
|
+
private failures;
|
|
19
|
+
private stage?;
|
|
20
|
+
/**
|
|
21
|
+
* We don't have access to the "context" object produced by Mocha,
|
|
22
|
+
* and can't assume that other test runners have a similar concept.
|
|
23
|
+
* Since, at the time of writing, none of the WebdriverIO rely on this parameter
|
|
24
|
+
* using a dummy seems to be sufficient.
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
private static dummmyContext;
|
|
28
|
+
private readonly events;
|
|
29
|
+
private readonly suites;
|
|
30
|
+
constructor(config: WebdriverIOConfig, capabilities: Capabilities.RemoteCapability, reporter: EventEmitter, successThreshold: Outcome | {
|
|
31
|
+
Code: number;
|
|
32
|
+
}, cid: string, specs: string[], failures?: number, stage?: Stage);
|
|
33
|
+
assignedTo(stage: Stage): StageCrewMember;
|
|
34
|
+
notifyOf(event: DomainEvent): void;
|
|
35
|
+
private onTestRunFinishes;
|
|
36
|
+
failureCount(): number;
|
|
37
|
+
private onTestSuiteStarts;
|
|
38
|
+
private onTestSuiteFinished;
|
|
39
|
+
private suiteStartEventFrom;
|
|
40
|
+
private suiteNamesConcatenatedWith;
|
|
41
|
+
private suiteEndEventFrom;
|
|
42
|
+
private onSceneStarts;
|
|
43
|
+
private onSceneFinished;
|
|
44
|
+
private willBeRetried;
|
|
45
|
+
private testShortTitleFrom;
|
|
46
|
+
private testFrom;
|
|
47
|
+
private testStartEventFrom;
|
|
48
|
+
private parentSuiteName;
|
|
49
|
+
/**
|
|
50
|
+
* test status is 'passed' | 'pending' | 'skipped' | 'failed' | 'broken' | 'canceled'
|
|
51
|
+
* Since this is not documented, we're mimicking other WebdriverIO reporters, for example:
|
|
52
|
+
* https://github.com/webdriverio/webdriverio/blob/7415f3126e15a733b51721492e4995ceafae6046/packages/wdio-allure-reporter/src/constants.ts#L3-L9
|
|
53
|
+
*
|
|
54
|
+
* @param started
|
|
55
|
+
* @param finished
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private testResultFrom;
|
|
59
|
+
private testEndEventFrom;
|
|
60
|
+
private whenSuccessful;
|
|
61
|
+
private testResultEventFrom;
|
|
62
|
+
private errorFrom;
|
|
63
|
+
/**
|
|
64
|
+
* @see https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-utils/src/shim.ts
|
|
65
|
+
* @param hookName
|
|
66
|
+
* @param hookFunctions
|
|
67
|
+
* @param args
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
private invokeHooks;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=WebdriverIONotifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIONotifier.d.ts","sourceRoot":"","sources":["../../src/adapter/WebdriverIONotifier.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAoD,WAAW,EAAmF,MAAM,uCAAuC,CAAC;AACvM,OAAO,EASH,OAAO,EAGV,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA2BvD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAenD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK,CAAC;IApBlB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAG5B,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAC3C,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAC5C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACxB,QAAQ,GAAE,MAAU,EACpB,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAKzC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAUlC,OAAO,CAAC,iBAAiB;IAIzB,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IAIvB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IA+EtB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,SAAS;IAcjB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;CAkDtB"}
|