testplane 8.20.0-alpha.0 → 8.20.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/README.md +2 -2
- package/build/package.json +23 -15
- package/build/src/base-testplane.js +1 -1
- package/build/src/base-testplane.js.map +1 -1
- package/build/src/browser/browser.d.ts +48 -29
- package/build/src/browser/browser.js +29 -23
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/client-bridge/error.d.ts +3 -0
- package/build/src/browser/client-bridge/error.js +3 -0
- package/build/src/browser/client-bridge/error.js.map +1 -1
- package/build/src/browser/client-scripts/bundle.compat.js +1 -1
- package/build/src/browser/client-scripts/bundle.native.js +1 -1
- package/build/src/browser/client-scripts/index.js +1 -1
- package/build/src/browser/commands/assert-view/errors/assert-view-error.d.ts +3 -0
- package/build/src/browser/commands/assert-view/errors/assert-view-error.js +3 -0
- package/build/src/browser/commands/assert-view/errors/assert-view-error.js.map +1 -1
- package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +3 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js +3 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js.map +1 -1
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.d.ts +3 -0
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js +3 -0
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js.map +1 -1
- package/build/src/browser/commands/assert-view/index.js +23 -3
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/getPuppeteer.js +35 -2
- package/build/src/browser/commands/getPuppeteer.js.map +1 -1
- package/build/src/browser/commands/runStep.d.ts +3 -2
- package/build/src/browser/commands/runStep.js +9 -4
- package/build/src/browser/commands/runStep.js.map +1 -1
- package/build/src/browser/commands/types.d.ts +3 -1
- package/build/src/browser/core-error.d.ts +3 -0
- package/build/src/browser/core-error.js +3 -0
- package/build/src/browser/core-error.js.map +1 -1
- package/build/src/browser/existing-browser.d.ts +117 -10
- package/build/src/browser/existing-browser.js +26 -1
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/callstack.js +9 -10
- package/build/src/browser/history/callstack.js.map +1 -1
- package/build/src/browser/history/index.js +8 -7
- package/build/src/browser/history/index.js.map +1 -1
- package/build/src/browser/history/utils.d.ts +0 -13
- package/build/src/browser/history/utils.js +2 -14
- package/build/src/browser/history/utils.js.map +1 -1
- package/build/src/browser/new-browser.d.ts +21 -29
- package/build/src/browser/new-browser.js +38 -29
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.d.ts +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js.map +1 -1
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.d.ts +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js.map +1 -1
- package/build/src/browser/stacktrace/constants.d.ts +1 -0
- package/build/src/browser/stacktrace/constants.js +5 -1
- package/build/src/browser/stacktrace/constants.js.map +1 -1
- package/build/src/browser/stacktrace/index.js +3 -1
- package/build/src/browser/stacktrace/index.js.map +1 -1
- package/build/src/browser/stacktrace/utils.d.ts +1 -1
- package/build/src/browser/stacktrace/utils.js +35 -12
- package/build/src/browser/stacktrace/utils.js.map +1 -1
- package/build/src/browser-pool/basic-pool.d.ts +16 -13
- package/build/src/browser-pool/basic-pool.js +21 -15
- package/build/src/browser-pool/basic-pool.js.map +1 -1
- package/build/src/browser-pool/caching-pool.d.ts +22 -20
- package/build/src/browser-pool/caching-pool.js +20 -23
- package/build/src/browser-pool/caching-pool.js.map +1 -1
- package/build/src/browser-pool/cancelled-error.d.ts +3 -0
- package/build/src/browser-pool/cancelled-error.js +3 -0
- package/build/src/browser-pool/cancelled-error.js.map +1 -1
- package/build/src/browser-pool/index.d.ts +2 -2
- package/build/src/browser-pool/index.js +8 -8
- package/build/src/browser-pool/index.js.map +1 -1
- package/build/src/browser-pool/limited-pool.d.ts +24 -29
- package/build/src/browser-pool/limited-pool.js +33 -36
- package/build/src/browser-pool/limited-pool.js.map +1 -1
- package/build/src/browser-pool/limited-use-set.d.ts +21 -12
- package/build/src/browser-pool/limited-use-set.js +12 -17
- package/build/src/browser-pool/limited-use-set.js.map +1 -1
- package/build/src/browser-pool/per-browser-limited-pool.d.ts +10 -9
- package/build/src/browser-pool/per-browser-limited-pool.js +14 -10
- package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -1
- package/build/src/browser-pool/types.d.ts +11 -0
- package/build/src/browser-pool/types.js +3 -0
- package/build/src/browser-pool/types.js.map +1 -0
- package/build/src/browser-pool/utils.d.ts +1 -1
- package/build/src/browser-pool/utils.js +4 -1
- package/build/src/browser-pool/utils.js.map +1 -1
- package/build/src/bundle/index.js +347 -88
- package/build/src/cli/commands/list-tests/index.d.ts +4 -0
- package/build/src/cli/commands/list-tests/index.js +55 -0
- package/build/src/cli/commands/list-tests/index.js.map +1 -0
- package/build/src/cli/constants.d.ts +3 -0
- package/build/src/cli/constants.js +7 -0
- package/build/src/cli/constants.js.map +1 -0
- package/build/src/cli/index.d.ts +4 -1
- package/build/src/cli/index.js +40 -48
- package/build/src/cli/index.js.map +1 -1
- package/build/src/cli/info.d.ts +2 -1
- package/build/src/cli/info.js +4 -1
- package/build/src/cli/info.js.map +1 -1
- package/build/src/config/types.d.ts +20 -4
- package/build/src/errors/abort-on-reconnect-error.d.ts +3 -0
- package/build/src/errors/abort-on-reconnect-error.js +3 -0
- package/build/src/errors/abort-on-reconnect-error.js.map +1 -1
- package/build/src/errors/testplane-internal-error.d.ts +3 -0
- package/build/src/errors/testplane-internal-error.js +3 -0
- package/build/src/errors/testplane-internal-error.js.map +1 -1
- package/build/src/events/index.d.ts +1 -1
- package/build/src/events/index.js.map +1 -1
- package/build/src/index.d.ts +9 -3
- package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.d.ts +0 -1
- package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -2
- package/build/src/runner/runner.d.ts +2 -1
- package/build/src/runner/runner.js.map +1 -1
- package/build/src/test-collection/constants.d.ts +5 -0
- package/build/src/test-collection/constants.js +9 -0
- package/build/src/test-collection/constants.js.map +1 -0
- package/build/src/test-collection/formatters/list.d.ts +2 -0
- package/build/src/test-collection/formatters/list.js +33 -0
- package/build/src/test-collection/formatters/list.js.map +1 -0
- package/build/src/test-collection/formatters/tree.d.ts +2 -0
- package/build/src/test-collection/formatters/tree.js +92 -0
- package/build/src/test-collection/formatters/tree.js.map +1 -0
- package/build/src/{test-collection.d.ts → test-collection/index.d.ts} +34 -2
- package/build/src/{test-collection.js → test-collection/index.js} +34 -2
- package/build/src/test-collection/index.js.map +1 -0
- package/build/src/test-reader/build-instructions.d.ts +27 -30
- package/build/src/test-reader/build-instructions.js +21 -18
- package/build/src/test-reader/build-instructions.js.map +1 -1
- package/build/src/test-reader/index.d.ts +12 -8
- package/build/src/test-reader/index.js +53 -48
- package/build/src/test-reader/index.js.map +1 -1
- package/build/src/test-reader/mocha-reader/index.d.ts +2 -1
- package/build/src/test-reader/mocha-reader/index.js +82 -4
- package/build/src/test-reader/mocha-reader/index.js.map +1 -1
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +2 -2
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -1
- package/build/src/test-reader/mocha-reader/utils.d.ts +4 -0
- package/build/src/test-reader/mocha-reader/utils.js +11 -0
- package/build/src/test-reader/mocha-reader/utils.js.map +1 -1
- package/build/src/test-reader/sets-builder/index.d.ts +14 -10
- package/build/src/test-reader/sets-builder/index.js +110 -91
- package/build/src/test-reader/sets-builder/index.js.map +1 -1
- package/build/src/test-reader/sets-builder/set-collection.d.ts +7 -8
- package/build/src/test-reader/sets-builder/set-collection.js +40 -40
- package/build/src/test-reader/sets-builder/set-collection.js.map +1 -1
- package/build/src/test-reader/sets-builder/test-set.d.ts +19 -14
- package/build/src/test-reader/sets-builder/test-set.js +88 -59
- package/build/src/test-reader/sets-builder/test-set.js.map +1 -1
- package/build/src/test-reader/test-object/configurable-test-object.d.ts +3 -2
- package/build/src/test-reader/test-object/configurable-test-object.js +5 -2
- package/build/src/test-reader/test-object/configurable-test-object.js.map +1 -1
- package/build/src/test-reader/test-object/suite.d.ts +2 -2
- package/build/src/test-reader/test-object/suite.js +2 -2
- package/build/src/test-reader/test-object/suite.js.map +1 -1
- package/build/src/test-reader/test-object/test.d.ts +2 -2
- package/build/src/test-reader/test-object/test.js +3 -2
- package/build/src/test-reader/test-object/test.js.map +1 -1
- package/build/src/test-reader/test-object/types.d.ts +5 -0
- package/build/src/test-reader/test-parser-api.d.ts +1 -1
- package/build/src/test-reader/test-parser.d.ts +23 -15
- package/build/src/test-reader/test-parser.js +57 -58
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/test-reader/tree-builder.d.ts +13 -9
- package/build/src/test-reader/tree-builder.js +3 -3
- package/build/src/test-reader/tree-builder.js.map +1 -1
- package/build/src/testplane.d.ts +8 -4
- package/build/src/testplane.js +4 -4
- package/build/src/testplane.js.map +1 -1
- package/build/src/types/helpers.d.ts +1 -0
- package/build/src/types/helpers.js +3 -0
- package/build/src/types/helpers.js.map +1 -0
- package/build/src/types/index.d.ts +27 -16
- package/build/src/types/index.js +15 -0
- package/build/src/types/index.js.map +1 -1
- package/build/src/utils/cli.d.ts +15 -0
- package/build/src/utils/cli.js +42 -0
- package/build/src/utils/cli.js.map +1 -0
- package/build/src/utils/processor.js +3 -2
- package/build/src/utils/processor.js.map +1 -1
- package/build/src/utils/typescript.d.ts +1 -1
- package/build/src/utils/typescript.js +13 -8
- package/build/src/utils/typescript.js.map +1 -1
- package/build/src/validators.d.ts +1 -1
- package/build/src/validators.js +14 -8
- package/build/src/validators.js.map +1 -1
- package/build/src/worker/browser-env/runner/test-runner/index.js +2 -2
- package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/index.d.ts +1 -1
- package/build/src/worker/runner/browser-agent.d.ts +22 -18
- package/build/src/worker/runner/browser-agent.js +6 -3
- package/build/src/worker/runner/browser-agent.js.map +1 -1
- package/build/src/worker/runner/browser-pool.d.ts +1 -2
- package/build/src/worker/runner/caching-test-parser.d.ts +20 -21
- package/build/src/worker/runner/caching-test-parser.js +13 -11
- package/build/src/worker/runner/caching-test-parser.js.map +1 -1
- package/build/src/worker/runner/index.d.ts +1 -1
- package/build/src/worker/runner/index.js +2 -2
- package/build/src/worker/runner/index.js.map +1 -1
- package/build/src/worker/runner/sequence-test-parser.d.ts +14 -13
- package/build/src/worker/runner/sequence-test-parser.js +16 -10
- package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
- package/build/src/worker/runner/simple-test-parser.d.ts +13 -10
- package/build/src/worker/runner/simple-test-parser.js +17 -11
- package/build/src/worker/runner/simple-test-parser.js.map +1 -1
- package/build/src/worker/runner/test-runner/index.js +2 -2
- package/build/src/worker/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/runner/test-runner/types.d.ts +1 -1
- package/build/src/worker/testplane-facade.d.ts +1 -12
- package/build/src/worker/testplane-facade.js +25 -21
- package/build/src/worker/testplane-facade.js.map +1 -1
- package/build/src/worker/testplane.d.ts +2 -1
- package/build/src/worker/testplane.js +3 -3
- package/build/src/worker/testplane.js.map +1 -1
- package/package.json +23 -15
- package/typings/clear-require.d.ts +3 -0
- package/typings/escape-string-regexp.d.ts +3 -0
- package/typings/global.d.ts +10 -7
- package/build/src/browser-pool/pool.d.ts +0 -13
- package/build/src/browser-pool/pool.js +0 -18
- package/build/src/browser-pool/pool.js.map +0 -1
- package/build/src/test-collection.js.map +0 -1
- package/typings/api.d.ts +0 -8
package/README.md
CHANGED
|
@@ -87,9 +87,9 @@ Feel free to visit these pages for a brief overview of some of Testplane feature
|
|
|
87
87
|
- [Dealing with Browsers](docs/dealing-with-browsers.md)
|
|
88
88
|
- [Writing Tests](docs/writing-tests.md)
|
|
89
89
|
- [Browser Commands Reference](docs/commands.md)
|
|
90
|
-
- [Testplane Config Reference](docs/config
|
|
90
|
+
- [Testplane Config Reference](https://testplane.io/docs/v8/config/main/)
|
|
91
91
|
- [Testplane × Typescript](docs/typescript.md)
|
|
92
|
-
- [Testplane CLI](docs/
|
|
92
|
+
- [Testplane CLI](https://testplane.io/docs/v8/command-line/)
|
|
93
93
|
- [Testplane Events](docs/events.md)
|
|
94
94
|
- [Testplane Programmatic API](docs/programmatic-api.md)
|
|
95
95
|
- [Testplane Component Testing (experimental)](docs/component-testing.md)
|
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testplane",
|
|
3
|
-
"version": "8.20.0
|
|
3
|
+
"version": "8.20.0",
|
|
4
4
|
"description": "Tests framework based on mocha and wdio",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://testplane.io/",
|
|
38
38
|
"engines": {
|
|
39
|
-
"node": ">= 18.
|
|
39
|
+
"node": ">= 18.0.0"
|
|
40
40
|
},
|
|
41
41
|
"keywords": [
|
|
42
42
|
"testplane",
|
|
@@ -52,22 +52,22 @@
|
|
|
52
52
|
"license": "MIT",
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@babel/code-frame": "7.24.2",
|
|
55
|
-
"@gemini-testing/commander": "2.15.
|
|
55
|
+
"@gemini-testing/commander": "2.15.4",
|
|
56
56
|
"@jspm/core": "2.0.1",
|
|
57
|
-
"@types/
|
|
58
|
-
"@
|
|
59
|
-
"@wdio/
|
|
60
|
-
"@wdio/
|
|
61
|
-
"@wdio/
|
|
57
|
+
"@types/debug": "4.1.12",
|
|
58
|
+
"@types/yallist": "4.0.4",
|
|
59
|
+
"@wdio/globals": "8.39.0",
|
|
60
|
+
"@wdio/protocols": "8.38.0",
|
|
61
|
+
"@wdio/types": "8.39.0",
|
|
62
|
+
"@wdio/utils": "8.39.0",
|
|
62
63
|
"@wdio/utils-cjs": "npm:@wdio/utils@7.26.0",
|
|
63
64
|
"bluebird": "3.5.1",
|
|
64
65
|
"chalk": "2.4.2",
|
|
65
66
|
"clear-require": "1.0.1",
|
|
66
67
|
"debug": "2.6.9",
|
|
67
|
-
"devtools": "8.
|
|
68
|
+
"devtools": "8.39.0",
|
|
68
69
|
"error-stack-parser": "2.1.4",
|
|
69
|
-
"
|
|
70
|
-
"expect-webdriverio": "3.5.3",
|
|
70
|
+
"expect-webdriverio": "3.6.0",
|
|
71
71
|
"fastq": "1.13.0",
|
|
72
72
|
"fs-extra": "5.0.0",
|
|
73
73
|
"gemini-configparser": "1.4.1",
|
|
@@ -76,13 +76,13 @@
|
|
|
76
76
|
"import-meta-resolve": "4.0.0",
|
|
77
77
|
"local-pkg": "0.4.3",
|
|
78
78
|
"lodash": "4.17.21",
|
|
79
|
-
"looks-same": "9.0.1
|
|
79
|
+
"looks-same": "9.0.1",
|
|
80
80
|
"micromatch": "4.0.5",
|
|
81
81
|
"mocha": "10.2.0",
|
|
82
82
|
"plugins-loader": "1.3.3",
|
|
83
83
|
"png-validator": "1.1.0",
|
|
84
84
|
"resolve.exports": "2.0.2",
|
|
85
|
-
"sharp": "0.
|
|
85
|
+
"sharp": "0.32.6",
|
|
86
86
|
"sizzle": "2.3.6",
|
|
87
87
|
"socket.io": "4.7.5",
|
|
88
88
|
"socket.io-client": "4.7.5",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"urijs": "1.19.11",
|
|
94
94
|
"url-join": "4.0.1",
|
|
95
95
|
"vite": "5.1.6",
|
|
96
|
-
"webdriverio": "8.
|
|
96
|
+
"webdriverio": "8.39.0",
|
|
97
97
|
"worker-farm": "1.7.0",
|
|
98
98
|
"yallist": "3.1.1"
|
|
99
99
|
},
|
|
@@ -105,6 +105,7 @@
|
|
|
105
105
|
"@babel/preset-typescript": "7.24.1",
|
|
106
106
|
"@commitlint/cli": "^19.0.3",
|
|
107
107
|
"@commitlint/config-conventional": "^19.0.3",
|
|
108
|
+
"@cspotcode/source-map-support": "0.8.0",
|
|
108
109
|
"@sinonjs/fake-timers": "10.3.0",
|
|
109
110
|
"@swc/core": "1.3.40",
|
|
110
111
|
"@types/babel__code-frame": "7.0.6",
|
|
@@ -113,9 +114,12 @@
|
|
|
113
114
|
"@types/browserify": "12.0.40",
|
|
114
115
|
"@types/chai": "4.3.4",
|
|
115
116
|
"@types/chai-as-promised": "7.1.5",
|
|
116
|
-
"@types/
|
|
117
|
+
"@types/clear-require": "3.2.1",
|
|
118
|
+
"@types/escape-string-regexp": "2.0.1",
|
|
117
119
|
"@types/fs-extra": "11.0.4",
|
|
118
120
|
"@types/lodash": "4.14.191",
|
|
121
|
+
"@types/micromatch": "4.0.9",
|
|
122
|
+
"@types/mocha": "10.0.1",
|
|
119
123
|
"@types/node": "18.19.3",
|
|
120
124
|
"@types/proxyquire": "1.3.28",
|
|
121
125
|
"@types/sharp": "0.31.1",
|
|
@@ -154,6 +158,7 @@
|
|
|
154
158
|
"uglifyify": "3.0.4"
|
|
155
159
|
},
|
|
156
160
|
"peerDependencies": {
|
|
161
|
+
"@cspotcode/source-map-support": ">=0.7.0",
|
|
157
162
|
"@swc/core": ">=1.3.96",
|
|
158
163
|
"ts-node": ">=10.5.0"
|
|
159
164
|
},
|
|
@@ -161,6 +166,9 @@
|
|
|
161
166
|
"ts-node": {
|
|
162
167
|
"optional": true
|
|
163
168
|
},
|
|
169
|
+
"@cspotcode/source-map-support": {
|
|
170
|
+
"optional": true
|
|
171
|
+
},
|
|
164
172
|
"@swc/core": {
|
|
165
173
|
"optional": true
|
|
166
174
|
}
|
|
@@ -18,7 +18,7 @@ class BaseTestplane extends events_1.AsyncEmitter {
|
|
|
18
18
|
super();
|
|
19
19
|
this._interceptors = [];
|
|
20
20
|
this._interceptors = [];
|
|
21
|
-
(0, typescript_1.tryToRegisterTsNode)();
|
|
21
|
+
(0, typescript_1.tryToRegisterTsNode)(this.isWorker());
|
|
22
22
|
this._config = config_1.Config.create(config);
|
|
23
23
|
this._setLogLevel();
|
|
24
24
|
this._loadPlugins();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAyD;AAGzD,MAAsB,aAAc,SAAQ,qBAAY;IAIpD,MAAM,CAAC,MAAM,CAET,MAA6B;QAE7B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAXF,kBAAa,GAAkB,EAAE,CAAC;QAaxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAA,gCAAmB,
|
|
1
|
+
{"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAyD;AAGzD,MAAsB,aAAc,SAAQ,qBAAY;IAIpD,MAAM,CAAC,MAAM,CAET,MAA6B;QAE7B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAXF,kBAAa,GAAkB,EAAE,CAAC;QAaxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAA,gCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,KAAK,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;QACtE,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAC,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAY,EAAE,qBAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,KAAuB,EAAE,OAAyB;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAIS,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,CAAC;IACL,CAAC;IAES,YAAY;QAClB,wBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;CACJ;AAzDD,sCAyDC"}
|
|
@@ -1,31 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { RemoteCapability } from "@wdio/types/build/Capabilities";
|
|
2
|
+
import { Config } from "../config";
|
|
3
|
+
import { AsyncEmitter } from "../events";
|
|
4
|
+
import { BrowserConfig } from "../config/browser-config";
|
|
5
|
+
import Callstack from "./history/callstack";
|
|
6
|
+
export type BrowserOpts = {
|
|
7
|
+
id: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
state?: Record<string, unknown>;
|
|
10
|
+
emitter?: AsyncEmitter;
|
|
11
|
+
};
|
|
12
|
+
export type BrowserState = {
|
|
13
|
+
testXReqId?: string;
|
|
14
|
+
traceparent?: string;
|
|
15
|
+
isBroken?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type CustomCommend = {
|
|
18
|
+
name: string;
|
|
19
|
+
elementScope: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare class Browser {
|
|
22
|
+
protected _config: BrowserConfig;
|
|
23
|
+
protected _debug: boolean;
|
|
24
|
+
protected _session: WebdriverIO.Browser | null;
|
|
25
|
+
protected _callstackHistory: Callstack | null;
|
|
26
|
+
protected _state: BrowserState;
|
|
27
|
+
protected _customCommands: Set<CustomCommend>;
|
|
28
|
+
id: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
static create<T extends Browser>(this: new (config: Config, opts: BrowserOpts) => T, config: Config, opts: BrowserOpts): T;
|
|
31
|
+
constructor(config: Config, opts: BrowserOpts);
|
|
32
|
+
setHttpTimeout(timeout: number | null): void;
|
|
14
33
|
restoreHttpTimeout(): void;
|
|
15
|
-
applyState(state:
|
|
16
|
-
_addCommands(): void;
|
|
17
|
-
_addSteps(): void;
|
|
18
|
-
_extendStacktrace(): void;
|
|
19
|
-
_addHistory(): void;
|
|
20
|
-
_addExtendOptionsMethod(session:
|
|
21
|
-
_getSessionOptsFromConfig(optNames?: string[]):
|
|
22
|
-
_startCollectingCustomCommands(): void;
|
|
23
|
-
get fullId():
|
|
24
|
-
get publicAPI():
|
|
25
|
-
get sessionId():
|
|
26
|
-
get config():
|
|
27
|
-
get state():
|
|
28
|
-
get capabilities():
|
|
29
|
-
get callstackHistory():
|
|
30
|
-
get customCommands():
|
|
34
|
+
applyState(state: Record<string, unknown>): void;
|
|
35
|
+
protected _addCommands(): void;
|
|
36
|
+
protected _addSteps(): void;
|
|
37
|
+
protected _extendStacktrace(): void;
|
|
38
|
+
protected _addHistory(): void;
|
|
39
|
+
protected _addExtendOptionsMethod(session: WebdriverIO.Browser): void;
|
|
40
|
+
protected _getSessionOptsFromConfig(optNames?: string[]): Record<string, unknown>;
|
|
41
|
+
protected _startCollectingCustomCommands(): void;
|
|
42
|
+
get fullId(): string;
|
|
43
|
+
get publicAPI(): WebdriverIO.Browser;
|
|
44
|
+
get sessionId(): string;
|
|
45
|
+
get config(): BrowserConfig;
|
|
46
|
+
get state(): BrowserState;
|
|
47
|
+
get capabilities(): RemoteCapability;
|
|
48
|
+
get callstackHistory(): Callstack;
|
|
49
|
+
get customCommands(): CustomCommend[];
|
|
31
50
|
}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Browser = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const config_1 = require("../constants/config");
|
|
10
|
+
const browser_1 = require("../constants/browser");
|
|
11
|
+
const history_1 = __importDefault(require("./history"));
|
|
12
|
+
const stacktrace_1 = require("./stacktrace");
|
|
13
|
+
const commands_1 = require("./history/commands");
|
|
14
|
+
const runStep_1 = __importDefault(require("./commands/runStep"));
|
|
10
15
|
const CUSTOM_SESSION_OPTS = [
|
|
11
16
|
"outputDir",
|
|
12
17
|
"agent",
|
|
@@ -19,7 +24,7 @@ const CUSTOM_SESSION_OPTS = [
|
|
|
19
24
|
"key",
|
|
20
25
|
"region",
|
|
21
26
|
];
|
|
22
|
-
|
|
27
|
+
class Browser {
|
|
23
28
|
static create(config, opts) {
|
|
24
29
|
return new this(config, opts);
|
|
25
30
|
}
|
|
@@ -46,36 +51,36 @@ module.exports = class Browser {
|
|
|
46
51
|
this.setHttpTimeout(this._config.httpTimeout);
|
|
47
52
|
}
|
|
48
53
|
applyState(state) {
|
|
49
|
-
|
|
54
|
+
lodash_1.default.extend(this._state, state);
|
|
50
55
|
}
|
|
51
56
|
_addCommands() {
|
|
52
57
|
this._addExtendOptionsMethod(this._session);
|
|
53
58
|
}
|
|
54
59
|
_addSteps() {
|
|
55
|
-
|
|
60
|
+
(0, runStep_1.default)(this);
|
|
56
61
|
}
|
|
57
62
|
_extendStacktrace() {
|
|
58
|
-
|
|
63
|
+
(0, stacktrace_1.enhanceStacktraces)(this._session);
|
|
59
64
|
}
|
|
60
65
|
_addHistory() {
|
|
61
|
-
if (this._config.saveHistoryMode !== SAVE_HISTORY_MODE.NONE) {
|
|
62
|
-
this._callstackHistory =
|
|
66
|
+
if (this._config.saveHistoryMode !== config_1.SAVE_HISTORY_MODE.NONE) {
|
|
67
|
+
this._callstackHistory = history_1.default.initCommandHistory(this._session);
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
_addExtendOptionsMethod(session) {
|
|
66
71
|
session.addCommand("extendOptions", opts => {
|
|
67
|
-
|
|
72
|
+
lodash_1.default.extend(session.options, opts);
|
|
68
73
|
});
|
|
69
74
|
}
|
|
70
75
|
_getSessionOptsFromConfig(optNames = CUSTOM_SESSION_OPTS) {
|
|
71
76
|
return optNames.reduce((options, optName) => {
|
|
72
77
|
if (optName === "transformRequest") {
|
|
73
|
-
options[optName] = req => {
|
|
74
|
-
if (!
|
|
78
|
+
options[optName] = (req) => {
|
|
79
|
+
if (!lodash_1.default.isNull(this._config[optName])) {
|
|
75
80
|
req = this._config[optName](req);
|
|
76
81
|
}
|
|
77
82
|
if (!req.headers["X-Request-ID"]) {
|
|
78
|
-
req.headers["X-Request-ID"] = `${this.state.testXReqId}${X_REQUEST_ID_DELIMITER}${
|
|
83
|
+
req.headers["X-Request-ID"] = `${this.state.testXReqId}${browser_1.X_REQUEST_ID_DELIMITER}${crypto_1.default.randomUUID()}`;
|
|
79
84
|
}
|
|
80
85
|
if (!req.headers["traceparent"] && this.state.traceparent) {
|
|
81
86
|
req.headers["traceparent"] = this.state.traceparent;
|
|
@@ -83,15 +88,15 @@ module.exports = class Browser {
|
|
|
83
88
|
return req;
|
|
84
89
|
};
|
|
85
90
|
}
|
|
86
|
-
else if (!
|
|
91
|
+
else if (!lodash_1.default.isNull(this._config[optName])) {
|
|
87
92
|
options[optName] = this._config[optName];
|
|
88
93
|
}
|
|
89
94
|
return options;
|
|
90
95
|
}, {});
|
|
91
96
|
}
|
|
92
97
|
_startCollectingCustomCommands() {
|
|
93
|
-
const browserCommands = getBrowserCommands();
|
|
94
|
-
const elementCommands = getElementCommands();
|
|
98
|
+
const browserCommands = (0, commands_1.getBrowserCommands)();
|
|
99
|
+
const elementCommands = (0, commands_1.getElementCommands)();
|
|
95
100
|
this._session.overwriteCommand("addCommand", (origCommand, name, wrapper, elementScope, ...rest) => {
|
|
96
101
|
const isKnownCommand = elementScope ? elementCommands.includes(name) : browserCommands.includes(name);
|
|
97
102
|
if (!isKnownCommand) {
|
|
@@ -123,7 +128,8 @@ module.exports = class Browser {
|
|
|
123
128
|
}
|
|
124
129
|
get customCommands() {
|
|
125
130
|
const allCustomCommands = Array.from(this._customCommands);
|
|
126
|
-
return
|
|
131
|
+
return lodash_1.default.uniqWith(allCustomCommands, lodash_1.default.isEqual);
|
|
127
132
|
}
|
|
128
|
-
}
|
|
133
|
+
}
|
|
134
|
+
exports.Browser = Browser;
|
|
129
135
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/client-bridge/error.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AALD,8CAKC"}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/client-bridge/error.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AALD,8CAKC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"use strict";var lib=require("./lib.compat.js");module.exports=function(r){return lib.queryAll(r)};
|
|
5
5
|
},{"./lib.compat.js":4}],3:[function(require,module,exports){
|
|
6
6
|
(function (global){(function (){
|
|
7
|
-
"use strict";function prepareScreenshotUnsafe(e,t){var r=t.allowViewportOverflow,i=t.captureElementFromTop,o=t.disableAnimation,n=window;if(t.selectorToScroll&&!(n=document.querySelector(t.selectorToScroll)))return{error:"NOTFOUND",message:'Could not find element with css selector specified in "selectorToScroll" option: '+t.selectorToScroll,selector:t.selectorToScroll};var a,l=util.getMainDocumentElem(),c=l.clientWidth,s=l.clientHeight,u=l.scrollWidth,
|
|
7
|
+
"use strict";function prepareScreenshotUnsafe(e,t){var r=t.allowViewportOverflow,i=t.captureElementFromTop,o=t.disableAnimation,n=window;if(t.selectorToScroll&&!(n=document.querySelector(t.selectorToScroll)))return{error:"NOTFOUND",message:'Could not find element with css selector specified in "selectorToScroll" option: '+t.selectorToScroll,selector:t.selectorToScroll};var a,l=util.getMainDocumentElem(),c=l.clientWidth,s=l.clientHeight,u=l.scrollWidth,p=l.scrollHeight,d=new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s}),f=configurePixelRatio(t.usePixelRatio),m=[];if(e.forEach(function(e){Rect.isRect(e)?a=a?a.merge(new Rect(e)):new Rect(e):m.push(e)}),a=getCaptureRect(m,{initialRect:a,allowViewportOverflow:r,scrollElem:n,viewportWidth:c,documentHeight:p}),a.error)return a;if(i&&!d.rectInside(a))util.isSafariMobile()?scrollToCaptureAreaInSafari(d,a,n):n.scrollTo(a.left,a.top);else if(r&&d.rectIntersects(a))a.overflowsTopBound(d)&&a.recalculateHeight(d),a.overflowsLeftBound(d)&&a.recalculateWidth(d);else if(!i&&!d.rectIntersects(a))return{error:"OUTSIDE_OF_VIEWPORT",message:'Can not capture element, because it is outside of viewport. Try to set "captureElementFromTop=true" to scroll to it before capture.'};return o&&disableFrameAnimationsUnsafe(),{captureArea:a.scale(f).serialize(),ignoreAreas:findIgnoreAreas(t.ignoreSelectors,{scrollElem:n,pixelRatio:f,viewportWidth:c,documentHeight:p}),viewport:new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s}).scale(f).serialize(),documentHeight:Math.ceil(p*f),documentWidth:Math.ceil(u*f),canHaveCaret:isEditable(document.activeElement),pixelRatio:f}}function disableFrameAnimationsUnsafe(){var e=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),t=[];util.forEachRoot(function(r){var i=document.createElement("style");i.innerHTML=e+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),r.appendChild(i),t.push(i)}),window.__cleanupAnimation=function(){for(var e=0;e<t.length;e++)t[e].parentNode.removeChild(t[e]);delete window.__cleanupAnimation}}function getCaptureRect(e,t){for(var r,i,o=t.initialRect,n=0;n<e.length;n++){if(!(r=lib.queryFirst(e[n])))return{error:"NOTFOUND",message:"Could not find element with css selector specified in setCaptureElements: "+e[n],selector:e[n]};i=getElementCaptureRect(r,t),i&&(o=o?o.merge(i):i)}return o?o.round():{error:"HIDDEN",message:"Area with css selector : "+e+" is hidden",selector:e}}function configurePixelRatio(e){return!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function findIgnoreAreas(e,t){var r=[];return util.each(e,function(e){var i=queryIgnoreAreas(e);util.each(i,function(e){return addIgnoreArea.call(r,e,t)})}),r}function addIgnoreArea(e,t){var r=e&&getElementCaptureRect(e,t);if(r){var i=r.round().scale(t.pixelRatio).serialize();this.push(i)}}function isHidden(e,t){return"none"===e.display||"hidden"===e.visibility||e.opacity<1e-4||t.width<1e-4||t.height<1e-4}function getElementCaptureRect(e,t){var r=[":before",":after"],i=lib.getComputedStyle(e),o=rect.getAbsoluteClientRect(e,t);if(isHidden(i,o))return null;var n=getExtRect(i,o,t.allowViewportOverflow);return util.each(r,function(r){i=lib.getComputedStyle(e,r),n=n.merge(getExtRect(i,o,t.allowViewportOverflow))}),n}function getExtRect(e,t,r){var i=parseBoxShadow(e.boxShadow),o=parseInt(e.outlineWidth,10);return isNaN(o)&&(o=0),adjustRect(t,i,o,r)}function parseBoxShadow(e){e=e||"";var t,r=/[-+]?\d*\.?\d+px/g,i=e.split(","),o=[];return util.each(i,function(e){(t=e.match(r))&&o.push({offsetX:parseFloat(t[0]),offsetY:parseFloat(t[1])||0,blurRadius:parseFloat(t[2])||0,spreadRadius:parseFloat(t[3])||0,inset:-1!==e.indexOf("inset")})}),o}function adjustRect(e,t,r,i){var o=calculateShadowRect(e,t,i),n=calculateOutlineRect(e,r,i);return o.merge(n)}function calculateOutlineRect(e,t,r){var i=e.top-t,o=e.left-t;return new Rect({top:r?i:Math.max(0,i),left:r?o:Math.max(0,o),bottom:e.bottom+t,right:e.right+t})}function calculateShadowRect(e,t,r){var i=calculateShadowExtent(t),o=e.left+i.left,n=e.top+i.top;return new Rect({left:r?o:Math.max(0,o),top:r?n:Math.max(0,n),width:e.width-i.left+i.right,height:e.height-i.top+i.bottom})}function calculateShadowExtent(e){var t={top:0,left:0,right:0,bottom:0};return util.each(e,function(e){if(!e.inset){var r=e.spreadRadius+e.blurRadius;t.left=Math.min(e.offsetX-r,t.left),t.right=Math.max(e.offsetX+r,t.right),t.top=Math.min(e.offsetY-r,t.top),t.bottom=Math.max(e.offsetY+r,t.bottom)}}),t}function isEditable(e){return!!e&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function scrollToCaptureAreaInSafari(e,t,r){var i=util.getMainDocumentElem(),o=Math.round(i.scrollHeight),n=Math.round(i.clientHeight),a=o-n;r.scrollTo(e.left,Math.min(t.top,a))}var util=require("./util"),rect=require("./rect"),lib=require("./lib.compat.js"),queryIgnoreAreas=require("./ignore-areas"),Rect=rect.Rect;"undefined"==typeof window?global.__geminiCore=exports:window.__geminiCore=exports,exports.queryFirst=lib.queryFirst,exports.prepareScreenshot=function(e,t){t=t||{};try{return prepareScreenshotUnsafe(e,t)}catch(r){return{error:"JS",message:r.stack||r.message}}},exports.disableFrameAnimations=function(){try{return disableFrameAnimationsUnsafe()}catch(e){return{error:"JS",message:e.stack||e.message}}},exports.cleanupFrameAnimations=function(){window.__cleanupAnimation&&window.__cleanupAnimation()},exports.resetZoom=function(){var e=lib.queryFirst('meta[name="viewport"]');if(!e){e=document.createElement("meta"),e.name="viewport";var t=lib.queryFirst("head");t&&t.appendChild(e)}e.content="width=device-width,initial-scale=1.0,user-scalable=no"};
|
|
8
8
|
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
9
9
|
},{"./ignore-areas":2,"./lib.compat.js":4,"./rect":7,"./util":8}],4:[function(require,module,exports){
|
|
10
10
|
"use strict";var Sizzle=require("sizzle"),xpath=require("./xpath");exports.queryFirst=function(e){if(xpath.isXpathSelector(e))return xpath.queryFirst(e);var t=Sizzle(exports.trim(e)+":first");return t.length>0?t[0]:null},exports.queryAll=function(e){return xpath.isXpathSelector(e)?xpath.queryAll(e):Sizzle(e)},exports.trim=function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},exports.getComputedStyle=require("./polyfills/getComputedStyle").getComputedStyle,exports.matchMedia=require("./polyfills/matchMedia").matchMedia;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";var lib=require("./lib.native.js");module.exports=function(e){return lib.queryAll(e)};
|
|
3
3
|
},{"./lib.native.js":3}],2:[function(require,module,exports){
|
|
4
4
|
(function (global){(function (){
|
|
5
|
-
"use strict";function prepareScreenshotUnsafe(e,t){var r=t.allowViewportOverflow,i=t.captureElementFromTop,o=t.disableAnimation,n=window;if(t.selectorToScroll&&!(n=document.querySelector(t.selectorToScroll)))return{error:"NOTFOUND",message:'Could not find element with css selector specified in "selectorToScroll" option: '+t.selectorToScroll,selector:t.selectorToScroll};var a,l=util.getMainDocumentElem(),c=l.clientWidth,s=l.clientHeight,u=l.scrollWidth,d=l.scrollHeight,p=new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s})
|
|
5
|
+
"use strict";function prepareScreenshotUnsafe(e,t){var r=t.allowViewportOverflow,i=t.captureElementFromTop,o=t.disableAnimation,n=window;if(t.selectorToScroll&&!(n=document.querySelector(t.selectorToScroll)))return{error:"NOTFOUND",message:'Could not find element with css selector specified in "selectorToScroll" option: '+t.selectorToScroll,selector:t.selectorToScroll};var a,l=util.getMainDocumentElem(),c=l.clientWidth,s=l.clientHeight,u=l.scrollWidth,d=l.scrollHeight,p=new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s}),f=configurePixelRatio(t.usePixelRatio),m=[];if(e.forEach(function(e){Rect.isRect(e)?a=a?a.merge(new Rect(e)):new Rect(e):m.push(e)}),a=getCaptureRect(m,{initialRect:a,allowViewportOverflow:r,scrollElem:n,viewportWidth:c,documentHeight:d}),a.error)return a;if(i&&!p.rectInside(a))util.isSafariMobile()?scrollToCaptureAreaInSafari(p,a,n):n.scrollTo(a.left,a.top);else if(r&&p.rectIntersects(a))a.overflowsTopBound(p)&&a.recalculateHeight(p),a.overflowsLeftBound(p)&&a.recalculateWidth(p);else if(!i&&!p.rectIntersects(a))return{error:"OUTSIDE_OF_VIEWPORT",message:'Can not capture element, because it is outside of viewport. Try to set "captureElementFromTop=true" to scroll to it before capture.'};return o&&disableFrameAnimationsUnsafe(),{captureArea:a.scale(f).serialize(),ignoreAreas:findIgnoreAreas(t.ignoreSelectors,{scrollElem:n,pixelRatio:f,viewportWidth:c,documentHeight:d}),viewport:new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s}).scale(f).serialize(),documentHeight:Math.ceil(d*f),documentWidth:Math.ceil(u*f),canHaveCaret:isEditable(document.activeElement),pixelRatio:f}}function disableFrameAnimationsUnsafe(){var e=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),t=[];util.forEachRoot(function(r){var i=document.createElement("style");i.innerHTML=e+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),r.appendChild(i),t.push(i)}),window.__cleanupAnimation=function(){for(var e=0;e<t.length;e++)t[e].parentNode.removeChild(t[e]);delete window.__cleanupAnimation}}function getCaptureRect(e,t){for(var r,i,o=t.initialRect,n=0;n<e.length;n++){if(!(r=lib.queryFirst(e[n])))return{error:"NOTFOUND",message:"Could not find element with css selector specified in setCaptureElements: "+e[n],selector:e[n]};i=getElementCaptureRect(r,t),i&&(o=o?o.merge(i):i)}return o?o.round():{error:"HIDDEN",message:"Area with css selector : "+e+" is hidden",selector:e}}function configurePixelRatio(e){return!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function findIgnoreAreas(e,t){var r=[];return util.each(e,function(e){var i=queryIgnoreAreas(e);util.each(i,function(e){return addIgnoreArea.call(r,e,t)})}),r}function addIgnoreArea(e,t){var r=e&&getElementCaptureRect(e,t);if(r){var i=r.round().scale(t.pixelRatio).serialize();this.push(i)}}function isHidden(e,t){return"none"===e.display||"hidden"===e.visibility||e.opacity<1e-4||t.width<1e-4||t.height<1e-4}function getElementCaptureRect(e,t){var r=[":before",":after"],i=lib.getComputedStyle(e),o=rect.getAbsoluteClientRect(e,t);if(isHidden(i,o))return null;var n=getExtRect(i,o,t.allowViewportOverflow);return util.each(r,function(r){i=lib.getComputedStyle(e,r),n=n.merge(getExtRect(i,o,t.allowViewportOverflow))}),n}function getExtRect(e,t,r){var i=parseBoxShadow(e.boxShadow),o=parseInt(e.outlineWidth,10);return isNaN(o)&&(o=0),adjustRect(t,i,o,r)}function parseBoxShadow(e){e=e||"";var t,r=/[-+]?\d*\.?\d+px/g,i=e.split(","),o=[];return util.each(i,function(e){(t=e.match(r))&&o.push({offsetX:parseFloat(t[0]),offsetY:parseFloat(t[1])||0,blurRadius:parseFloat(t[2])||0,spreadRadius:parseFloat(t[3])||0,inset:-1!==e.indexOf("inset")})}),o}function adjustRect(e,t,r,i){var o=calculateShadowRect(e,t,i),n=calculateOutlineRect(e,r,i);return o.merge(n)}function calculateOutlineRect(e,t,r){var i=e.top-t,o=e.left-t;return new Rect({top:r?i:Math.max(0,i),left:r?o:Math.max(0,o),bottom:e.bottom+t,right:e.right+t})}function calculateShadowRect(e,t,r){var i=calculateShadowExtent(t),o=e.left+i.left,n=e.top+i.top;return new Rect({left:r?o:Math.max(0,o),top:r?n:Math.max(0,n),width:e.width-i.left+i.right,height:e.height-i.top+i.bottom})}function calculateShadowExtent(e){var t={top:0,left:0,right:0,bottom:0};return util.each(e,function(e){if(!e.inset){var r=e.spreadRadius+e.blurRadius;t.left=Math.min(e.offsetX-r,t.left),t.right=Math.max(e.offsetX+r,t.right),t.top=Math.min(e.offsetY-r,t.top),t.bottom=Math.max(e.offsetY+r,t.bottom)}}),t}function isEditable(e){return!!e&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function scrollToCaptureAreaInSafari(e,t,r){var i=util.getMainDocumentElem(),o=Math.round(i.scrollHeight),n=Math.round(i.clientHeight),a=o-n;r.scrollTo(e.left,Math.min(t.top,a))}var util=require("./util"),rect=require("./rect"),lib=require("./lib.native.js"),queryIgnoreAreas=require("./ignore-areas"),Rect=rect.Rect;"undefined"==typeof window?global.__geminiCore=exports:window.__geminiCore=exports,exports.queryFirst=lib.queryFirst,exports.prepareScreenshot=function(e,t){t=t||{};try{return prepareScreenshotUnsafe(e,t)}catch(r){return{error:"JS",message:r.stack||r.message}}},exports.disableFrameAnimations=function(){try{return disableFrameAnimationsUnsafe()}catch(e){return{error:"JS",message:e.stack||e.message}}},exports.cleanupFrameAnimations=function(){window.__cleanupAnimation&&window.__cleanupAnimation()},exports.resetZoom=function(){var e=lib.queryFirst('meta[name="viewport"]');if(!e){e=document.createElement("meta"),e.name="viewport";var t=lib.queryFirst("head");t&&t.appendChild(e)}e.content="width=device-width,initial-scale=1.0,user-scalable=no"};
|
|
6
6
|
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
7
7
|
},{"./ignore-areas":1,"./lib.native.js":3,"./rect":4,"./util":5}],3:[function(require,module,exports){
|
|
8
8
|
"use strict";var xpath=require("./xpath");exports.queryFirst=function(t){return xpath.isXpathSelector(t)?xpath.queryFirst(t):document.querySelector(t)},exports.queryAll=function(t){return xpath.isXpathSelector(t)?xpath.queryAll(t):document.querySelectorAll(t)},exports.getComputedStyle=function(t,e){return getComputedStyle(t,e)},exports.matchMedia=function(t){return matchMedia(t)},exports.trim=function(t){return t.trim()};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-view-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/assert-view-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAgB,SAAQ,KAAK;IACtC,YAAmB,UAAkB,yBAAyB;QAC1D,KAAK,EAAE,CAAC;QADO,YAAO,GAAP,OAAO,CAAoC;QAG1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AAND,0CAMC"}
|
|
1
|
+
{"version":3,"file":"assert-view-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/assert-view-error.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK;IACtC,YAAmB,UAAkB,yBAAyB;QAC1D,KAAK,EAAE,CAAC;QADO,YAAO,GAAP,OAAO,CAAoC;QAG1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AAND,0CAMC"}
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ImageDiffError = void 0;
|
|
7
7
|
const image_1 = __importDefault(require("../../../../image"));
|
|
8
8
|
const base_state_error_1 = require("./base-state-error");
|
|
9
|
+
/**
|
|
10
|
+
* @category Errors
|
|
11
|
+
*/
|
|
9
12
|
class ImageDiffError extends base_state_error_1.BaseStateError {
|
|
10
13
|
static create({ stateName, currImg, refImg, diffOpts, diffAreas = {}, diffBuffer, differentPixels, diffRatio, }) {
|
|
11
14
|
return new this({ stateName, currImg, refImg, diffOpts, diffAreas, diffBuffer, differentPixels, diffRatio });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-diff-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/image-diff-error.ts"],"names":[],"mappings":";;;;;;AAEA,8DAAsC;AACtC,yDAAoD;AAoCpD,MAAa,cAAe,SAAQ,iCAAc;IAS9C,MAAM,CAAC,MAAM,CAET,EACI,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,GAAG,EAAe,EAC3B,UAAU,EACV,eAAe,EACf,SAAS,GAUZ;QAED,OAAO,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,CAAC,UAAU,CAAwC,IAAwB;QAC7E,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACnD,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAe,EACzD,UAAU,EACV,eAAe,EACf,SAAS,GAUZ;QACG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,OAAO,GAAG,6BAA6B,SAAS,SAAS,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,eAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;CACJ;AAxED,wCAwEC"}
|
|
1
|
+
{"version":3,"file":"image-diff-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/image-diff-error.ts"],"names":[],"mappings":";;;;;;AAEA,8DAAsC;AACtC,yDAAoD;AAoCpD;;GAEG;AACH,MAAa,cAAe,SAAQ,iCAAc;IAS9C,MAAM,CAAC,MAAM,CAET,EACI,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,GAAG,EAAe,EAC3B,UAAU,EACV,eAAe,EACf,SAAS,GAUZ;QAED,OAAO,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,CAAC,UAAU,CAAwC,IAAwB;QAC7E,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACnD,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAe,EACzD,UAAU,EACV,eAAe,EACf,SAAS,GAUZ;QACG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,OAAO,GAAG,6BAA6B,SAAS,SAAS,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,eAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;CACJ;AAxED,wCAwEC"}
|
|
@@ -6,6 +6,9 @@ interface NoRefImageErrorData {
|
|
|
6
6
|
currImg: ImageInfo;
|
|
7
7
|
refImg: RefImageInfo;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* @category Errors
|
|
11
|
+
*/
|
|
9
12
|
export declare class NoRefImageError extends BaseStateError {
|
|
10
13
|
static create<T extends NoRefImageError>(this: NoRefImageErrorConstructor<T>, stateName: string, currImg: ImageInfo, refImg: RefImageInfo): T;
|
|
11
14
|
static fromObject<T extends NoRefImageError>(this: NoRefImageErrorConstructor<T>, data: NoRefImageErrorData): T;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NoRefImageError = void 0;
|
|
4
4
|
const base_state_error_1 = require("./base-state-error");
|
|
5
|
+
/**
|
|
6
|
+
* @category Errors
|
|
7
|
+
*/
|
|
5
8
|
class NoRefImageError extends base_state_error_1.BaseStateError {
|
|
6
9
|
static create(stateName, currImg, refImg) {
|
|
7
10
|
return new this(stateName, currImg, refImg);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-ref-image-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/no-ref-image-error.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAWpD,MAAa,eAAgB,SAAQ,iCAAc;IAC/C,MAAM,CAAC,MAAM,CAET,SAAiB,EACjB,OAAkB,EAClB,MAAoB;QAEpB,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,UAAU,CAAiE,IAAyB;QACvG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY,SAAiB,EAAE,OAAkB,EAAE,MAAoB;QACnE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,OAAO,GAAG,mCAAmC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,SAAS,SAAS,CAAC;IAClG,CAAC;CACJ;AAnBD,0CAmBC"}
|
|
1
|
+
{"version":3,"file":"no-ref-image-error.js","sourceRoot":"","sources":["../../../../../../src/browser/commands/assert-view/errors/no-ref-image-error.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAWpD;;GAEG;AACH,MAAa,eAAgB,SAAQ,iCAAc;IAC/C,MAAM,CAAC,MAAM,CAET,SAAiB,EACjB,OAAkB,EAClB,MAAoB;QAEpB,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,UAAU,CAAiE,IAAyB;QACvG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY,SAAiB,EAAE,OAAkB,EAAE,MAAoB;QACnE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,OAAO,GAAG,mCAAmC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,SAAS,SAAS,CAAC;IAClG,CAAC;CACJ;AAnBD,0CAmBC"}
|
|
@@ -113,15 +113,35 @@ module.exports.default = browser => {
|
|
|
113
113
|
}
|
|
114
114
|
testplaneCtx.assertViewResults.add({ stateName: state, refImg: refImg });
|
|
115
115
|
};
|
|
116
|
-
|
|
116
|
+
const waitSelectorsForExist = async (browser, selectors) => {
|
|
117
117
|
await Promise.map([].concat(selectors), async (selector) => {
|
|
118
|
-
await
|
|
118
|
+
await browser
|
|
119
|
+
.$(selector)
|
|
119
120
|
.then(el => el.waitForExist())
|
|
120
121
|
.catch(() => {
|
|
121
|
-
throw new Error(`element ("${selector}") still not existing after ${
|
|
122
|
+
throw new Error(`element ("${selector}") still not existing after ${browser.options.waitforTimeout} ms`);
|
|
122
123
|
});
|
|
123
124
|
});
|
|
125
|
+
};
|
|
126
|
+
const assertViewBySelector = async (browser, state, selectors, opts) => {
|
|
127
|
+
await waitSelectorsForExist(browser, selectors);
|
|
124
128
|
return assertView(state, selectors, opts);
|
|
129
|
+
};
|
|
130
|
+
const assertViewByViewport = async (state, opts) => {
|
|
131
|
+
opts = _.defaults(opts, {
|
|
132
|
+
allowViewportOverflow: true,
|
|
133
|
+
compositeImage: false,
|
|
134
|
+
captureElementFromTop: false,
|
|
135
|
+
});
|
|
136
|
+
return assertView(state, "body", opts);
|
|
137
|
+
};
|
|
138
|
+
const shouldAssertViewport = selectorsOrOpts => {
|
|
139
|
+
return !(typeof selectorsOrOpts === "string" || _.isArray(selectorsOrOpts));
|
|
140
|
+
};
|
|
141
|
+
session.addCommand("assertView", async function (state, selectorsOrOpts, opts = {}) {
|
|
142
|
+
return shouldAssertViewport(selectorsOrOpts)
|
|
143
|
+
? assertViewByViewport(state, selectorsOrOpts || opts)
|
|
144
|
+
: assertViewBySelector(this, state, selectorsOrOpts, opts);
|
|
125
145
|
});
|
|
126
146
|
session.addCommand("assertView", async function (state, opts = {}) {
|
|
127
147
|
await this.waitForExist({ timeoutMsg: "custom timeout msg" }).catch(() => {
|