@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
|
@@ -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,
|
|
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,
|
|
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.
|
|
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
|
-
"
|
|
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": "
|
|
35
|
-
"
|
|
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": "^
|
|
47
|
-
"npm": "^6 || ^7 || ^8 || ^9"
|
|
64
|
+
"node": "^16.13 || ^18.12 || ^20"
|
|
48
65
|
},
|
|
49
66
|
"dependencies": {
|
|
50
|
-
"@serenity-js/core": "3.
|
|
51
|
-
"@serenity-js/web": "3.
|
|
52
|
-
"@wdio/reporter": "^
|
|
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": "^
|
|
62
|
-
"webdriverio": "^
|
|
77
|
+
"@wdio/cli": "^8.10.0",
|
|
78
|
+
"webdriverio": "^8.10.0"
|
|
63
79
|
},
|
|
64
80
|
"peerDependenciesMeta": {
|
|
65
81
|
"@serenity-js/cucumber": {
|
|
@@ -75,40 +91,21 @@
|
|
|
75
91
|
"devDependencies": {
|
|
76
92
|
"@integration/testing-tools": "3.0.0",
|
|
77
93
|
"@types/mocha": "^10.0.1",
|
|
78
|
-
"@wdio/cli": "
|
|
79
|
-
"@wdio/devtools-service": "
|
|
80
|
-
"@wdio/dot-reporter": "
|
|
81
|
-
"@wdio/local-runner": "
|
|
82
|
-
"@wdio/spec-reporter": "
|
|
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",
|
|
83
100
|
"axios": "^1.3.5",
|
|
101
|
+
"c8": "7.13.0",
|
|
84
102
|
"cross-env": "^7.0.3",
|
|
85
103
|
"mocha": "^10.2.0",
|
|
86
104
|
"mocha-multi": "^1.1.7",
|
|
87
105
|
"mocha-testdata": "^1.2.0",
|
|
88
|
-
"
|
|
89
|
-
"puppeteer-core": "^19.9.1",
|
|
106
|
+
"puppeteer-core": "^19.11.1",
|
|
90
107
|
"start-server-and-test": "^2.0.0",
|
|
91
|
-
"webdriverio": "
|
|
92
|
-
},
|
|
93
|
-
"nyc": {
|
|
94
|
-
"include": [
|
|
95
|
-
"src/**/*.ts"
|
|
96
|
-
],
|
|
97
|
-
"exclude": [
|
|
98
|
-
"src/**/*.d.ts",
|
|
99
|
-
"lib",
|
|
100
|
-
"node_modules",
|
|
101
|
-
"spec"
|
|
102
|
-
],
|
|
103
|
-
"extension": [
|
|
104
|
-
".ts"
|
|
105
|
-
],
|
|
106
|
-
"require": [],
|
|
107
|
-
"reporter": [
|
|
108
|
-
"json"
|
|
109
|
-
],
|
|
110
|
-
"cache": true,
|
|
111
|
-
"all": false
|
|
108
|
+
"webdriverio": "8.10.0"
|
|
112
109
|
},
|
|
113
|
-
"gitHead": "
|
|
110
|
+
"gitHead": "e69cea764f50991c3ad742f28926b4345b3e2422"
|
|
114
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 '
|
|
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?:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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:
|
|
71
|
-
cueTimeout:
|
|
69
|
+
outputStream: outputStreamBuffer,
|
|
70
|
+
cueTimeout: config.serenity.cueTimeout,
|
|
72
71
|
interactionTimeout: config.serenity.interactionTimeout,
|
|
73
72
|
|
|
74
|
-
diffFormatter:
|
|
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
|
-
|
|
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 {
|
|
7
|
-
import {
|
|
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 {
|
|
17
|
-
import {
|
|
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 '
|
|
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):
|
|
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:
|
|
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):
|
|
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):
|
|
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):
|
|
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,
|
|
252
|
+
return match<Outcome, Frameworks.TestResult>(finished.outcome)
|
|
230
253
|
.when(ExecutionCompromised, (outcome: ExecutionCompromised) => {
|
|
231
254
|
const error = this.errorFrom(outcome);
|
|
232
255
|
return {
|
package/src/adapter/index.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from './
|
|
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
|
-
|
|
7
|
+
_loadReporter(reporter: Reporters.ReporterEntry): Promise<void>;
|
|
8
8
|
}
|
|
@@ -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,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
|
|
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
|
|
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 @@
|
|
|
1
|
+
export * from './WebdriverIOConfig.js';
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,32 @@
|
|
|
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
|
+
import { Capabilities } from '@wdio/types';
|
|
4
|
+
import { EventEmitter } from 'events';
|
|
3
5
|
|
|
4
|
-
import {
|
|
6
|
+
import { InitialisesReporters, ProvidesWriteStream } from './adapter/reporter/index.js';
|
|
7
|
+
import { WebdriverIOConfig } from './config/index.js';
|
|
5
8
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* WebdriverIO Framework Adapter integrates WebdriverIO with Serenity/JS
|
|
11
|
+
*/
|
|
12
|
+
export default {
|
|
13
|
+
async init(
|
|
14
|
+
cid: string,
|
|
15
|
+
config: WebdriverIOConfig,
|
|
16
|
+
specs: string[],
|
|
17
|
+
capabilities: Capabilities.RemoteCapability,
|
|
18
|
+
reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters
|
|
19
|
+
): Promise<{ hasTests: () => boolean, run: () => Promise<number> }> {
|
|
20
|
+
const { WebdriverIOFrameworkAdapterFactory } = await import('./adapter/index.js');
|
|
11
21
|
|
|
12
|
-
|
|
22
|
+
const adapterFactory = new WebdriverIOFrameworkAdapterFactory(
|
|
23
|
+
serenity,
|
|
24
|
+
new ModuleLoader(process.cwd()),
|
|
25
|
+
Path.from(process.cwd()),
|
|
26
|
+
);
|
|
13
27
|
|
|
14
|
-
|
|
15
|
-
|
|
28
|
+
return adapterFactory.init(cid, config, specs, capabilities, reporter);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export * from './api.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BrowserCapabilities, BrowseTheWeb } from '@serenity-js/web';
|
|
2
|
-
import type
|
|
2
|
+
import type { Browser, Element } from 'webdriverio';
|
|
3
3
|
|
|
4
|
-
import { WebdriverIOBrowsingSession } from '../models';
|
|
4
|
+
import { WebdriverIOBrowsingSession } from '../models/index.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* This implementation of the {@apilink Ability|ability} to {@apilink BrowseTheWeb}
|
|
@@ -36,13 +36,13 @@ import { WebdriverIOBrowsingSession } from '../models';
|
|
|
36
36
|
*
|
|
37
37
|
* @group Abilities
|
|
38
38
|
*/
|
|
39
|
-
export class BrowseTheWebWithWebdriverIO extends BrowseTheWeb<
|
|
39
|
+
export class BrowseTheWebWithWebdriverIO extends BrowseTheWeb<Element> {
|
|
40
40
|
|
|
41
|
-
static using(browserInstance:
|
|
41
|
+
static using(browserInstance: Browser): BrowseTheWebWithWebdriverIO {
|
|
42
42
|
return new BrowseTheWebWithWebdriverIO(browserInstance);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
constructor(protected readonly browser:
|
|
45
|
+
constructor(protected readonly browser: Browser) {
|
|
46
46
|
super(new WebdriverIOBrowsingSession(browser));
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './BrowseTheWebWithWebdriverIO';
|
|
1
|
+
export * from './BrowseTheWebWithWebdriverIO.js';
|