testplane 8.20.0-alpha.0 → 8.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +2 -2
  2. package/build/package.json +24 -16
  3. package/build/src/base-testplane.js +1 -1
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +48 -29
  6. package/build/src/browser/browser.js +29 -23
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/client-bridge/error.d.ts +3 -0
  9. package/build/src/browser/client-bridge/error.js +3 -0
  10. package/build/src/browser/client-bridge/error.js.map +1 -1
  11. package/build/src/browser/client-scripts/bundle.compat.js +1 -1
  12. package/build/src/browser/client-scripts/bundle.native.js +1 -1
  13. package/build/src/browser/client-scripts/index.js +1 -1
  14. package/build/src/browser/commands/assert-view/errors/assert-view-error.d.ts +3 -0
  15. package/build/src/browser/commands/assert-view/errors/assert-view-error.js +3 -0
  16. package/build/src/browser/commands/assert-view/errors/assert-view-error.js.map +1 -1
  17. package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +3 -0
  18. package/build/src/browser/commands/assert-view/errors/image-diff-error.js +3 -0
  19. package/build/src/browser/commands/assert-view/errors/image-diff-error.js.map +1 -1
  20. package/build/src/browser/commands/assert-view/errors/no-ref-image-error.d.ts +3 -0
  21. package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js +3 -0
  22. package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js.map +1 -1
  23. package/build/src/browser/commands/assert-view/index.js +23 -3
  24. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  25. package/build/src/browser/commands/getPuppeteer.js +35 -2
  26. package/build/src/browser/commands/getPuppeteer.js.map +1 -1
  27. package/build/src/browser/commands/runStep.d.ts +3 -2
  28. package/build/src/browser/commands/runStep.js +9 -4
  29. package/build/src/browser/commands/runStep.js.map +1 -1
  30. package/build/src/browser/commands/types.d.ts +3 -1
  31. package/build/src/browser/core-error.d.ts +3 -0
  32. package/build/src/browser/core-error.js +3 -0
  33. package/build/src/browser/core-error.js.map +1 -1
  34. package/build/src/browser/existing-browser.d.ts +117 -10
  35. package/build/src/browser/existing-browser.js +26 -1
  36. package/build/src/browser/existing-browser.js.map +1 -1
  37. package/build/src/browser/history/callstack.js +9 -10
  38. package/build/src/browser/history/callstack.js.map +1 -1
  39. package/build/src/browser/history/index.js +8 -7
  40. package/build/src/browser/history/index.js.map +1 -1
  41. package/build/src/browser/history/utils.d.ts +0 -13
  42. package/build/src/browser/history/utils.js +2 -14
  43. package/build/src/browser/history/utils.js.map +1 -1
  44. package/build/src/browser/new-browser.d.ts +21 -29
  45. package/build/src/browser/new-browser.js +38 -29
  46. package/build/src/browser/new-browser.js.map +1 -1
  47. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.d.ts +1 -0
  48. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js +1 -0
  49. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js.map +1 -1
  50. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.d.ts +1 -0
  51. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js +1 -0
  52. package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js.map +1 -1
  53. package/build/src/browser/stacktrace/constants.d.ts +1 -0
  54. package/build/src/browser/stacktrace/constants.js +5 -1
  55. package/build/src/browser/stacktrace/constants.js.map +1 -1
  56. package/build/src/browser/stacktrace/index.js +3 -1
  57. package/build/src/browser/stacktrace/index.js.map +1 -1
  58. package/build/src/browser/stacktrace/utils.d.ts +1 -1
  59. package/build/src/browser/stacktrace/utils.js +35 -12
  60. package/build/src/browser/stacktrace/utils.js.map +1 -1
  61. package/build/src/browser-pool/basic-pool.d.ts +16 -13
  62. package/build/src/browser-pool/basic-pool.js +21 -15
  63. package/build/src/browser-pool/basic-pool.js.map +1 -1
  64. package/build/src/browser-pool/caching-pool.d.ts +22 -20
  65. package/build/src/browser-pool/caching-pool.js +20 -23
  66. package/build/src/browser-pool/caching-pool.js.map +1 -1
  67. package/build/src/browser-pool/cancelled-error.d.ts +3 -0
  68. package/build/src/browser-pool/cancelled-error.js +3 -0
  69. package/build/src/browser-pool/cancelled-error.js.map +1 -1
  70. package/build/src/browser-pool/index.d.ts +2 -2
  71. package/build/src/browser-pool/index.js +8 -8
  72. package/build/src/browser-pool/index.js.map +1 -1
  73. package/build/src/browser-pool/limited-pool.d.ts +24 -29
  74. package/build/src/browser-pool/limited-pool.js +33 -36
  75. package/build/src/browser-pool/limited-pool.js.map +1 -1
  76. package/build/src/browser-pool/limited-use-set.d.ts +21 -12
  77. package/build/src/browser-pool/limited-use-set.js +12 -17
  78. package/build/src/browser-pool/limited-use-set.js.map +1 -1
  79. package/build/src/browser-pool/per-browser-limited-pool.d.ts +10 -9
  80. package/build/src/browser-pool/per-browser-limited-pool.js +14 -10
  81. package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -1
  82. package/build/src/browser-pool/types.d.ts +11 -0
  83. package/build/src/browser-pool/types.js +3 -0
  84. package/build/src/browser-pool/types.js.map +1 -0
  85. package/build/src/browser-pool/utils.d.ts +1 -1
  86. package/build/src/browser-pool/utils.js +4 -1
  87. package/build/src/browser-pool/utils.js.map +1 -1
  88. package/build/src/bundle/index.js +347 -88
  89. package/build/src/cli/commands/list-tests/index.d.ts +4 -0
  90. package/build/src/cli/commands/list-tests/index.js +55 -0
  91. package/build/src/cli/commands/list-tests/index.js.map +1 -0
  92. package/build/src/cli/constants.d.ts +3 -0
  93. package/build/src/cli/constants.js +7 -0
  94. package/build/src/cli/constants.js.map +1 -0
  95. package/build/src/cli/index.d.ts +4 -1
  96. package/build/src/cli/index.js +40 -48
  97. package/build/src/cli/index.js.map +1 -1
  98. package/build/src/cli/info.d.ts +2 -1
  99. package/build/src/cli/info.js +4 -1
  100. package/build/src/cli/info.js.map +1 -1
  101. package/build/src/config/types.d.ts +20 -4
  102. package/build/src/errors/abort-on-reconnect-error.d.ts +3 -0
  103. package/build/src/errors/abort-on-reconnect-error.js +3 -0
  104. package/build/src/errors/abort-on-reconnect-error.js.map +1 -1
  105. package/build/src/errors/testplane-internal-error.d.ts +3 -0
  106. package/build/src/errors/testplane-internal-error.js +3 -0
  107. package/build/src/errors/testplane-internal-error.js.map +1 -1
  108. package/build/src/events/index.d.ts +1 -1
  109. package/build/src/events/index.js.map +1 -1
  110. package/build/src/index.d.ts +9 -3
  111. package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.d.ts +0 -1
  112. package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.js.map +1 -1
  113. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  114. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -2
  115. package/build/src/runner/runner.d.ts +2 -1
  116. package/build/src/runner/runner.js.map +1 -1
  117. package/build/src/test-collection/constants.d.ts +5 -0
  118. package/build/src/test-collection/constants.js +9 -0
  119. package/build/src/test-collection/constants.js.map +1 -0
  120. package/build/src/test-collection/formatters/list.d.ts +2 -0
  121. package/build/src/test-collection/formatters/list.js +33 -0
  122. package/build/src/test-collection/formatters/list.js.map +1 -0
  123. package/build/src/test-collection/formatters/tree.d.ts +2 -0
  124. package/build/src/test-collection/formatters/tree.js +92 -0
  125. package/build/src/test-collection/formatters/tree.js.map +1 -0
  126. package/build/src/{test-collection.d.ts → test-collection/index.d.ts} +34 -2
  127. package/build/src/{test-collection.js → test-collection/index.js} +34 -2
  128. package/build/src/test-collection/index.js.map +1 -0
  129. package/build/src/test-reader/build-instructions.d.ts +27 -30
  130. package/build/src/test-reader/build-instructions.js +21 -18
  131. package/build/src/test-reader/build-instructions.js.map +1 -1
  132. package/build/src/test-reader/index.d.ts +12 -8
  133. package/build/src/test-reader/index.js +53 -48
  134. package/build/src/test-reader/index.js.map +1 -1
  135. package/build/src/test-reader/mocha-reader/index.d.ts +2 -1
  136. package/build/src/test-reader/mocha-reader/index.js +82 -4
  137. package/build/src/test-reader/mocha-reader/index.js.map +1 -1
  138. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +2 -2
  139. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -1
  140. package/build/src/test-reader/mocha-reader/utils.d.ts +4 -0
  141. package/build/src/test-reader/mocha-reader/utils.js +11 -0
  142. package/build/src/test-reader/mocha-reader/utils.js.map +1 -1
  143. package/build/src/test-reader/sets-builder/index.d.ts +14 -10
  144. package/build/src/test-reader/sets-builder/index.js +110 -91
  145. package/build/src/test-reader/sets-builder/index.js.map +1 -1
  146. package/build/src/test-reader/sets-builder/set-collection.d.ts +7 -8
  147. package/build/src/test-reader/sets-builder/set-collection.js +40 -40
  148. package/build/src/test-reader/sets-builder/set-collection.js.map +1 -1
  149. package/build/src/test-reader/sets-builder/test-set.d.ts +19 -14
  150. package/build/src/test-reader/sets-builder/test-set.js +88 -59
  151. package/build/src/test-reader/sets-builder/test-set.js.map +1 -1
  152. package/build/src/test-reader/test-object/configurable-test-object.d.ts +3 -2
  153. package/build/src/test-reader/test-object/configurable-test-object.js +5 -2
  154. package/build/src/test-reader/test-object/configurable-test-object.js.map +1 -1
  155. package/build/src/test-reader/test-object/suite.d.ts +2 -2
  156. package/build/src/test-reader/test-object/suite.js +2 -2
  157. package/build/src/test-reader/test-object/suite.js.map +1 -1
  158. package/build/src/test-reader/test-object/test.d.ts +2 -2
  159. package/build/src/test-reader/test-object/test.js +3 -2
  160. package/build/src/test-reader/test-object/test.js.map +1 -1
  161. package/build/src/test-reader/test-object/types.d.ts +5 -0
  162. package/build/src/test-reader/test-parser-api.d.ts +1 -1
  163. package/build/src/test-reader/test-parser.d.ts +23 -15
  164. package/build/src/test-reader/test-parser.js +57 -58
  165. package/build/src/test-reader/test-parser.js.map +1 -1
  166. package/build/src/test-reader/tree-builder.d.ts +13 -9
  167. package/build/src/test-reader/tree-builder.js +3 -3
  168. package/build/src/test-reader/tree-builder.js.map +1 -1
  169. package/build/src/testplane.d.ts +8 -4
  170. package/build/src/testplane.js +4 -4
  171. package/build/src/testplane.js.map +1 -1
  172. package/build/src/types/helpers.d.ts +1 -0
  173. package/build/src/types/helpers.js +3 -0
  174. package/build/src/types/helpers.js.map +1 -0
  175. package/build/src/types/index.d.ts +27 -16
  176. package/build/src/types/index.js +15 -0
  177. package/build/src/types/index.js.map +1 -1
  178. package/build/src/utils/cli.d.ts +15 -0
  179. package/build/src/utils/cli.js +42 -0
  180. package/build/src/utils/cli.js.map +1 -0
  181. package/build/src/utils/processor.js +3 -2
  182. package/build/src/utils/processor.js.map +1 -1
  183. package/build/src/utils/typescript.d.ts +1 -1
  184. package/build/src/utils/typescript.js +13 -8
  185. package/build/src/utils/typescript.js.map +1 -1
  186. package/build/src/validators.d.ts +1 -1
  187. package/build/src/validators.js +14 -8
  188. package/build/src/validators.js.map +1 -1
  189. package/build/src/worker/browser-env/runner/test-runner/index.js +2 -2
  190. package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
  191. package/build/src/worker/index.d.ts +1 -1
  192. package/build/src/worker/runner/browser-agent.d.ts +22 -18
  193. package/build/src/worker/runner/browser-agent.js +6 -3
  194. package/build/src/worker/runner/browser-agent.js.map +1 -1
  195. package/build/src/worker/runner/browser-pool.d.ts +1 -2
  196. package/build/src/worker/runner/caching-test-parser.d.ts +20 -21
  197. package/build/src/worker/runner/caching-test-parser.js +13 -11
  198. package/build/src/worker/runner/caching-test-parser.js.map +1 -1
  199. package/build/src/worker/runner/index.d.ts +1 -1
  200. package/build/src/worker/runner/index.js +2 -2
  201. package/build/src/worker/runner/index.js.map +1 -1
  202. package/build/src/worker/runner/sequence-test-parser.d.ts +14 -13
  203. package/build/src/worker/runner/sequence-test-parser.js +16 -10
  204. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  205. package/build/src/worker/runner/simple-test-parser.d.ts +13 -10
  206. package/build/src/worker/runner/simple-test-parser.js +17 -11
  207. package/build/src/worker/runner/simple-test-parser.js.map +1 -1
  208. package/build/src/worker/runner/test-runner/index.js +2 -2
  209. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  210. package/build/src/worker/runner/test-runner/types.d.ts +1 -1
  211. package/build/src/worker/testplane-facade.d.ts +1 -12
  212. package/build/src/worker/testplane-facade.js +25 -21
  213. package/build/src/worker/testplane-facade.js.map +1 -1
  214. package/build/src/worker/testplane.d.ts +2 -1
  215. package/build/src/worker/testplane.js +3 -3
  216. package/build/src/worker/testplane.js.map +1 -1
  217. package/package.json +24 -16
  218. package/typings/clear-require.d.ts +3 -0
  219. package/typings/escape-string-regexp.d.ts +3 -0
  220. package/typings/global.d.ts +10 -7
  221. package/build/src/browser-pool/pool.d.ts +0 -13
  222. package/build/src/browser-pool/pool.js +0 -18
  223. package/build/src/browser-pool/pool.js.map +0 -1
  224. package/build/src/test-collection.js.map +0 -1
  225. 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.md)
