@wdio/image-comparison-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +21 -0
  3. package/README.md +12 -0
  4. package/assets/ios/ipadair4th.ipadair5th-bottom.png +0 -0
  5. package/assets/ios/ipadair4th.ipadair5th-top.png +0 -0
  6. package/assets/ios/ipadmini6th-bottom.png +0 -0
  7. package/assets/ios/ipadmini6th-top.png +0 -0
  8. package/assets/ios/ipadpro11-bottom.png +0 -0
  9. package/assets/ios/ipadpro11-top.png +0 -0
  10. package/assets/ios/ipadpro129-bottom.png +0 -0
  11. package/assets/ios/ipadpro129-top.png +0 -0
  12. package/assets/ios/iphone11promax-bottom.png +0 -0
  13. package/assets/ios/iphone11promax-top.png +0 -0
  14. package/assets/ios/iphone12.iphone12pro-top.png +0 -0
  15. package/assets/ios/iphone12.iphone12pro.iphone13.iphone13pro.iphone14-bottom.png +0 -0
  16. package/assets/ios/iphone12mini-top.png +0 -0
  17. package/assets/ios/iphone12mini.iphone13mini-bottom.png +0 -0
  18. package/assets/ios/iphone12promax-top.png +0 -0
  19. package/assets/ios/iphone12promax.iphone13promax.iphone14plus-bottom.png +0 -0
  20. package/assets/ios/iphone13.iphone13pro.iphone14-top.png +0 -0
  21. package/assets/ios/iphone13mini-top.png +0 -0
  22. package/assets/ios/iphone13promax.iphone14plus-top.png +0 -0
  23. package/assets/ios/iphone14pro-bottom.png +0 -0
  24. package/assets/ios/iphone14pro-top.png +0 -0
  25. package/assets/ios/iphone14promax-bottom.png +0 -0
  26. package/assets/ios/iphone14promax-top.png +0 -0
  27. package/assets/ios/iphone15-bottom.png +0 -0
  28. package/assets/ios/iphone15-top.png +0 -0
  29. package/assets/ios/iphonex.iphonexs.iphone11pro-bottom.png +0 -0
  30. package/assets/ios/iphonex.iphonexs.iphone11pro-top.png +0 -0
  31. package/assets/ios/iphonexr.iphone11-bottom.png +0 -0
  32. package/assets/ios/iphonexr.iphone11-top.png +0 -0
  33. package/assets/ios/iphonexsmax-bottom.png +0 -0
  34. package/assets/ios/iphonexsmax-top.png +0 -0
  35. package/dist/base.d.ts +18 -0
  36. package/dist/base.d.ts.map +1 -0
  37. package/dist/base.interfaces.d.ts +200 -0
  38. package/dist/base.interfaces.d.ts.map +1 -0
  39. package/dist/base.interfaces.js +1 -0
  40. package/dist/base.js +58 -0
  41. package/dist/base.test.d.ts +2 -0
  42. package/dist/base.test.d.ts.map +1 -0
  43. package/dist/base.test.js +45 -0
  44. package/dist/clientSideScripts/checkMetaTag.d.ts +2 -0
  45. package/dist/clientSideScripts/checkMetaTag.d.ts.map +1 -0
  46. package/dist/clientSideScripts/checkMetaTag.js +9 -0
  47. package/dist/clientSideScripts/checkMetaTag.test.d.ts +2 -0
  48. package/dist/clientSideScripts/checkMetaTag.test.d.ts.map +1 -0
  49. package/dist/clientSideScripts/checkMetaTag.test.js +25 -0
  50. package/dist/clientSideScripts/customCss.interfaces.d.ts +8 -0
  51. package/dist/clientSideScripts/customCss.interfaces.d.ts.map +1 -0
  52. package/dist/clientSideScripts/customCss.interfaces.js +1 -0
  53. package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts +8 -0
  54. package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts.map +1 -0
  55. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts +4 -0
  56. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts.map +1 -0
  57. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.js +1 -0
  58. package/dist/clientSideScripts/drawTabbableOnCanvas.js +275 -0
  59. package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts +2 -0
  60. package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts.map +1 -0
  61. package/dist/clientSideScripts/drawTabbableOnCanvas.test.js +251 -0
  62. package/dist/clientSideScripts/elementPosition.interfaces.d.ts +3 -0
  63. package/dist/clientSideScripts/elementPosition.interfaces.d.ts.map +1 -0
  64. package/dist/clientSideScripts/elementPosition.interfaces.js +1 -0
  65. package/dist/clientSideScripts/getBoundingClientRect.d.ts +6 -0
  66. package/dist/clientSideScripts/getBoundingClientRect.d.ts.map +1 -0
  67. package/dist/clientSideScripts/getBoundingClientRect.js +12 -0
  68. package/dist/clientSideScripts/getBoundingClientRect.test.d.ts +2 -0
  69. package/dist/clientSideScripts/getBoundingClientRect.test.d.ts.map +1 -0
  70. package/dist/clientSideScripts/getBoundingClientRect.test.js +28 -0
  71. package/dist/clientSideScripts/getDocumentScrollHeight.d.ts +5 -0
  72. package/dist/clientSideScripts/getDocumentScrollHeight.d.ts.map +1 -0
  73. package/dist/clientSideScripts/getDocumentScrollHeight.js +48 -0
  74. package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts +2 -0
  75. package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts.map +1 -0
  76. package/dist/clientSideScripts/getDocumentScrollHeight.test.js +30 -0
  77. package/dist/clientSideScripts/getElementPositionTopDom.d.ts +6 -0
  78. package/dist/clientSideScripts/getElementPositionTopDom.d.ts.map +1 -0
  79. package/dist/clientSideScripts/getElementPositionTopDom.js +11 -0
  80. package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts +2 -0
  81. package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts.map +1 -0
  82. package/dist/clientSideScripts/getElementPositionTopDom.test.js +11 -0
  83. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts +14 -0
  84. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts.map +1 -0
  85. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.js +19 -0
  86. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts +2 -0
  87. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts.map +1 -0
  88. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.js +52 -0
  89. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts +6 -0
  90. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts.map +1 -0
  91. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.js +17 -0
  92. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts +2 -0
  93. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts.map +1 -0
  94. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.js +47 -0
  95. package/dist/clientSideScripts/getScreenDimensions.d.ts +6 -0
  96. package/dist/clientSideScripts/getScreenDimensions.d.ts.map +1 -0
  97. package/dist/clientSideScripts/getScreenDimensions.js +104 -0
  98. package/dist/clientSideScripts/getScreenDimensions.test.d.ts +2 -0
  99. package/dist/clientSideScripts/getScreenDimensions.test.d.ts.map +1 -0
  100. package/dist/clientSideScripts/getScreenDimensions.test.js +161 -0
  101. package/dist/clientSideScripts/hideRemoveElements.d.ts +8 -0
  102. package/dist/clientSideScripts/hideRemoveElements.d.ts.map +1 -0
  103. package/dist/clientSideScripts/hideRemoveElements.js +60 -0
  104. package/dist/clientSideScripts/hideRemoveElements.test.d.ts +2 -0
  105. package/dist/clientSideScripts/hideRemoveElements.test.d.ts.map +1 -0
  106. package/dist/clientSideScripts/hideRemoveElements.test.js +199 -0
  107. package/dist/clientSideScripts/hideScrollbars.d.ts +9 -0
  108. package/dist/clientSideScripts/hideScrollbars.d.ts.map +1 -0
  109. package/dist/clientSideScripts/hideScrollbars.js +15 -0
  110. package/dist/clientSideScripts/hideScrollbars.test.d.ts +2 -0
  111. package/dist/clientSideScripts/hideScrollbars.test.d.ts.map +1 -0
  112. package/dist/clientSideScripts/hideScrollbars.test.js +12 -0
  113. package/dist/clientSideScripts/injectWebviewOverlay.d.ts +5 -0
  114. package/dist/clientSideScripts/injectWebviewOverlay.d.ts.map +1 -0
  115. package/dist/clientSideScripts/injectWebviewOverlay.js +35 -0
  116. package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts +2 -0
  117. package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts.map +1 -0
  118. package/dist/clientSideScripts/injectWebviewOverlay.test.js +74 -0
  119. package/dist/clientSideScripts/removeElementFromDom.d.ts +5 -0
  120. package/dist/clientSideScripts/removeElementFromDom.d.ts.map +1 -0
  121. package/dist/clientSideScripts/removeElementFromDom.js +9 -0
  122. package/dist/clientSideScripts/removeElementFromDom.test.d.ts +2 -0
  123. package/dist/clientSideScripts/removeElementFromDom.test.d.ts.map +1 -0
  124. package/dist/clientSideScripts/removeElementFromDom.test.js +43 -0
  125. package/dist/clientSideScripts/screenDimensions.interfaces.d.ts +96 -0
  126. package/dist/clientSideScripts/screenDimensions.interfaces.d.ts.map +1 -0
  127. package/dist/clientSideScripts/screenDimensions.interfaces.js +1 -0
  128. package/dist/clientSideScripts/scrollElementIntoView.d.ts +5 -0
  129. package/dist/clientSideScripts/scrollElementIntoView.d.ts.map +1 -0
  130. package/dist/clientSideScripts/scrollElementIntoView.js +31 -0
  131. package/dist/clientSideScripts/scrollElementIntoView.test.d.ts +2 -0
  132. package/dist/clientSideScripts/scrollElementIntoView.test.d.ts.map +1 -0
  133. package/dist/clientSideScripts/scrollElementIntoView.test.js +79 -0
  134. package/dist/clientSideScripts/scrollToPosition.d.ts +5 -0
  135. package/dist/clientSideScripts/scrollToPosition.d.ts.map +1 -0
  136. package/dist/clientSideScripts/scrollToPosition.js +25 -0
  137. package/dist/clientSideScripts/scrollToPosition.test.d.ts +2 -0
  138. package/dist/clientSideScripts/scrollToPosition.test.d.ts.map +1 -0
  139. package/dist/clientSideScripts/scrollToPosition.test.js +72 -0
  140. package/dist/clientSideScripts/setCustomCss.d.ts +6 -0
  141. package/dist/clientSideScripts/setCustomCss.d.ts.map +1 -0
  142. package/dist/clientSideScripts/setCustomCss.js +36 -0
  143. package/dist/clientSideScripts/setCustomCss.test.d.ts +2 -0
  144. package/dist/clientSideScripts/setCustomCss.test.d.ts.map +1 -0
  145. package/dist/clientSideScripts/setCustomCss.test.js +68 -0
  146. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts +11 -0
  147. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts.map +1 -0
  148. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.js +1 -0
  149. package/dist/clientSideScripts/toggleTextTransparency.d.ts +5 -0
  150. package/dist/clientSideScripts/toggleTextTransparency.d.ts.map +1 -0
  151. package/dist/clientSideScripts/toggleTextTransparency.js +16 -0
  152. package/dist/clientSideScripts/toggleTextTransparency.test.d.ts +2 -0
  153. package/dist/clientSideScripts/toggleTextTransparency.test.d.ts.map +1 -0
  154. package/dist/clientSideScripts/toggleTextTransparency.test.js +35 -0
  155. package/dist/clientSideScripts/waitForFonts.d.ts +8 -0
  156. package/dist/clientSideScripts/waitForFonts.d.ts.map +1 -0
  157. package/dist/clientSideScripts/waitForFonts.js +20 -0
  158. package/dist/clientSideScripts/waitForFonts.test.d.ts +2 -0
  159. package/dist/clientSideScripts/waitForFonts.test.d.ts.map +1 -0
  160. package/dist/clientSideScripts/waitForFonts.test.js +37 -0
  161. package/dist/commands/check.interfaces.d.ts +35 -0
  162. package/dist/commands/check.interfaces.d.ts.map +1 -0
  163. package/dist/commands/check.interfaces.js +1 -0
  164. package/dist/commands/checkAppElement.d.ts +7 -0
  165. package/dist/commands/checkAppElement.d.ts.map +1 -0
  166. package/dist/commands/checkAppElement.js +44 -0
  167. package/dist/commands/checkAppElement.test.d.ts +2 -0
  168. package/dist/commands/checkAppElement.test.d.ts.map +1 -0
  169. package/dist/commands/checkAppElement.test.js +241 -0
  170. package/dist/commands/checkAppScreen.d.ts +7 -0
  171. package/dist/commands/checkAppScreen.d.ts.map +1 -0
  172. package/dist/commands/checkAppScreen.js +73 -0
  173. package/dist/commands/checkAppScreen.test.d.ts +2 -0
  174. package/dist/commands/checkAppScreen.test.d.ts.map +1 -0
  175. package/dist/commands/checkAppScreen.test.js +295 -0
  176. package/dist/commands/checkElement.d.ts +7 -0
  177. package/dist/commands/checkElement.d.ts.map +1 -0
  178. package/dist/commands/checkElement.js +10 -0
  179. package/dist/commands/checkElement.test.d.ts +2 -0
  180. package/dist/commands/checkElement.test.d.ts.map +1 -0
  181. package/dist/commands/checkElement.test.js +66 -0
  182. package/dist/commands/checkFullPageScreen.d.ts +7 -0
  183. package/dist/commands/checkFullPageScreen.d.ts.map +1 -0
  184. package/dist/commands/checkFullPageScreen.js +56 -0
  185. package/dist/commands/checkFullPageScreen.test.d.ts +2 -0
  186. package/dist/commands/checkFullPageScreen.test.d.ts.map +1 -0
  187. package/dist/commands/checkFullPageScreen.test.js +259 -0
  188. package/dist/commands/checkScreen.d.ts +7 -0
  189. package/dist/commands/checkScreen.d.ts.map +1 -0
  190. package/dist/commands/checkScreen.js +10 -0
  191. package/dist/commands/checkScreen.test.d.ts +2 -0
  192. package/dist/commands/checkScreen.test.d.ts.map +1 -0
  193. package/dist/commands/checkScreen.test.js +62 -0
  194. package/dist/commands/checkTabbablePage.d.ts +7 -0
  195. package/dist/commands/checkTabbablePage.d.ts.map +1 -0
  196. package/dist/commands/checkTabbablePage.js +28 -0
  197. package/dist/commands/checkTabbablePage.test.d.ts +2 -0
  198. package/dist/commands/checkTabbablePage.test.d.ts.map +1 -0
  199. package/dist/commands/checkTabbablePage.test.js +200 -0
  200. package/dist/commands/checkWebElement.d.ts +7 -0
  201. package/dist/commands/checkWebElement.d.ts.map +1 -0
  202. package/dist/commands/checkWebElement.js +52 -0
  203. package/dist/commands/checkWebElement.test.d.ts +2 -0
  204. package/dist/commands/checkWebElement.test.d.ts.map +1 -0
  205. package/dist/commands/checkWebElement.test.js +278 -0
  206. package/dist/commands/checkWebScreen.d.ts +7 -0
  207. package/dist/commands/checkWebScreen.d.ts.map +1 -0
  208. package/dist/commands/checkWebScreen.js +50 -0
  209. package/dist/commands/checkWebScreen.test.d.ts +2 -0
  210. package/dist/commands/checkWebScreen.test.d.ts.map +1 -0
  211. package/dist/commands/checkWebScreen.test.js +227 -0
  212. package/dist/commands/element.interfaces.d.ts +27 -0
  213. package/dist/commands/element.interfaces.d.ts.map +1 -0
  214. package/dist/commands/element.interfaces.js +1 -0
  215. package/dist/commands/fullPage.interfaces.d.ts +38 -0
  216. package/dist/commands/fullPage.interfaces.d.ts.map +1 -0
  217. package/dist/commands/fullPage.interfaces.js +1 -0
  218. package/dist/commands/save.interfaces.d.ts +27 -0
  219. package/dist/commands/save.interfaces.d.ts.map +1 -0
  220. package/dist/commands/save.interfaces.js +1 -0
  221. package/dist/commands/saveAppElement.d.ts +7 -0
  222. package/dist/commands/saveAppElement.d.ts.map +1 -0
  223. package/dist/commands/saveAppElement.js +30 -0
  224. package/dist/commands/saveAppElement.test.d.ts +2 -0
  225. package/dist/commands/saveAppElement.test.d.ts.map +1 -0
  226. package/dist/commands/saveAppElement.test.js +199 -0
  227. package/dist/commands/saveAppScreen.d.ts +7 -0
  228. package/dist/commands/saveAppScreen.d.ts.map +1 -0
  229. package/dist/commands/saveAppScreen.js +43 -0
  230. package/dist/commands/saveAppScreen.test.d.ts +2 -0
  231. package/dist/commands/saveAppScreen.test.d.ts.map +1 -0
  232. package/dist/commands/saveAppScreen.test.js +221 -0
  233. package/dist/commands/saveElement.d.ts +7 -0
  234. package/dist/commands/saveElement.d.ts.map +1 -0
  235. package/dist/commands/saveElement.js +10 -0
  236. package/dist/commands/saveElement.test.d.ts +2 -0
  237. package/dist/commands/saveElement.test.d.ts.map +1 -0
  238. package/dist/commands/saveElement.test.js +62 -0
  239. package/dist/commands/saveFullPageScreen.d.ts +7 -0
  240. package/dist/commands/saveFullPageScreen.d.ts.map +1 -0
  241. package/dist/commands/saveFullPageScreen.js +60 -0
  242. package/dist/commands/saveFullPageScreen.test.d.ts +2 -0
  243. package/dist/commands/saveFullPageScreen.test.d.ts.map +1 -0
  244. package/dist/commands/saveFullPageScreen.test.js +293 -0
  245. package/dist/commands/saveScreen.d.ts +7 -0
  246. package/dist/commands/saveScreen.d.ts.map +1 -0
  247. package/dist/commands/saveScreen.js +10 -0
  248. package/dist/commands/saveScreen.test.d.ts +2 -0
  249. package/dist/commands/saveScreen.test.d.ts.map +1 -0
  250. package/dist/commands/saveScreen.test.js +47 -0
  251. package/dist/commands/saveTabbablePage.d.ts +7 -0
  252. package/dist/commands/saveTabbablePage.d.ts.map +1 -0
  253. package/dist/commands/saveTabbablePage.js +20 -0
  254. package/dist/commands/saveTabbablePage.test.d.ts +2 -0
  255. package/dist/commands/saveTabbablePage.test.d.ts.map +1 -0
  256. package/dist/commands/saveTabbablePage.test.js +74 -0
  257. package/dist/commands/saveWebElement.d.ts +7 -0
  258. package/dist/commands/saveWebElement.d.ts.map +1 -0
  259. package/dist/commands/saveWebElement.js +53 -0
  260. package/dist/commands/saveWebElement.test.d.ts +2 -0
  261. package/dist/commands/saveWebElement.test.d.ts.map +1 -0
  262. package/dist/commands/saveWebElement.test.js +253 -0
  263. package/dist/commands/saveWebScreen.d.ts +7 -0
  264. package/dist/commands/saveWebScreen.d.ts.map +1 -0
  265. package/dist/commands/saveWebScreen.js +48 -0
  266. package/dist/commands/saveWebScreen.test.d.ts +2 -0
  267. package/dist/commands/saveWebScreen.test.d.ts.map +1 -0
  268. package/dist/commands/saveWebScreen.test.js +222 -0
  269. package/dist/commands/screen.interfaces.d.ts +16 -0
  270. package/dist/commands/screen.interfaces.d.ts.map +1 -0
  271. package/dist/commands/screen.interfaces.js +1 -0
  272. package/dist/commands/tabbable.interfaces.d.ts +29 -0
  273. package/dist/commands/tabbable.interfaces.d.ts.map +1 -0
  274. package/dist/commands/tabbable.interfaces.js +1 -0
  275. package/dist/helpers/afterScreenshot.d.ts +7 -0
  276. package/dist/helpers/afterScreenshot.d.ts.map +1 -0
  277. package/dist/helpers/afterScreenshot.interfaces.d.ts +46 -0
  278. package/dist/helpers/afterScreenshot.interfaces.d.ts.map +1 -0
  279. package/dist/helpers/afterScreenshot.interfaces.js +1 -0
  280. package/dist/helpers/afterScreenshot.js +55 -0
  281. package/dist/helpers/afterScreenshot.test.d.ts +2 -0
  282. package/dist/helpers/afterScreenshot.test.d.ts.map +1 -0
  283. package/dist/helpers/afterScreenshot.test.js +241 -0
  284. package/dist/helpers/beforeScreenshot.d.ts +6 -0
  285. package/dist/helpers/beforeScreenshot.d.ts.map +1 -0
  286. package/dist/helpers/beforeScreenshot.interfaces.d.ts +15 -0
  287. package/dist/helpers/beforeScreenshot.interfaces.d.ts.map +1 -0
  288. package/dist/helpers/beforeScreenshot.interfaces.js +1 -0
  289. package/dist/helpers/beforeScreenshot.js +79 -0
  290. package/dist/helpers/beforeScreenshot.test.d.ts +2 -0
  291. package/dist/helpers/beforeScreenshot.test.d.ts.map +1 -0
  292. package/dist/helpers/beforeScreenshot.test.js +261 -0
  293. package/dist/helpers/compare.interfaces.d.ts +16 -0
  294. package/dist/helpers/compare.interfaces.d.ts.map +1 -0
  295. package/dist/helpers/compare.interfaces.js +1 -0
  296. package/dist/helpers/constants.d.ts +108 -0
  297. package/dist/helpers/constants.d.ts.map +1 -0
  298. package/dist/helpers/constants.interfaces.d.ts +30 -0
  299. package/dist/helpers/constants.interfaces.d.ts.map +1 -0
  300. package/dist/helpers/constants.interfaces.js +11 -0
  301. package/dist/helpers/constants.js +436 -0
  302. package/dist/helpers/options.d.ts +64 -0
  303. package/dist/helpers/options.d.ts.map +1 -0
  304. package/dist/helpers/options.interfaces.d.ts +363 -0
  305. package/dist/helpers/options.interfaces.d.ts.map +1 -0
  306. package/dist/helpers/options.interfaces.js +1 -0
  307. package/dist/helpers/options.js +184 -0
  308. package/dist/helpers/options.test.d.ts +2 -0
  309. package/dist/helpers/options.test.d.ts.map +1 -0
  310. package/dist/helpers/options.test.js +428 -0
  311. package/dist/helpers/utils.d.ts +134 -0
  312. package/dist/helpers/utils.d.ts.map +1 -0
  313. package/dist/helpers/utils.interfaces.d.ts +254 -0
  314. package/dist/helpers/utils.interfaces.d.ts.map +1 -0
  315. package/dist/helpers/utils.interfaces.js +1 -0
  316. package/dist/helpers/utils.js +566 -0
  317. package/dist/helpers/utils.test.d.ts +2 -0
  318. package/dist/helpers/utils.test.d.ts.map +1 -0
  319. package/dist/helpers/utils.test.js +900 -0
  320. package/dist/index.d.ts +26 -0
  321. package/dist/index.d.ts.map +1 -0
  322. package/dist/index.js +18 -0
  323. package/dist/methods/compareReport.interfaces.d.ts +109 -0
  324. package/dist/methods/compareReport.interfaces.d.ts.map +1 -0
  325. package/dist/methods/compareReport.interfaces.js +1 -0
  326. package/dist/methods/createCompareReport.d.ts +7 -0
  327. package/dist/methods/createCompareReport.d.ts.map +1 -0
  328. package/dist/methods/createCompareReport.js +61 -0
  329. package/dist/methods/createCompareReport.test.d.ts +2 -0
  330. package/dist/methods/createCompareReport.test.d.ts.map +1 -0
  331. package/dist/methods/createCompareReport.test.js +236 -0
  332. package/dist/methods/elementPosition.d.ts +18 -0
  333. package/dist/methods/elementPosition.d.ts.map +1 -0
  334. package/dist/methods/elementPosition.interfaces.d.ts +14 -0
  335. package/dist/methods/elementPosition.interfaces.d.ts.map +1 -0
  336. package/dist/methods/elementPosition.interfaces.js +1 -0
  337. package/dist/methods/elementPosition.js +34 -0
  338. package/dist/methods/images.d.ts +69 -0
  339. package/dist/methods/images.d.ts.map +1 -0
  340. package/dist/methods/images.executeImageCompare.test.d.ts +2 -0
  341. package/dist/methods/images.executeImageCompare.test.d.ts.map +1 -0
  342. package/dist/methods/images.executeImageCompare.test.js +770 -0
  343. package/dist/methods/images.interfaces.d.ts +214 -0
  344. package/dist/methods/images.interfaces.d.ts.map +1 -0
  345. package/dist/methods/images.interfaces.js +1 -0
  346. package/dist/methods/images.js +428 -0
  347. package/dist/methods/images.test.d.ts +2 -0
  348. package/dist/methods/images.test.d.ts.map +1 -0
  349. package/dist/methods/images.test.js +1465 -0
  350. package/dist/methods/instanceData.d.ts +6 -0
  351. package/dist/methods/instanceData.d.ts.map +1 -0
  352. package/dist/methods/instanceData.interfaces.d.ts +57 -0
  353. package/dist/methods/instanceData.interfaces.d.ts.map +1 -0
  354. package/dist/methods/instanceData.interfaces.js +1 -0
  355. package/dist/methods/instanceData.js +42 -0
  356. package/dist/methods/instanceData.test.d.ts +2 -0
  357. package/dist/methods/instanceData.test.d.ts.map +1 -0
  358. package/dist/methods/instanceData.test.js +224 -0
  359. package/dist/methods/processDiffPixels.d.ts +59 -0
  360. package/dist/methods/processDiffPixels.d.ts.map +1 -0
  361. package/dist/methods/processDiffPixels.js +242 -0
  362. package/dist/methods/processDiffPixels.test.d.ts +2 -0
  363. package/dist/methods/processDiffPixels.test.d.ts.map +1 -0
  364. package/dist/methods/processDiffPixels.test.js +122 -0
  365. package/dist/methods/rectangles.d.ts +51 -0
  366. package/dist/methods/rectangles.d.ts.map +1 -0
  367. package/dist/methods/rectangles.interfaces.d.ts +146 -0
  368. package/dist/methods/rectangles.interfaces.d.ts.map +1 -0
  369. package/dist/methods/rectangles.interfaces.js +1 -0
  370. package/dist/methods/rectangles.js +266 -0
  371. package/dist/methods/rectangles.test.d.ts +2 -0
  372. package/dist/methods/rectangles.test.d.ts.map +1 -0
  373. package/dist/methods/rectangles.test.js +853 -0
  374. package/dist/methods/screenshots.d.ts +37 -0
  375. package/dist/methods/screenshots.d.ts.map +1 -0
  376. package/dist/methods/screenshots.interfaces.d.ts +203 -0
  377. package/dist/methods/screenshots.interfaces.d.ts.map +1 -0
  378. package/dist/methods/screenshots.interfaces.js +1 -0
  379. package/dist/methods/screenshots.js +394 -0
  380. package/dist/methods/screenshots.test.d.ts +2 -0
  381. package/dist/methods/screenshots.test.d.ts.map +1 -0
  382. package/dist/methods/screenshots.test.js +656 -0
  383. package/dist/methods/takeElementScreenshots.d.ts +3 -0
  384. package/dist/methods/takeElementScreenshots.d.ts.map +1 -0
  385. package/dist/methods/takeElementScreenshots.js +104 -0
  386. package/dist/methods/takeElementScreenshots.test.d.ts +2 -0
  387. package/dist/methods/takeElementScreenshots.test.d.ts.map +1 -0
  388. package/dist/methods/takeElementScreenshots.test.js +314 -0
  389. package/dist/methods/takeFullPageScreenshots.d.ts +3 -0
  390. package/dist/methods/takeFullPageScreenshots.d.ts.map +1 -0
  391. package/dist/methods/takeFullPageScreenshots.js +56 -0
  392. package/dist/methods/takeFullPageScreenshots.test.d.ts +2 -0
  393. package/dist/methods/takeFullPageScreenshots.test.d.ts.map +1 -0
  394. package/dist/methods/takeFullPageScreenshots.test.js +72 -0
  395. package/dist/methods/takeWebScreenshots.d.ts +3 -0
  396. package/dist/methods/takeWebScreenshots.d.ts.map +1 -0
  397. package/dist/methods/takeWebScreenshots.js +41 -0
  398. package/dist/methods/takeWebScreenshots.test.d.ts +2 -0
  399. package/dist/methods/takeWebScreenshots.test.d.ts.map +1 -0
  400. package/dist/methods/takeWebScreenshots.test.js +149 -0
  401. package/dist/mocks/image.d.ts +4 -0
  402. package/dist/mocks/image.d.ts.map +1 -0
  403. package/dist/mocks/image.js +3 -0
  404. package/dist/mocks/mocks.d.ts +745 -0
  405. package/dist/mocks/mocks.d.ts.map +1 -0
  406. package/dist/mocks/mocks.js +392 -0
  407. package/dist/resemble/compare.interfaces.d.ts +136 -0
  408. package/dist/resemble/compare.interfaces.d.ts.map +1 -0
  409. package/dist/resemble/compare.interfaces.js +1 -0
  410. package/dist/resemble/compareImages.d.ts +3 -0
  411. package/dist/resemble/compareImages.d.ts.map +1 -0
  412. package/dist/resemble/compareImages.js +21 -0
  413. package/dist/resemble/resemble.jimp.cjs +981 -0
  414. package/dist/resemble/resemble.jimp.d.cts +46 -0
  415. package/dist/resemble/resemble.jimp.d.cts.map +1 -0
  416. package/package.json +47 -0
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import scrollElementIntoView from './scrollElementIntoView.js';
3
+ describe('scrollElementIntoView', () => {
4
+ let mockElement;
5
+ let mockHtmlNode;
6
+ let mockBodyNode;
7
+ let mockStyleTag;
8
+ let mockHead;
9
+ beforeEach(() => {
10
+ mockElement = {
11
+ getBoundingClientRect: vi.fn().mockReturnValue({ top: 100 }),
12
+ };
13
+ mockHtmlNode = {
14
+ scrollTop: 0,
15
+ get scrollHeight() { return 1000; },
16
+ get clientHeight() { return 500; },
17
+ };
18
+ mockBodyNode = {
19
+ scrollTop: 0,
20
+ get scrollHeight() { return 1000; },
21
+ get clientHeight() { return 500; },
22
+ };
23
+ mockStyleTag = {
24
+ innerHTML: '',
25
+ };
26
+ mockHead = {
27
+ appendChild: vi.fn(),
28
+ removeChild: vi.fn(),
29
+ };
30
+ global.document = {
31
+ documentElement: mockHtmlNode,
32
+ body: mockBodyNode,
33
+ createElement: vi.fn().mockReturnValue(mockStyleTag),
34
+ head: mockHead,
35
+ };
36
+ });
37
+ it('should scroll element into view when html node is scrollable', () => {
38
+ const addressBarShadowPadding = 10;
39
+ const result = scrollElementIntoView(mockElement, addressBarShadowPadding);
40
+ expect(result).toBe(0);
41
+ expect(mockHtmlNode.scrollTop).toBe(90);
42
+ expect(mockHead.appendChild).toHaveBeenCalledWith(mockStyleTag);
43
+ expect(mockHead.removeChild).toHaveBeenCalledWith(mockStyleTag);
44
+ });
45
+ it('should scroll element into view when body node is scrollable', () => {
46
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
47
+ const addressBarShadowPadding = 10;
48
+ const result = scrollElementIntoView(mockElement, addressBarShadowPadding);
49
+ expect(result).toBe(0);
50
+ expect(mockBodyNode.scrollTop).toBe(90);
51
+ expect(mockHead.appendChild).toHaveBeenCalledWith(mockStyleTag);
52
+ expect(mockHead.removeChild).toHaveBeenCalledWith(mockStyleTag);
53
+ });
54
+ it('should return current scroll position when html node has scroll', () => {
55
+ mockHtmlNode.scrollTop = 50;
56
+ const addressBarShadowPadding = 10;
57
+ const result = scrollElementIntoView(mockElement, addressBarShadowPadding);
58
+ expect(result).toBe(50);
59
+ expect(mockHtmlNode.scrollTop).toBe(90);
60
+ });
61
+ it('should return current scroll position when body node has scroll', () => {
62
+ mockHtmlNode.scrollTop = 0;
63
+ mockBodyNode.scrollTop = 50;
64
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
65
+ const addressBarShadowPadding = 10;
66
+ const result = scrollElementIntoView(mockElement, addressBarShadowPadding);
67
+ expect(result).toBe(50);
68
+ expect(mockBodyNode.scrollTop).toBe(90);
69
+ });
70
+ it('should not scroll when neither html nor body is scrollable', () => {
71
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
72
+ Object.defineProperty(mockBodyNode, 'scrollHeight', { value: 500 });
73
+ const addressBarShadowPadding = 10;
74
+ const result = scrollElementIntoView(mockElement, addressBarShadowPadding);
75
+ expect(result).toBe(0);
76
+ expect(mockHtmlNode.scrollTop).toBe(0);
77
+ expect(mockBodyNode.scrollTop).toBe(0);
78
+ });
79
+ });
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Scroll to y = variable position in the screen
3
+ */
4
+ export default function scrollToPosition(yPosition: number): void;
5
+ //# sourceMappingURL=scrollToPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollToPosition.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/scrollToPosition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAuBhE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Scroll to y = variable position in the screen
3
+ */
4
+ /* istanbul ignore next */
5
+ export default function scrollToPosition(yPosition) {
6
+ const htmlNode = document.querySelector('html');
7
+ const bodyNode = document.querySelector('body');
8
+ if (htmlNode.scrollHeight > htmlNode.clientHeight) {
9
+ htmlNode.scrollTop = yPosition;
10
+ // Did we scroll to the right position?
11
+ if (htmlNode.scrollTop === yPosition) {
12
+ return;
13
+ }
14
+ }
15
+ // If not then try the body
16
+ if (bodyNode.scrollHeight > bodyNode.clientHeight) {
17
+ bodyNode.scrollTop = yPosition;
18
+ // Did we scroll to the right position?
19
+ if (bodyNode.scrollTop === yPosition) {
20
+ return;
21
+ }
22
+ }
23
+ // If not then try the document
24
+ (document.scrollingElement || document.documentElement).scrollTop = yPosition;
25
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scrollToPosition.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollToPosition.test.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/scrollToPosition.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import scrollToPosition from './scrollToPosition.js';
3
+ describe('scrollToPosition', () => {
4
+ let mockHtmlNode;
5
+ let mockBodyNode;
6
+ let mockScrollingElement;
7
+ beforeEach(() => {
8
+ mockHtmlNode = {
9
+ scrollTop: 0,
10
+ get scrollHeight() { return 1000; },
11
+ get clientHeight() { return 500; },
12
+ };
13
+ mockBodyNode = {
14
+ scrollTop: 0,
15
+ get scrollHeight() { return 1000; },
16
+ get clientHeight() { return 500; },
17
+ };
18
+ mockScrollingElement = {
19
+ scrollTop: 0,
20
+ };
21
+ global.document = {
22
+ querySelector: vi.fn((selector) => {
23
+ if (selector === 'html') {
24
+ return mockHtmlNode;
25
+ }
26
+ if (selector === 'body') {
27
+ return mockBodyNode;
28
+ }
29
+ return null;
30
+ }),
31
+ scrollingElement: mockScrollingElement,
32
+ documentElement: mockHtmlNode,
33
+ };
34
+ });
35
+ it('should scroll html node when it is scrollable', () => {
36
+ const yPosition = 100;
37
+ scrollToPosition(yPosition);
38
+ expect(mockHtmlNode.scrollTop).toBe(yPosition);
39
+ });
40
+ it('should scroll body node when html is not scrollable', () => {
41
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
42
+ const yPosition = 100;
43
+ scrollToPosition(yPosition);
44
+ expect(mockBodyNode.scrollTop).toBe(yPosition);
45
+ });
46
+ it('should scroll document.scrollingElement when neither html nor body is scrollable', () => {
47
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
48
+ Object.defineProperty(mockBodyNode, 'scrollHeight', { value: 500 });
49
+ const yPosition = 100;
50
+ scrollToPosition(yPosition);
51
+ expect(mockScrollingElement.scrollTop).toBe(yPosition);
52
+ });
53
+ it('should fallback to documentElement when scrollingElement is not available', () => {
54
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
55
+ Object.defineProperty(mockBodyNode, 'scrollHeight', { value: 500 });
56
+ Object.defineProperty(global.document, 'scrollingElement', { value: null });
57
+ const yPosition = 100;
58
+ scrollToPosition(yPosition);
59
+ expect(mockHtmlNode.scrollTop).toBe(yPosition);
60
+ });
61
+ it('should verify scroll position after scrolling html node', () => {
62
+ const yPosition = 100;
63
+ scrollToPosition(yPosition);
64
+ expect(mockHtmlNode.scrollTop).toBe(yPosition);
65
+ });
66
+ it('should verify scroll position after scrolling body node', () => {
67
+ Object.defineProperty(mockHtmlNode, 'scrollHeight', { value: 500 });
68
+ const yPosition = 100;
69
+ scrollToPosition(yPosition);
70
+ expect(mockBodyNode.scrollTop).toBe(yPosition);
71
+ });
72
+ });
@@ -0,0 +1,6 @@
1
+ import type { CssOptions } from './customCss.interfaces.js';
2
+ /**
3
+ * Set some default css
4
+ */
5
+ export default function setCustomCss(cssOptions: CssOptions): void;
6
+ //# sourceMappingURL=setCustomCss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCustomCss.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/setCustomCss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAiCjE"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Set some default css
3
+ */
4
+ export default function setCustomCss(cssOptions) {
5
+ if (!document.head) {
6
+ return;
7
+ }
8
+ // disabling CSS animations for everything including pseudo elements
9
+ const disableTransformationsTransitionsAnimations = `
10
+ *, *::before, *::after {
11
+ -o-transition-property: none !important;
12
+ -moz-transition-property: none !important;
13
+ -ms-transition-property: none !important;
14
+ -webkit-transition-property: none !important;
15
+ transition-property: none !important;
16
+ -webkit-animation: none !important;
17
+ -moz-animation: none !important;
18
+ -o-animation: none !important;
19
+ -ms-animation: none !important;
20
+ animation: none !important;
21
+ caret-color: transparent !important;
22
+ }`;
23
+ const { addressBarPadding, disableBlinkingCursor, disableCSSAnimation, id, toolBarPadding } = cssOptions;
24
+ const bodyTopPadding = addressBarPadding === 0 ? '' : `body{padding-top:${addressBarPadding}px !important}`;
25
+ const bodyBottomPadding = toolBarPadding === 0 ? '' : `body{padding-bottom:${toolBarPadding}px !important}`;
26
+ const disableBlinkingCursorCss = disableBlinkingCursor ? ' input, textarea, [contenteditable]{caret-color: transparent !important;}' : '';
27
+ const css = (disableCSSAnimation ? disableTransformationsTransitionsAnimations : '') +
28
+ bodyTopPadding +
29
+ bodyBottomPadding +
30
+ disableBlinkingCursorCss;
31
+ const head = document.head;
32
+ const style = document.createElement('style');
33
+ style.id = id;
34
+ style.appendChild(document.createTextNode(css));
35
+ head.appendChild(style);
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setCustomCss.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCustomCss.test.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/setCustomCss.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ // @vitest-environment jsdom
2
+ import { beforeEach, describe, it, expect } from 'vitest';
3
+ import setCustomCss from './setCustomCss.js';
4
+ describe('setCustomCss', () => {
5
+ beforeEach(() => {
6
+ document.head.innerHTML = '';
7
+ });
8
+ it('should be able to set the custom css with the default options', () => {
9
+ const cssOptions = {
10
+ addressBarPadding: 6,
11
+ disableBlinkingCursor: false,
12
+ disableCSSAnimation: false,
13
+ id: 'id',
14
+ toolBarPadding: 6,
15
+ };
16
+ expect(document.head.textContent).toMatchSnapshot();
17
+ setCustomCss(cssOptions);
18
+ expect(document.head.textContent).toMatchSnapshot();
19
+ });
20
+ it('should be able to set the custom css with the animations disabled', () => {
21
+ const cssOptions = {
22
+ addressBarPadding: 6,
23
+ disableBlinkingCursor: false,
24
+ disableCSSAnimation: true,
25
+ id: 'id',
26
+ toolBarPadding: 6,
27
+ };
28
+ expect(document.head.textContent).toMatchSnapshot();
29
+ setCustomCss(cssOptions);
30
+ expect(document.head.textContent).toMatchSnapshot();
31
+ });
32
+ it('should be able to set the custom css with the with padding set to 0', () => {
33
+ const cssOptions = {
34
+ addressBarPadding: 0,
35
+ disableBlinkingCursor: false,
36
+ disableCSSAnimation: true,
37
+ id: 'id',
38
+ toolBarPadding: 0,
39
+ };
40
+ expect(document.head.textContent).toMatchSnapshot();
41
+ setCustomCss(cssOptions);
42
+ expect(document.head.textContent).toMatchSnapshot();
43
+ });
44
+ it('should be able to set the custom css with the with disableBlinkingCursor set to true', () => {
45
+ const cssOptions = {
46
+ addressBarPadding: 0,
47
+ disableBlinkingCursor: true,
48
+ disableCSSAnimation: false,
49
+ id: 'id',
50
+ toolBarPadding: 0,
51
+ };
52
+ expect(document.head.textContent).toMatchSnapshot();
53
+ setCustomCss(cssOptions);
54
+ expect(document.head.textContent).toMatchSnapshot();
55
+ });
56
+ it('should do nothing if document.head is null', () => {
57
+ const cssOptions = {
58
+ addressBarPadding: 6,
59
+ disableBlinkingCursor: false,
60
+ disableCSSAnimation: false,
61
+ id: 'id',
62
+ toolBarPadding: 6,
63
+ };
64
+ Object.defineProperty(document, 'head', { value: null });
65
+ setCustomCss(cssOptions);
66
+ expect(document.head).toBe(null);
67
+ });
68
+ });
@@ -0,0 +1,11 @@
1
+ import type { RectanglesOutput } from '../methods/rectangles.interfaces.js';
2
+ export interface StatusAddressToolBarOffsets {
3
+ leftSidePadding: RectanglesOutput;
4
+ rightSidePadding: RectanglesOutput;
5
+ safeArea: number;
6
+ screenHeight: number;
7
+ screenWidth: number;
8
+ statusAddressBar: RectanglesOutput;
9
+ toolBar: RectanglesOutput;
10
+ }
11
+ //# sourceMappingURL=statusAddressToolBarOffsets.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusAddressToolBarOffsets.interfaces.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/statusAddressToolBarOffsets.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,MAAM,WAAW,2BAA2B;IACxC,eAAe,EAAE,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,gBAAgB,CAAC;CAC7B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Add or remove the transparency from the text
3
+ */
4
+ export default function toggleTextTransparency(enableTransparency: boolean): void;
5
+ //# sourceMappingURL=toggleTextTransparency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleTextTransparency.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/toggleTextTransparency.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAahF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Add or remove the transparency from the text
3
+ */
4
+ export default function toggleTextTransparency(enableTransparency) {
5
+ if (enableTransparency) {
6
+ const elements = document.querySelectorAll('body *:not(script):not(style)');
7
+ elements.forEach(el => {
8
+ el.style.setProperty('color', 'transparent', 'important');
9
+ });
10
+ return;
11
+ }
12
+ const elements = document.querySelectorAll('body [color]:not(script):not(style)');
13
+ elements.forEach(el => {
14
+ el.style.removeProperty('color');
15
+ });
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toggleTextTransparency.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleTextTransparency.test.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/toggleTextTransparency.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ // @vitest-environment jsdom
2
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
3
+ import toggleTextTransparency from './toggleTextTransparency.js';
4
+ describe('toggleTextTransparency', () => {
5
+ beforeEach(() => {
6
+ document.body.innerHTML = `
7
+ <div id="testDiv">
8
+ <p>Paragraph</p>
9
+ <span>Span</span>
10
+ <script>console.log('script')</script>
11
+ <style>body { background-color: blue; }</style>
12
+ </div>
13
+ `;
14
+ const styleElement = document.createElement('style');
15
+ styleElement.innerHTML = '/* head style */';
16
+ document.head.appendChild(styleElement);
17
+ });
18
+ afterEach(() => {
19
+ document.body.innerHTML = '';
20
+ document.head.innerHTML = '';
21
+ });
22
+ it('should make text transparent when enabled', () => {
23
+ toggleTextTransparency(true);
24
+ const testDiv = document.getElementById('testDiv');
25
+ expect(testDiv).toMatchSnapshot();
26
+ });
27
+ it('should remove transparent style when disabled', () => {
28
+ toggleTextTransparency(true);
29
+ const transparentDiv = document.getElementById('testDiv');
30
+ expect(transparentDiv).toMatchSnapshot();
31
+ toggleTextTransparency(false);
32
+ const testDiv = document.getElementById('testDiv');
33
+ expect(testDiv).toMatchSnapshot();
34
+ });
35
+ });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wait for the fonts to be loaded, do this for a max of 11 seconds
3
+ *
4
+ * NOTE: writing this with promises instead of async/await because it fails with
5
+ * `javascript error: __awaiter is not defined` when running in the browser
6
+ */
7
+ export default function waitForFonts(): Promise<void | string>;
8
+ //# sourceMappingURL=waitForFonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForFonts.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/waitForFonts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,OAAO,CAAC,IAAI,GAAC,MAAM,CAAC,CAc3D"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Wait for the fonts to be loaded, do this for a max of 11 seconds
3
+ *
4
+ * NOTE: writing this with promises instead of async/await because it fails with
5
+ * `javascript error: __awaiter is not defined` when running in the browser
6
+ */
7
+ export default function waitForFonts() {
8
+ return new Promise((resolve, reject) => {
9
+ const timeoutPromise = new Promise((_, reject) => {
10
+ setTimeout(() => {
11
+ reject(new Error('Font loading timed out'));
12
+ }, 11000);
13
+ });
14
+ Promise.race([document.fonts.ready, timeoutPromise])
15
+ .then(() => {
16
+ resolve('All fonts have loaded');
17
+ })
18
+ .catch(reject);
19
+ });
20
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=waitForFonts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForFonts.test.d.ts","sourceRoot":"","sources":["../../src/clientSideScripts/waitForFonts.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ // @vitest-environment jsdom
2
+ import { describe, it, expect, afterEach, beforeEach, vi } from 'vitest';
3
+ import waitForFonts from './waitForFonts.js';
4
+ describe('waitForFontsLoaded', () => {
5
+ let originalDocument;
6
+ beforeEach(() => {
7
+ originalDocument = { ...document };
8
+ });
9
+ afterEach(() => {
10
+ document = originalDocument;
11
+ vi.restoreAllMocks();
12
+ });
13
+ it('should resolve if fonts load within 11 seconds', async () => {
14
+ const mockReady = new Promise((resolve) => {
15
+ setTimeout(resolve, 1000);
16
+ });
17
+ global.document = {
18
+ ...originalDocument,
19
+ fonts: { ready: mockReady },
20
+ };
21
+ await expect(waitForFonts()).resolves.toBe('All fonts have loaded');
22
+ });
23
+ it('should reject if fonts do not load within 11 seconds', async () => {
24
+ const mockReady = new Promise((_, reject) => {
25
+ setTimeout(reject, 12000);
26
+ });
27
+ global.document = {
28
+ ...originalDocument,
29
+ fonts: { ready: mockReady },
30
+ };
31
+ vi.useFakeTimers();
32
+ const promise = waitForFonts();
33
+ vi.advanceTimersByTime(11000);
34
+ await expect(promise).rejects.toThrow('Font loading timed out');
35
+ vi.useRealTimers();
36
+ });
37
+ });
@@ -0,0 +1,35 @@
1
+ import type { InternalSaveMethodOptions } from './save.interfaces.js';
2
+ import type { RectanglesOutput } from '../methods/rectangles.interfaces.js';
3
+ import type { CheckElementOptions, ElementIgnore, WicElement } from './element.interfaces.js';
4
+ import type { CheckFullPageOptions } from './fullPage.interfaces.js';
5
+ import type { CheckScreenOptions } from './screen.interfaces.js';
6
+ import type { CheckTabbableOptions } from './tabbable.interfaces.js';
7
+ import type { BaseImageCompareOptions, BaseMobileBlockOutOptions } from '../base.interfaces.js';
8
+ import type { TestContext } from '../methods/compareReport.interfaces.js';
9
+ export interface CheckMethodOptions extends BaseImageCompareOptions, BaseMobileBlockOutOptions {
10
+ /**
11
+ * Block out array with x, y, width and height values
12
+ */
13
+ blockOut?: RectanglesOutput[];
14
+ /**
15
+ * Ignore elements and or areas
16
+ */
17
+ ignore?: ElementIgnore[];
18
+ }
19
+ export interface InternalCheckMethodOptions extends InternalSaveMethodOptions {
20
+ testContext: TestContext;
21
+ }
22
+ export interface InternalCheckScreenMethodOptions extends InternalCheckMethodOptions {
23
+ checkScreenOptions: CheckScreenOptions;
24
+ }
25
+ export interface InternalCheckElementMethodOptions extends InternalCheckMethodOptions {
26
+ element: WicElement | HTMLElement;
27
+ checkElementOptions: CheckElementOptions;
28
+ }
29
+ export interface InternalCheckFullPageMethodOptions extends InternalCheckMethodOptions {
30
+ checkFullPageOptions: CheckFullPageOptions;
31
+ }
32
+ export interface InternalCheckTabbablePageMethodOptions extends InternalCheckMethodOptions {
33
+ checkTabbableOptions: CheckTabbableOptions;
34
+ }
35
+ //# sourceMappingURL=check.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.interfaces.d.ts","sourceRoot":"","sources":["../../src/commands/check.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEzE,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB,EAAE,yBAAyB;IAC1F;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IACzE,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAChF,kBAAkB,EAAE,kBAAkB,CAAC;CAC1C;AAED,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACjF,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,mBAAmB,EAAE,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,kCAAmC,SAAQ,0BAA0B;IAClF,oBAAoB,EAAE,oBAAoB,CAAC;CAC9C;AAED,MAAM,WAAW,sCAAuC,SAAQ,0BAA0B;IACtF,oBAAoB,EAAE,oBAAoB,CAAC;CAC9C"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { ImageCompareResult } from '../methods/images.interfaces.js';
2
+ import type { InternalCheckElementMethodOptions } from './check.interfaces.js';
3
+ /**
4
+ * Compare an image of the element
5
+ */
6
+ export default function checkAppElement({ checkElementOptions, browserInstance, element, folders, instanceData, isNativeContext, tag, testContext, }: InternalCheckElementMethodOptions): Promise<ImageCompareResult | number>;
7
+ //# sourceMappingURL=checkAppElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAppElement.d.ts","sourceRoot":"","sources":["../../src/commands/checkAppElement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAGzE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AAI9E;;GAEG;AACH,wBAA8B,eAAe,CACzC,EACI,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,OAAO,EACP,YAAY,EACZ,eAAsB,EACtB,GAAG,EACH,WAAW,GACd,EAAE,iCAAiC,GACrC,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAuCtC"}
@@ -0,0 +1,44 @@
1
+ import { methodCompareOptions } from '../helpers/options.js';
2
+ import { executeImageCompare } from '../methods/images.js';
3
+ import { extractCommonCheckVariables, buildBaseExecuteCompareOptions } from '../helpers/utils.js';
4
+ import saveAppElement from './saveAppElement.js';
5
+ /**
6
+ * Compare an image of the element
7
+ */
8
+ export default async function checkAppElement({ checkElementOptions, browserInstance, element, folders, instanceData, isNativeContext = true, tag, testContext, }) {
9
+ // 1. Extract common variables
10
+ const commonCheckVariables = extractCommonCheckVariables({ folders, instanceData, wicOptions: checkElementOptions.wic });
11
+ // 2. Save the element and return the data
12
+ const { devicePixelRatio, fileName } = await saveAppElement({
13
+ browserInstance,
14
+ element: element,
15
+ folders,
16
+ instanceData,
17
+ isNativeContext,
18
+ saveElementOptions: checkElementOptions,
19
+ tag,
20
+ });
21
+ // @TODO: This is something for the future, to allow ignore regions on the element itself.
22
+ // This will become a feature request
23
+ // 3. Determine the options
24
+ const compareOptions = methodCompareOptions(checkElementOptions.method);
25
+ const executeCompareOptions = buildBaseExecuteCompareOptions({
26
+ commonCheckVariables,
27
+ wicCompareOptions: checkElementOptions.wic.compareOptions,
28
+ methodCompareOptions: compareOptions,
29
+ devicePixelRatio,
30
+ fileName,
31
+ isElementScreenshot: true, // This will automatically set blockOut* options to false
32
+ additionalProperties: {
33
+ isHybridApp: checkElementOptions.wic.isHybridApp,
34
+ platformName: instanceData.platformName,
35
+ }
36
+ });
37
+ // 4. Now execute the compare and return the data
38
+ return executeImageCompare({
39
+ options: executeCompareOptions,
40
+ testContext,
41
+ isViewPortScreenshot: false,
42
+ isNativeContext,
43
+ });
44
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=checkAppElement.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAppElement.test.d.ts","sourceRoot":"","sources":["../../src/commands/checkAppElement.test.ts"],"names":[],"mappings":""}