90
+ - [Testplane Config Reference](https://testplane.io/docs/v8/config/main/)
91
91
  - [Testplane × Typescript](docs/typescript.md)
92
- - [Testplane CLI](docs/cli.md)
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)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testplane",
3
- "version": "8.20.0-alpha.0",
3
+ "version": "8.20.1",
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.17.0"
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.3",
55
+ "@gemini-testing/commander": "2.15.4",
56
56
  "@jspm/core": "2.0.1",
57
- "@types/mocha": "10.0.1",
58
- "@wdio/globals": "8.21.0",
59
- "@wdio/protocols": "8.22.0",
60
- "@wdio/types": "8.21.0",
61
- "@wdio/utils": "8.35.0",
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.21.0",
68
+ "devtools": "8.39.0",
68
69
  "error-stack-parser": "2.1.4",
69
- "escape-string-regexp": "1.0.5",
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-alpha.0",
79
+ "looks-same": "9.0.1",
80
80
  "micromatch": "4.0.5",
81
81
  "mocha": "10.2.0",
82
- "plugins-loader": "1.3.3",
82
+ "plugins-loader": "1.3.4",
83
83
  "png-validator": "1.1.0",
84
84
  "resolve.exports": "2.0.2",
85
- "sharp": "0.33.4",
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.21.0",
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/debug": "4.1.12",
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,GAAE,CAAC;QAEtB,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
+ {"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
- export = Browser;
2
- declare class Browser {
3
- static create(config: any, opts: any): import("./browser");
4
- constructor(config: any, opts: any);
5
- id: any;
6
- version: any;
7
- _config: any;
8
- _debug: any;
9
- _session: any;
10
- _callstackHistory: import("./history/callstack") | null;
11
- _state: any;
12
- _customCommands: Set<any>;
13
- setHttpTimeout(timeout: any): void;
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: any): void;
16
- _addCommands(): void;
17
- _addSteps(): void;
18
- _extendStacktrace(): void;
19
- _addHistory(): void;
20
- _addExtendOptionsMethod(session: any): void;
21
- _getSessionOptsFromConfig(optNames?: string[]): {};
22
- _startCollectingCustomCommands(): void;
23
- get fullId(): any;
24
- get publicAPI(): any;
25
- get sessionId(): any;
26
- get config(): any;
27
- get state(): any;
28
- get capabilities(): any;
29
- get callstackHistory(): import("./history/callstack") | null;
30
- get customCommands(): any[];
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
- const crypto = require("crypto");
3
- const _ = require("lodash");
4
- const { SAVE_HISTORY_MODE } = require("../constants/config");
5
- const { X_REQUEST_ID_DELIMITER } = require("../constants/browser");
6
- const history = require("./history");
7
- const stacktrace = require("./stacktrace");
8
- const { getBrowserCommands, getElementCommands } = require("./history/commands");
9
- const addRunStepCommand = require("./commands/runStep").default;
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
- module.exports = class Browser {
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
- _.extend(this._state, state);
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
- addRunStepCommand(this);
60
+ (0, runStep_1.default)(this);
56
61
  }
57
62
  _extendStacktrace() {
58
- stacktrace.enhanceStacktraces(this._session);
63
+ (0, stacktrace_1.enhanceStacktraces)(this._session);
59
64
  }
60
65
  _addHistory() {
61
- if (this._config.saveHistoryMode !== SAVE_HISTORY_MODE.NONE) {
62
- this._callstackHistory = history.initCommandHistory(this._session);
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
- _.extend(session.options, opts);
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 (!_.isNull(this._config[optName])) {
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}${crypto.randomUUID()}`;
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 (!_.isNull(this._config[optName])) {
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 _.uniqWith(allCustomCommands, _.isEqual);
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.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @category Errors
3
+ */
1
4
  export declare class ClientBridgeError extends Error {
2
5
  constructor(message: string);
3
6
  }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientBridgeError = void 0;
4
+ /**
5
+ * @category Errors
6
+ */
4
7
  class ClientBridgeError extends Error {
5
8
  constructor(message) {
6
9
  super(message);
@@ -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,d=l.scrollHeight,p=new Rect({left:util.getScrollLeft(n),top:util.getScrollTop(n),width:c,height:s}).round(),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.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"};
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}).round(),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"};
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()};
@@ -80,7 +80,7 @@ function prepareScreenshotUnsafe(areas, opts) {
80
80
  top: util.getScrollTop(scrollElem),
81
81
  width: viewportWidth,
82
82
  height: viewportHeight
83
- }).round(),
83
+ }),
84
84
  pixelRatio = configurePixelRatio(opts.usePixelRatio),
85
85
  rect,
86
86
  selectors = [];
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @category Errors
3
+ */
1
4
  export declare class AssertViewError extends Error {
2
5
  message: string;
3
6
  constructor(message?: string);
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AssertViewError = void 0;
4
+ /**
5
+ * @category Errors
6
+ */
4
7
  class AssertViewError extends Error {
5
8
  constructor(message = "image comparison failed") {
6
9
  super();
@@ -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"}
@@ -30,6 +30,9 @@ interface ImageDiffErrorData {
30
30
  differentPixels: number;
31
31
  diffRatio: number;
32
32
  }
33
+ /**
34
+ * @category Errors
35
+ */
33
36
  export declare class ImageDiffError extends BaseStateError {
34
37
  message: string;
35
38
  diffOpts: DiffOptions;
@@ -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
- session.addCommand("assertView", async function (state, selectors, opts = {}) {
116
+ const waitSelectorsForExist = async (browser, selectors) => {
117
117
  await Promise.map([].concat(selectors), async (selector) => {
118
- await this.$(selector)
118
+ await browser
119
+ .$(selector)
119
120
  .then(el => el.waitForExist())
120
121
  .catch(() => {
121
- throw new Error(`element ("${selector}") still not existing after ${this.options.waitforTimeout} ms`);
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(() => {