@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.
- package/CHANGELOG.md +82 -0
- package/LICENSE +21 -0
- package/README.md +12 -0
- package/assets/ios/ipadair4th.ipadair5th-bottom.png +0 -0
- package/assets/ios/ipadair4th.ipadair5th-top.png +0 -0
- package/assets/ios/ipadmini6th-bottom.png +0 -0
- package/assets/ios/ipadmini6th-top.png +0 -0
- package/assets/ios/ipadpro11-bottom.png +0 -0
- package/assets/ios/ipadpro11-top.png +0 -0
- package/assets/ios/ipadpro129-bottom.png +0 -0
- package/assets/ios/ipadpro129-top.png +0 -0
- package/assets/ios/iphone11promax-bottom.png +0 -0
- package/assets/ios/iphone11promax-top.png +0 -0
- package/assets/ios/iphone12.iphone12pro-top.png +0 -0
- package/assets/ios/iphone12.iphone12pro.iphone13.iphone13pro.iphone14-bottom.png +0 -0
- package/assets/ios/iphone12mini-top.png +0 -0
- package/assets/ios/iphone12mini.iphone13mini-bottom.png +0 -0
- package/assets/ios/iphone12promax-top.png +0 -0
- package/assets/ios/iphone12promax.iphone13promax.iphone14plus-bottom.png +0 -0
- package/assets/ios/iphone13.iphone13pro.iphone14-top.png +0 -0
- package/assets/ios/iphone13mini-top.png +0 -0
- package/assets/ios/iphone13promax.iphone14plus-top.png +0 -0
- package/assets/ios/iphone14pro-bottom.png +0 -0
- package/assets/ios/iphone14pro-top.png +0 -0
- package/assets/ios/iphone14promax-bottom.png +0 -0
- package/assets/ios/iphone14promax-top.png +0 -0
- package/assets/ios/iphone15-bottom.png +0 -0
- package/assets/ios/iphone15-top.png +0 -0
- package/assets/ios/iphonex.iphonexs.iphone11pro-bottom.png +0 -0
- package/assets/ios/iphonex.iphonexs.iphone11pro-top.png +0 -0
- package/assets/ios/iphonexr.iphone11-bottom.png +0 -0
- package/assets/ios/iphonexr.iphone11-top.png +0 -0
- package/assets/ios/iphonexsmax-bottom.png +0 -0
- package/assets/ios/iphonexsmax-top.png +0 -0
- package/dist/base.d.ts +18 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.interfaces.d.ts +200 -0
- package/dist/base.interfaces.d.ts.map +1 -0
- package/dist/base.interfaces.js +1 -0
- package/dist/base.js +58 -0
- package/dist/base.test.d.ts +2 -0
- package/dist/base.test.d.ts.map +1 -0
- package/dist/base.test.js +45 -0
- package/dist/clientSideScripts/checkMetaTag.d.ts +2 -0
- package/dist/clientSideScripts/checkMetaTag.d.ts.map +1 -0
- package/dist/clientSideScripts/checkMetaTag.js +9 -0
- package/dist/clientSideScripts/checkMetaTag.test.d.ts +2 -0
- package/dist/clientSideScripts/checkMetaTag.test.d.ts.map +1 -0
- package/dist/clientSideScripts/checkMetaTag.test.js +25 -0
- package/dist/clientSideScripts/customCss.interfaces.d.ts +8 -0
- package/dist/clientSideScripts/customCss.interfaces.d.ts.map +1 -0
- package/dist/clientSideScripts/customCss.interfaces.js +1 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts +8 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts.map +1 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts +4 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts.map +1 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.js +1 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.js +275 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts +2 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts.map +1 -0
- package/dist/clientSideScripts/drawTabbableOnCanvas.test.js +251 -0
- package/dist/clientSideScripts/elementPosition.interfaces.d.ts +3 -0
- package/dist/clientSideScripts/elementPosition.interfaces.d.ts.map +1 -0
- package/dist/clientSideScripts/elementPosition.interfaces.js +1 -0
- package/dist/clientSideScripts/getBoundingClientRect.d.ts +6 -0
- package/dist/clientSideScripts/getBoundingClientRect.d.ts.map +1 -0
- package/dist/clientSideScripts/getBoundingClientRect.js +12 -0
- package/dist/clientSideScripts/getBoundingClientRect.test.d.ts +2 -0
- package/dist/clientSideScripts/getBoundingClientRect.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getBoundingClientRect.test.js +28 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.d.ts +5 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.d.ts.map +1 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.js +48 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts +2 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getDocumentScrollHeight.test.js +30 -0
- package/dist/clientSideScripts/getElementPositionTopDom.d.ts +6 -0
- package/dist/clientSideScripts/getElementPositionTopDom.d.ts.map +1 -0
- package/dist/clientSideScripts/getElementPositionTopDom.js +11 -0
- package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts +2 -0
- package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getElementPositionTopDom.test.js +11 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts +14 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts.map +1 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.js +19 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts +2 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.js +52 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts +6 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts.map +1 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.js +17 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts +2 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.js +47 -0
- package/dist/clientSideScripts/getScreenDimensions.d.ts +6 -0
- package/dist/clientSideScripts/getScreenDimensions.d.ts.map +1 -0
- package/dist/clientSideScripts/getScreenDimensions.js +104 -0
- package/dist/clientSideScripts/getScreenDimensions.test.d.ts +2 -0
- package/dist/clientSideScripts/getScreenDimensions.test.d.ts.map +1 -0
- package/dist/clientSideScripts/getScreenDimensions.test.js +161 -0
- package/dist/clientSideScripts/hideRemoveElements.d.ts +8 -0
- package/dist/clientSideScripts/hideRemoveElements.d.ts.map +1 -0
- package/dist/clientSideScripts/hideRemoveElements.js +60 -0
- package/dist/clientSideScripts/hideRemoveElements.test.d.ts +2 -0
- package/dist/clientSideScripts/hideRemoveElements.test.d.ts.map +1 -0
- package/dist/clientSideScripts/hideRemoveElements.test.js +199 -0
- package/dist/clientSideScripts/hideScrollbars.d.ts +9 -0
- package/dist/clientSideScripts/hideScrollbars.d.ts.map +1 -0
- package/dist/clientSideScripts/hideScrollbars.js +15 -0
- package/dist/clientSideScripts/hideScrollbars.test.d.ts +2 -0
- package/dist/clientSideScripts/hideScrollbars.test.d.ts.map +1 -0
- package/dist/clientSideScripts/hideScrollbars.test.js +12 -0
- package/dist/clientSideScripts/injectWebviewOverlay.d.ts +5 -0
- package/dist/clientSideScripts/injectWebviewOverlay.d.ts.map +1 -0
- package/dist/clientSideScripts/injectWebviewOverlay.js +35 -0
- package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts +2 -0
- package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts.map +1 -0
- package/dist/clientSideScripts/injectWebviewOverlay.test.js +74 -0
- package/dist/clientSideScripts/removeElementFromDom.d.ts +5 -0
- package/dist/clientSideScripts/removeElementFromDom.d.ts.map +1 -0
- package/dist/clientSideScripts/removeElementFromDom.js +9 -0
- package/dist/clientSideScripts/removeElementFromDom.test.d.ts +2 -0
- package/dist/clientSideScripts/removeElementFromDom.test.d.ts.map +1 -0
- package/dist/clientSideScripts/removeElementFromDom.test.js +43 -0
- package/dist/clientSideScripts/screenDimensions.interfaces.d.ts +96 -0
- package/dist/clientSideScripts/screenDimensions.interfaces.d.ts.map +1 -0
- package/dist/clientSideScripts/screenDimensions.interfaces.js +1 -0
- package/dist/clientSideScripts/scrollElementIntoView.d.ts +5 -0
- package/dist/clientSideScripts/scrollElementIntoView.d.ts.map +1 -0
- package/dist/clientSideScripts/scrollElementIntoView.js +31 -0
- package/dist/clientSideScripts/scrollElementIntoView.test.d.ts +2 -0
- package/dist/clientSideScripts/scrollElementIntoView.test.d.ts.map +1 -0
- package/dist/clientSideScripts/scrollElementIntoView.test.js +79 -0
- package/dist/clientSideScripts/scrollToPosition.d.ts +5 -0
- package/dist/clientSideScripts/scrollToPosition.d.ts.map +1 -0
- package/dist/clientSideScripts/scrollToPosition.js +25 -0
- package/dist/clientSideScripts/scrollToPosition.test.d.ts +2 -0
- package/dist/clientSideScripts/scrollToPosition.test.d.ts.map +1 -0
- package/dist/clientSideScripts/scrollToPosition.test.js +72 -0
- package/dist/clientSideScripts/setCustomCss.d.ts +6 -0
- package/dist/clientSideScripts/setCustomCss.d.ts.map +1 -0
- package/dist/clientSideScripts/setCustomCss.js +36 -0
- package/dist/clientSideScripts/setCustomCss.test.d.ts +2 -0
- package/dist/clientSideScripts/setCustomCss.test.d.ts.map +1 -0
- package/dist/clientSideScripts/setCustomCss.test.js +68 -0
- package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts +11 -0
- package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts.map +1 -0
- package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.js +1 -0
- package/dist/clientSideScripts/toggleTextTransparency.d.ts +5 -0
- package/dist/clientSideScripts/toggleTextTransparency.d.ts.map +1 -0
- package/dist/clientSideScripts/toggleTextTransparency.js +16 -0
- package/dist/clientSideScripts/toggleTextTransparency.test.d.ts +2 -0
- package/dist/clientSideScripts/toggleTextTransparency.test.d.ts.map +1 -0
- package/dist/clientSideScripts/toggleTextTransparency.test.js +35 -0
- package/dist/clientSideScripts/waitForFonts.d.ts +8 -0
- package/dist/clientSideScripts/waitForFonts.d.ts.map +1 -0
- package/dist/clientSideScripts/waitForFonts.js +20 -0
- package/dist/clientSideScripts/waitForFonts.test.d.ts +2 -0
- package/dist/clientSideScripts/waitForFonts.test.d.ts.map +1 -0
- package/dist/clientSideScripts/waitForFonts.test.js +37 -0
- package/dist/commands/check.interfaces.d.ts +35 -0
- package/dist/commands/check.interfaces.d.ts.map +1 -0
- package/dist/commands/check.interfaces.js +1 -0
- package/dist/commands/checkAppElement.d.ts +7 -0
- package/dist/commands/checkAppElement.d.ts.map +1 -0
- package/dist/commands/checkAppElement.js +44 -0
- package/dist/commands/checkAppElement.test.d.ts +2 -0
- package/dist/commands/checkAppElement.test.d.ts.map +1 -0
- package/dist/commands/checkAppElement.test.js +241 -0
- package/dist/commands/checkAppScreen.d.ts +7 -0
- package/dist/commands/checkAppScreen.d.ts.map +1 -0
- package/dist/commands/checkAppScreen.js +73 -0
- package/dist/commands/checkAppScreen.test.d.ts +2 -0
- package/dist/commands/checkAppScreen.test.d.ts.map +1 -0
- package/dist/commands/checkAppScreen.test.js +295 -0
- package/dist/commands/checkElement.d.ts +7 -0
- package/dist/commands/checkElement.d.ts.map +1 -0
- package/dist/commands/checkElement.js +10 -0
- package/dist/commands/checkElement.test.d.ts +2 -0
- package/dist/commands/checkElement.test.d.ts.map +1 -0
- package/dist/commands/checkElement.test.js +66 -0
- package/dist/commands/checkFullPageScreen.d.ts +7 -0
- package/dist/commands/checkFullPageScreen.d.ts.map +1 -0
- package/dist/commands/checkFullPageScreen.js +56 -0
- package/dist/commands/checkFullPageScreen.test.d.ts +2 -0
- package/dist/commands/checkFullPageScreen.test.d.ts.map +1 -0
- package/dist/commands/checkFullPageScreen.test.js +259 -0
- package/dist/commands/checkScreen.d.ts +7 -0
- package/dist/commands/checkScreen.d.ts.map +1 -0
- package/dist/commands/checkScreen.js +10 -0
- package/dist/commands/checkScreen.test.d.ts +2 -0
- package/dist/commands/checkScreen.test.d.ts.map +1 -0
- package/dist/commands/checkScreen.test.js +62 -0
- package/dist/commands/checkTabbablePage.d.ts +7 -0
- package/dist/commands/checkTabbablePage.d.ts.map +1 -0
- package/dist/commands/checkTabbablePage.js +28 -0
- package/dist/commands/checkTabbablePage.test.d.ts +2 -0
- package/dist/commands/checkTabbablePage.test.d.ts.map +1 -0
- package/dist/commands/checkTabbablePage.test.js +200 -0
- package/dist/commands/checkWebElement.d.ts +7 -0
- package/dist/commands/checkWebElement.d.ts.map +1 -0
- package/dist/commands/checkWebElement.js +52 -0
- package/dist/commands/checkWebElement.test.d.ts +2 -0
- package/dist/commands/checkWebElement.test.d.ts.map +1 -0
- package/dist/commands/checkWebElement.test.js +278 -0
- package/dist/commands/checkWebScreen.d.ts +7 -0
- package/dist/commands/checkWebScreen.d.ts.map +1 -0
- package/dist/commands/checkWebScreen.js +50 -0
- package/dist/commands/checkWebScreen.test.d.ts +2 -0
- package/dist/commands/checkWebScreen.test.d.ts.map +1 -0
- package/dist/commands/checkWebScreen.test.js +227 -0
- package/dist/commands/element.interfaces.d.ts +27 -0
- package/dist/commands/element.interfaces.d.ts.map +1 -0
- package/dist/commands/element.interfaces.js +1 -0
- package/dist/commands/fullPage.interfaces.d.ts +38 -0
- package/dist/commands/fullPage.interfaces.d.ts.map +1 -0
- package/dist/commands/fullPage.interfaces.js +1 -0
- package/dist/commands/save.interfaces.d.ts +27 -0
- package/dist/commands/save.interfaces.d.ts.map +1 -0
- package/dist/commands/save.interfaces.js +1 -0
- package/dist/commands/saveAppElement.d.ts +7 -0
- package/dist/commands/saveAppElement.d.ts.map +1 -0
- package/dist/commands/saveAppElement.js +30 -0
- package/dist/commands/saveAppElement.test.d.ts +2 -0
- package/dist/commands/saveAppElement.test.d.ts.map +1 -0
- package/dist/commands/saveAppElement.test.js +199 -0
- package/dist/commands/saveAppScreen.d.ts +7 -0
- package/dist/commands/saveAppScreen.d.ts.map +1 -0
- package/dist/commands/saveAppScreen.js +43 -0
- package/dist/commands/saveAppScreen.test.d.ts +2 -0
- package/dist/commands/saveAppScreen.test.d.ts.map +1 -0
- package/dist/commands/saveAppScreen.test.js +221 -0
- package/dist/commands/saveElement.d.ts +7 -0
- package/dist/commands/saveElement.d.ts.map +1 -0
- package/dist/commands/saveElement.js +10 -0
- package/dist/commands/saveElement.test.d.ts +2 -0
- package/dist/commands/saveElement.test.d.ts.map +1 -0
- package/dist/commands/saveElement.test.js +62 -0
- package/dist/commands/saveFullPageScreen.d.ts +7 -0
- package/dist/commands/saveFullPageScreen.d.ts.map +1 -0
- package/dist/commands/saveFullPageScreen.js +60 -0
- package/dist/commands/saveFullPageScreen.test.d.ts +2 -0
- package/dist/commands/saveFullPageScreen.test.d.ts.map +1 -0
- package/dist/commands/saveFullPageScreen.test.js +293 -0
- package/dist/commands/saveScreen.d.ts +7 -0
- package/dist/commands/saveScreen.d.ts.map +1 -0
- package/dist/commands/saveScreen.js +10 -0
- package/dist/commands/saveScreen.test.d.ts +2 -0
- package/dist/commands/saveScreen.test.d.ts.map +1 -0
- package/dist/commands/saveScreen.test.js +47 -0
- package/dist/commands/saveTabbablePage.d.ts +7 -0
- package/dist/commands/saveTabbablePage.d.ts.map +1 -0
- package/dist/commands/saveTabbablePage.js +20 -0
- package/dist/commands/saveTabbablePage.test.d.ts +2 -0
- package/dist/commands/saveTabbablePage.test.d.ts.map +1 -0
- package/dist/commands/saveTabbablePage.test.js +74 -0
- package/dist/commands/saveWebElement.d.ts +7 -0
- package/dist/commands/saveWebElement.d.ts.map +1 -0
- package/dist/commands/saveWebElement.js +53 -0
- package/dist/commands/saveWebElement.test.d.ts +2 -0
- package/dist/commands/saveWebElement.test.d.ts.map +1 -0
- package/dist/commands/saveWebElement.test.js +253 -0
- package/dist/commands/saveWebScreen.d.ts +7 -0
- package/dist/commands/saveWebScreen.d.ts.map +1 -0
- package/dist/commands/saveWebScreen.js +48 -0
- package/dist/commands/saveWebScreen.test.d.ts +2 -0
- package/dist/commands/saveWebScreen.test.d.ts.map +1 -0
- package/dist/commands/saveWebScreen.test.js +222 -0
- package/dist/commands/screen.interfaces.d.ts +16 -0
- package/dist/commands/screen.interfaces.d.ts.map +1 -0
- package/dist/commands/screen.interfaces.js +1 -0
- package/dist/commands/tabbable.interfaces.d.ts +29 -0
- package/dist/commands/tabbable.interfaces.d.ts.map +1 -0
- package/dist/commands/tabbable.interfaces.js +1 -0
- package/dist/helpers/afterScreenshot.d.ts +7 -0
- package/dist/helpers/afterScreenshot.d.ts.map +1 -0
- package/dist/helpers/afterScreenshot.interfaces.d.ts +46 -0
- package/dist/helpers/afterScreenshot.interfaces.d.ts.map +1 -0
- package/dist/helpers/afterScreenshot.interfaces.js +1 -0
- package/dist/helpers/afterScreenshot.js +55 -0
- package/dist/helpers/afterScreenshot.test.d.ts +2 -0
- package/dist/helpers/afterScreenshot.test.d.ts.map +1 -0
- package/dist/helpers/afterScreenshot.test.js +241 -0
- package/dist/helpers/beforeScreenshot.d.ts +6 -0
- package/dist/helpers/beforeScreenshot.d.ts.map +1 -0
- package/dist/helpers/beforeScreenshot.interfaces.d.ts +15 -0
- package/dist/helpers/beforeScreenshot.interfaces.d.ts.map +1 -0
- package/dist/helpers/beforeScreenshot.interfaces.js +1 -0
- package/dist/helpers/beforeScreenshot.js +79 -0
- package/dist/helpers/beforeScreenshot.test.d.ts +2 -0
- package/dist/helpers/beforeScreenshot.test.d.ts.map +1 -0
- package/dist/helpers/beforeScreenshot.test.js +261 -0
- package/dist/helpers/compare.interfaces.d.ts +16 -0
- package/dist/helpers/compare.interfaces.d.ts.map +1 -0
- package/dist/helpers/compare.interfaces.js +1 -0
- package/dist/helpers/constants.d.ts +108 -0
- package/dist/helpers/constants.d.ts.map +1 -0
- package/dist/helpers/constants.interfaces.d.ts +30 -0
- package/dist/helpers/constants.interfaces.d.ts.map +1 -0
- package/dist/helpers/constants.interfaces.js +11 -0
- package/dist/helpers/constants.js +436 -0
- package/dist/helpers/options.d.ts +64 -0
- package/dist/helpers/options.d.ts.map +1 -0
- package/dist/helpers/options.interfaces.d.ts +363 -0
- package/dist/helpers/options.interfaces.d.ts.map +1 -0
- package/dist/helpers/options.interfaces.js +1 -0
- package/dist/helpers/options.js +184 -0
- package/dist/helpers/options.test.d.ts +2 -0
- package/dist/helpers/options.test.d.ts.map +1 -0
- package/dist/helpers/options.test.js +428 -0
- package/dist/helpers/utils.d.ts +134 -0
- package/dist/helpers/utils.d.ts.map +1 -0
- package/dist/helpers/utils.interfaces.d.ts +254 -0
- package/dist/helpers/utils.interfaces.d.ts.map +1 -0
- package/dist/helpers/utils.interfaces.js +1 -0
- package/dist/helpers/utils.js +566 -0
- package/dist/helpers/utils.test.d.ts +2 -0
- package/dist/helpers/utils.test.d.ts.map +1 -0
- package/dist/helpers/utils.test.js +900 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/methods/compareReport.interfaces.d.ts +109 -0
- package/dist/methods/compareReport.interfaces.d.ts.map +1 -0
- package/dist/methods/compareReport.interfaces.js +1 -0
- package/dist/methods/createCompareReport.d.ts +7 -0
- package/dist/methods/createCompareReport.d.ts.map +1 -0
- package/dist/methods/createCompareReport.js +61 -0
- package/dist/methods/createCompareReport.test.d.ts +2 -0
- package/dist/methods/createCompareReport.test.d.ts.map +1 -0
- package/dist/methods/createCompareReport.test.js +236 -0
- package/dist/methods/elementPosition.d.ts +18 -0
- package/dist/methods/elementPosition.d.ts.map +1 -0
- package/dist/methods/elementPosition.interfaces.d.ts +14 -0
- package/dist/methods/elementPosition.interfaces.d.ts.map +1 -0
- package/dist/methods/elementPosition.interfaces.js +1 -0
- package/dist/methods/elementPosition.js +34 -0
- package/dist/methods/images.d.ts +69 -0
- package/dist/methods/images.d.ts.map +1 -0
- package/dist/methods/images.executeImageCompare.test.d.ts +2 -0
- package/dist/methods/images.executeImageCompare.test.d.ts.map +1 -0
- package/dist/methods/images.executeImageCompare.test.js +770 -0
- package/dist/methods/images.interfaces.d.ts +214 -0
- package/dist/methods/images.interfaces.d.ts.map +1 -0
- package/dist/methods/images.interfaces.js +1 -0
- package/dist/methods/images.js +428 -0
- package/dist/methods/images.test.d.ts +2 -0
- package/dist/methods/images.test.d.ts.map +1 -0
- package/dist/methods/images.test.js +1465 -0
- package/dist/methods/instanceData.d.ts +6 -0
- package/dist/methods/instanceData.d.ts.map +1 -0
- package/dist/methods/instanceData.interfaces.d.ts +57 -0
- package/dist/methods/instanceData.interfaces.d.ts.map +1 -0
- package/dist/methods/instanceData.interfaces.js +1 -0
- package/dist/methods/instanceData.js +42 -0
- package/dist/methods/instanceData.test.d.ts +2 -0
- package/dist/methods/instanceData.test.d.ts.map +1 -0
- package/dist/methods/instanceData.test.js +224 -0
- package/dist/methods/processDiffPixels.d.ts +59 -0
- package/dist/methods/processDiffPixels.d.ts.map +1 -0
- package/dist/methods/processDiffPixels.js +242 -0
- package/dist/methods/processDiffPixels.test.d.ts +2 -0
- package/dist/methods/processDiffPixels.test.d.ts.map +1 -0
- package/dist/methods/processDiffPixels.test.js +122 -0
- package/dist/methods/rectangles.d.ts +51 -0
- package/dist/methods/rectangles.d.ts.map +1 -0
- package/dist/methods/rectangles.interfaces.d.ts +146 -0
- package/dist/methods/rectangles.interfaces.d.ts.map +1 -0
- package/dist/methods/rectangles.interfaces.js +1 -0
- package/dist/methods/rectangles.js +266 -0
- package/dist/methods/rectangles.test.d.ts +2 -0
- package/dist/methods/rectangles.test.d.ts.map +1 -0
- package/dist/methods/rectangles.test.js +853 -0
- package/dist/methods/screenshots.d.ts +37 -0
- package/dist/methods/screenshots.d.ts.map +1 -0
- package/dist/methods/screenshots.interfaces.d.ts +203 -0
- package/dist/methods/screenshots.interfaces.d.ts.map +1 -0
- package/dist/methods/screenshots.interfaces.js +1 -0
- package/dist/methods/screenshots.js +394 -0
- package/dist/methods/screenshots.test.d.ts +2 -0
- package/dist/methods/screenshots.test.d.ts.map +1 -0
- package/dist/methods/screenshots.test.js +656 -0
- package/dist/methods/takeElementScreenshots.d.ts +3 -0
- package/dist/methods/takeElementScreenshots.d.ts.map +1 -0
- package/dist/methods/takeElementScreenshots.js +104 -0
- package/dist/methods/takeElementScreenshots.test.d.ts +2 -0
- package/dist/methods/takeElementScreenshots.test.d.ts.map +1 -0
- package/dist/methods/takeElementScreenshots.test.js +314 -0
- package/dist/methods/takeFullPageScreenshots.d.ts +3 -0
- package/dist/methods/takeFullPageScreenshots.d.ts.map +1 -0
- package/dist/methods/takeFullPageScreenshots.js +56 -0
- package/dist/methods/takeFullPageScreenshots.test.d.ts +2 -0
- package/dist/methods/takeFullPageScreenshots.test.d.ts.map +1 -0
- package/dist/methods/takeFullPageScreenshots.test.js +72 -0
- package/dist/methods/takeWebScreenshots.d.ts +3 -0
- package/dist/methods/takeWebScreenshots.d.ts.map +1 -0
- package/dist/methods/takeWebScreenshots.js +41 -0
- package/dist/methods/takeWebScreenshots.test.d.ts +2 -0
- package/dist/methods/takeWebScreenshots.test.d.ts.map +1 -0
- package/dist/methods/takeWebScreenshots.test.js +149 -0
- package/dist/mocks/image.d.ts +4 -0
- package/dist/mocks/image.d.ts.map +1 -0
- package/dist/mocks/image.js +3 -0
- package/dist/mocks/mocks.d.ts +745 -0
- package/dist/mocks/mocks.d.ts.map +1 -0
- package/dist/mocks/mocks.js +392 -0
- package/dist/resemble/compare.interfaces.d.ts +136 -0
- package/dist/resemble/compare.interfaces.d.ts.map +1 -0
- package/dist/resemble/compare.interfaces.js +1 -0
- package/dist/resemble/compareImages.d.ts +3 -0
- package/dist/resemble/compareImages.d.ts.map +1 -0
- package/dist/resemble/compareImages.js +21 -0
- package/dist/resemble/resemble.jimp.cjs +981 -0
- package/dist/resemble/resemble.jimp.d.cts +46 -0
- package/dist/resemble/resemble.jimp.d.cts.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { defaultOptions, methodCompareOptions, screenMethodCompareOptions, createBeforeScreenshotOptions, buildAfterScreenshotOptions } from './options.js';
|
|
3
|
+
describe('options', () => {
|
|
4
|
+
describe('defaultOptions', () => {
|
|
5
|
+
it('should return the default options when no options are provided', () => {
|
|
6
|
+
expect(defaultOptions({})).toMatchSnapshot();
|
|
7
|
+
});
|
|
8
|
+
it('should return the provided options when options are provided', () => {
|
|
9
|
+
const options = {
|
|
10
|
+
addressBarShadowPadding: 1,
|
|
11
|
+
autoSaveBaseline: true,
|
|
12
|
+
formatImageName: '{foo}-{bar}',
|
|
13
|
+
savePerInstance: true,
|
|
14
|
+
toolBarShadowPadding: 1,
|
|
15
|
+
disableBlinkingCursor: true,
|
|
16
|
+
disableCSSAnimation: true,
|
|
17
|
+
fullPageScrollTimeout: 12345,
|
|
18
|
+
hideScrollBars: true,
|
|
19
|
+
blockOutSideBar: true,
|
|
20
|
+
blockOutStatusBar: true,
|
|
21
|
+
blockOutToolBar: true,
|
|
22
|
+
createJsonReportFiles: true,
|
|
23
|
+
diffPixelBoundingBoxProximity: 123,
|
|
24
|
+
ignoreAlpha: true,
|
|
25
|
+
ignoreAntialiasing: true,
|
|
26
|
+
ignoreColors: true,
|
|
27
|
+
ignoreLess: true,
|
|
28
|
+
ignoreNothing: true,
|
|
29
|
+
rawMisMatchPercentage: true,
|
|
30
|
+
returnAllCompareData: true,
|
|
31
|
+
saveAboveTolerance: 12,
|
|
32
|
+
scaleImagesToSameSize: true,
|
|
33
|
+
tabbableOptions: {
|
|
34
|
+
circle: {
|
|
35
|
+
backgroundColor: 'backgroundColor',
|
|
36
|
+
borderColor: 'borderColor',
|
|
37
|
+
borderWidth: 123,
|
|
38
|
+
fontColor: 'fontColor',
|
|
39
|
+
fontFamily: 'fontFamily',
|
|
40
|
+
fontSize: 321,
|
|
41
|
+
size: 567,
|
|
42
|
+
showNumber: false,
|
|
43
|
+
},
|
|
44
|
+
line: {
|
|
45
|
+
color: 'color',
|
|
46
|
+
width: 987,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
expect(defaultOptions(options)).toMatchSnapshot();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('methodCompareOptions', () => {
|
|
54
|
+
it('should not return the method options when no options are provided', () => {
|
|
55
|
+
expect(methodCompareOptions({})).toMatchSnapshot();
|
|
56
|
+
});
|
|
57
|
+
it('should return the provided options when options are provided', () => {
|
|
58
|
+
const options = {
|
|
59
|
+
blockOut: [{ height: 1, width: 2, x: 3, y: 4 }],
|
|
60
|
+
ignoreAlpha: true,
|
|
61
|
+
ignoreAntialiasing: true,
|
|
62
|
+
ignoreColors: true,
|
|
63
|
+
ignoreLess: true,
|
|
64
|
+
ignoreNothing: true,
|
|
65
|
+
rawMisMatchPercentage: true,
|
|
66
|
+
returnAllCompareData: true,
|
|
67
|
+
saveAboveTolerance: 12,
|
|
68
|
+
scaleImagesToSameSize: true,
|
|
69
|
+
};
|
|
70
|
+
expect(methodCompareOptions(options)).toMatchSnapshot();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('screenMethodCompareOptions', () => {
|
|
74
|
+
it('should not return the screen method options when no options are provided', () => {
|
|
75
|
+
expect(screenMethodCompareOptions({})).toMatchSnapshot();
|
|
76
|
+
});
|
|
77
|
+
it('should return the provided options when options are provided', () => {
|
|
78
|
+
const options = {
|
|
79
|
+
blockOutSideBar: false,
|
|
80
|
+
blockOutStatusBar: false,
|
|
81
|
+
blockOutToolBar: false,
|
|
82
|
+
blockOut: [{ height: 1, width: 2, x: 3, y: 4 }],
|
|
83
|
+
ignoreAlpha: true,
|
|
84
|
+
ignoreAntialiasing: true,
|
|
85
|
+
ignoreColors: true,
|
|
86
|
+
ignoreLess: true,
|
|
87
|
+
ignoreNothing: true,
|
|
88
|
+
rawMisMatchPercentage: true,
|
|
89
|
+
returnAllCompareData: true,
|
|
90
|
+
saveAboveTolerance: 12,
|
|
91
|
+
scaleImagesToSameSize: true,
|
|
92
|
+
};
|
|
93
|
+
expect(screenMethodCompareOptions(options)).toMatchSnapshot();
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe('createBeforeScreenshotOptions', () => {
|
|
97
|
+
const mockElement = { tagName: 'DIV' };
|
|
98
|
+
const baseWicOptions = {
|
|
99
|
+
addressBarShadowPadding: 10,
|
|
100
|
+
toolBarShadowPadding: 20,
|
|
101
|
+
};
|
|
102
|
+
it('should create options with defaults when minimal options are provided', () => {
|
|
103
|
+
const result = createBeforeScreenshotOptions('testInstance', {}, baseWicOptions);
|
|
104
|
+
expect(result).toEqual({
|
|
105
|
+
instanceData: 'testInstance',
|
|
106
|
+
addressBarShadowPadding: 10,
|
|
107
|
+
toolBarShadowPadding: 20,
|
|
108
|
+
disableBlinkingCursor: false,
|
|
109
|
+
disableCSSAnimation: false,
|
|
110
|
+
enableLayoutTesting: false,
|
|
111
|
+
hideElements: [],
|
|
112
|
+
noScrollBars: false,
|
|
113
|
+
removeElements: [],
|
|
114
|
+
waitForFontsLoaded: false,
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it('should prioritize methodOptions over wicOptions for overlapping properties', () => {
|
|
118
|
+
const methodOptions = {
|
|
119
|
+
disableBlinkingCursor: true,
|
|
120
|
+
disableCSSAnimation: true,
|
|
121
|
+
hideScrollBars: true,
|
|
122
|
+
};
|
|
123
|
+
const wicOptions = {
|
|
124
|
+
...baseWicOptions,
|
|
125
|
+
disableBlinkingCursor: false,
|
|
126
|
+
disableCSSAnimation: false,
|
|
127
|
+
hideScrollBars: false,
|
|
128
|
+
};
|
|
129
|
+
const result = createBeforeScreenshotOptions('testInstance', methodOptions, wicOptions);
|
|
130
|
+
expect(result.disableBlinkingCursor).toBe(true);
|
|
131
|
+
expect(result.disableCSSAnimation).toBe(true);
|
|
132
|
+
expect(result.noScrollBars).toBe(true);
|
|
133
|
+
});
|
|
134
|
+
it('should use wicOptions when methodOptions are undefined', () => {
|
|
135
|
+
const wicOptions = {
|
|
136
|
+
...baseWicOptions,
|
|
137
|
+
disableBlinkingCursor: true,
|
|
138
|
+
enableLayoutTesting: true,
|
|
139
|
+
waitForFontsLoaded: true,
|
|
140
|
+
};
|
|
141
|
+
const result = createBeforeScreenshotOptions('testInstance', {}, wicOptions);
|
|
142
|
+
expect(result.disableBlinkingCursor).toBe(true);
|
|
143
|
+
expect(result.enableLayoutTesting).toBe(true);
|
|
144
|
+
expect(result.waitForFontsLoaded).toBe(true);
|
|
145
|
+
});
|
|
146
|
+
it('should handle element arrays from methodOptions', () => {
|
|
147
|
+
const hideElements = [mockElement];
|
|
148
|
+
const removeElements = [mockElement, mockElement];
|
|
149
|
+
const methodOptions = {
|
|
150
|
+
hideElements,
|
|
151
|
+
removeElements,
|
|
152
|
+
};
|
|
153
|
+
const result = createBeforeScreenshotOptions('testInstance', methodOptions, baseWicOptions);
|
|
154
|
+
expect(result.hideElements).toBe(hideElements);
|
|
155
|
+
expect(result.removeElements).toBe(removeElements);
|
|
156
|
+
});
|
|
157
|
+
it('should handle all boolean options set to true in methodOptions', () => {
|
|
158
|
+
const methodOptions = {
|
|
159
|
+
disableBlinkingCursor: true,
|
|
160
|
+
disableCSSAnimation: true,
|
|
161
|
+
enableLayoutTesting: true,
|
|
162
|
+
hideScrollBars: true,
|
|
163
|
+
waitForFontsLoaded: true,
|
|
164
|
+
};
|
|
165
|
+
const result = createBeforeScreenshotOptions('testInstance', methodOptions, baseWicOptions);
|
|
166
|
+
expect(result.disableBlinkingCursor).toBe(true);
|
|
167
|
+
expect(result.disableCSSAnimation).toBe(true);
|
|
168
|
+
expect(result.enableLayoutTesting).toBe(true);
|
|
169
|
+
expect(result.noScrollBars).toBe(true);
|
|
170
|
+
expect(result.waitForFontsLoaded).toBe(true);
|
|
171
|
+
});
|
|
172
|
+
it('should preserve instanceData exactly as passed', () => {
|
|
173
|
+
const complexInstanceData = { browser: 'chrome', version: '120', viewport: { width: 1920, height: 1080 } };
|
|
174
|
+
const result = createBeforeScreenshotOptions(complexInstanceData, {}, baseWicOptions);
|
|
175
|
+
expect(result.instanceData).toBe(complexInstanceData);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('buildAfterScreenshotOptions', () => {
|
|
179
|
+
const mockInstanceData = {
|
|
180
|
+
appName: 'testApp',
|
|
181
|
+
browserName: 'chrome',
|
|
182
|
+
browserVersion: '120.0.0',
|
|
183
|
+
deviceName: 'desktop',
|
|
184
|
+
devicePixelRatio: 2,
|
|
185
|
+
deviceRectangles: {
|
|
186
|
+
bottomBar: { height: 0, width: 0, x: 0, y: 0 },
|
|
187
|
+
homeBar: { height: 0, width: 0, x: 0, y: 0 },
|
|
188
|
+
leftSidePadding: { height: 0, width: 0, x: 0, y: 0 },
|
|
189
|
+
rightSidePadding: { height: 0, width: 0, x: 0, y: 0 },
|
|
190
|
+
screenSize: { height: 1080, width: 1920 },
|
|
191
|
+
statusBar: { height: 0, width: 0, x: 0, y: 0 },
|
|
192
|
+
statusBarAndAddressBar: { height: 0, width: 0, x: 0, y: 0 },
|
|
193
|
+
viewport: { height: 900, width: 1200, x: 0, y: 0 }
|
|
194
|
+
},
|
|
195
|
+
initialDevicePixelRatio: 2,
|
|
196
|
+
isAndroid: false,
|
|
197
|
+
isIOS: false,
|
|
198
|
+
isMobile: false,
|
|
199
|
+
logName: 'chrome',
|
|
200
|
+
name: 'chrome',
|
|
201
|
+
nativeWebScreenshot: false,
|
|
202
|
+
platformName: 'desktop',
|
|
203
|
+
platformVersion: '120.0.0'
|
|
204
|
+
};
|
|
205
|
+
const mockEnrichedInstanceData = {
|
|
206
|
+
...mockInstanceData,
|
|
207
|
+
dimensions: {
|
|
208
|
+
body: {
|
|
209
|
+
scrollHeight: 1000,
|
|
210
|
+
offsetHeight: 1000
|
|
211
|
+
},
|
|
212
|
+
html: {
|
|
213
|
+
clientWidth: 1200,
|
|
214
|
+
scrollWidth: 1200,
|
|
215
|
+
clientHeight: 900,
|
|
216
|
+
scrollHeight: 1000,
|
|
217
|
+
offsetHeight: 1000
|
|
218
|
+
},
|
|
219
|
+
window: {
|
|
220
|
+
devicePixelRatio: 3,
|
|
221
|
+
innerHeight: 800,
|
|
222
|
+
innerWidth: 1100,
|
|
223
|
+
isEmulated: false,
|
|
224
|
+
isLandscape: true,
|
|
225
|
+
outerHeight: 1000,
|
|
226
|
+
outerWidth: 1200,
|
|
227
|
+
screenHeight: 1440,
|
|
228
|
+
screenWidth: 2560,
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
isAndroidChromeDriverScreenshot: false,
|
|
232
|
+
isAndroidNativeWebScreenshot: false,
|
|
233
|
+
isTestInBrowser: true,
|
|
234
|
+
isTestInMobileBrowser: false,
|
|
235
|
+
addressBarShadowPadding: 10,
|
|
236
|
+
toolBarShadowPadding: 20
|
|
237
|
+
};
|
|
238
|
+
const baseInput = {
|
|
239
|
+
base64Image: 'test-screenshot-data',
|
|
240
|
+
folders: { actualFolder: '/test/actual' },
|
|
241
|
+
tag: 'test-element',
|
|
242
|
+
isNativeContext: false,
|
|
243
|
+
instanceData: mockInstanceData,
|
|
244
|
+
wicOptions: {
|
|
245
|
+
formatImageName: '{tag}-{browserName}-{width}x{height}',
|
|
246
|
+
savePerInstance: false
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
it('should build options for native commands (no enriched data)', () => {
|
|
250
|
+
const input = {
|
|
251
|
+
...baseInput,
|
|
252
|
+
isNativeContext: true
|
|
253
|
+
};
|
|
254
|
+
const result = buildAfterScreenshotOptions(input);
|
|
255
|
+
expect(result).toMatchSnapshot();
|
|
256
|
+
expect(result.isNativeContext).toBe(true);
|
|
257
|
+
expect(result.isLandscape).toBe(false);
|
|
258
|
+
expect(result.disableBlinkingCursor).toBeUndefined();
|
|
259
|
+
expect(result.hideElements).toBeUndefined();
|
|
260
|
+
});
|
|
261
|
+
it('should build options for web commands with enriched data', () => {
|
|
262
|
+
const beforeOptions = {
|
|
263
|
+
instanceData: mockInstanceData,
|
|
264
|
+
addressBarShadowPadding: 10,
|
|
265
|
+
toolBarShadowPadding: 20,
|
|
266
|
+
disableBlinkingCursor: true,
|
|
267
|
+
disableCSSAnimation: false,
|
|
268
|
+
enableLayoutTesting: true,
|
|
269
|
+
hideElements: [],
|
|
270
|
+
noScrollBars: true,
|
|
271
|
+
removeElements: [],
|
|
272
|
+
waitForFontsLoaded: false
|
|
273
|
+
};
|
|
274
|
+
const input = {
|
|
275
|
+
...baseInput,
|
|
276
|
+
enrichedInstanceData: mockEnrichedInstanceData,
|
|
277
|
+
beforeOptions
|
|
278
|
+
};
|
|
279
|
+
const result = buildAfterScreenshotOptions(input);
|
|
280
|
+
expect(result).toMatchSnapshot();
|
|
281
|
+
expect(result.isNativeContext).toBe(false);
|
|
282
|
+
expect(result.isLandscape).toBe(true);
|
|
283
|
+
expect(result.disableBlinkingCursor).toBe(true);
|
|
284
|
+
expect(result.disableCSSAnimation).toBe(false);
|
|
285
|
+
expect(result.enableLayoutTesting).toBe(true);
|
|
286
|
+
expect(result.hideScrollBars).toBe(true);
|
|
287
|
+
expect(result.hideElements).toEqual([]);
|
|
288
|
+
expect(result.removeElements).toEqual([]);
|
|
289
|
+
});
|
|
290
|
+
it('should prioritize enriched data over instance data', () => {
|
|
291
|
+
const input = {
|
|
292
|
+
...baseInput,
|
|
293
|
+
enrichedInstanceData: mockEnrichedInstanceData
|
|
294
|
+
};
|
|
295
|
+
const result = buildAfterScreenshotOptions(input);
|
|
296
|
+
expect(result.fileName.devicePixelRatio).toBe(3);
|
|
297
|
+
expect(result.fileName.outerHeight).toBe(1000);
|
|
298
|
+
expect(result.fileName.screenHeight).toBe(1440);
|
|
299
|
+
expect(result.isLandscape).toBe(true);
|
|
300
|
+
});
|
|
301
|
+
it('should handle NaN values correctly', () => {
|
|
302
|
+
const enrichedWithNaN = {
|
|
303
|
+
...mockEnrichedInstanceData,
|
|
304
|
+
dimensions: {
|
|
305
|
+
...mockEnrichedInstanceData.dimensions,
|
|
306
|
+
window: {
|
|
307
|
+
...mockEnrichedInstanceData.dimensions.window,
|
|
308
|
+
devicePixelRatio: undefined,
|
|
309
|
+
outerHeight: undefined,
|
|
310
|
+
outerWidth: undefined,
|
|
311
|
+
screenHeight: undefined,
|
|
312
|
+
screenWidth: undefined,
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
const input = {
|
|
317
|
+
...baseInput,
|
|
318
|
+
enrichedInstanceData: enrichedWithNaN
|
|
319
|
+
};
|
|
320
|
+
const result = buildAfterScreenshotOptions(input);
|
|
321
|
+
expect(result.fileName.devicePixelRatio).toBe(2);
|
|
322
|
+
expect(result.fileName.outerHeight).toBeNaN();
|
|
323
|
+
expect(result.fileName.outerWidth).toBeNaN();
|
|
324
|
+
expect(result.fileName.screenHeight).toBe(1080);
|
|
325
|
+
expect(result.fileName.screenWidth).toBe(1920);
|
|
326
|
+
});
|
|
327
|
+
it('should handle missing enriched data gracefully', () => {
|
|
328
|
+
const input = {
|
|
329
|
+
...baseInput,
|
|
330
|
+
enrichedInstanceData: undefined
|
|
331
|
+
};
|
|
332
|
+
const result = buildAfterScreenshotOptions(input);
|
|
333
|
+
expect(result.fileName.devicePixelRatio).toBe(2);
|
|
334
|
+
expect(result.fileName.screenHeight).toBe(1080);
|
|
335
|
+
expect(result.fileName.screenWidth).toBe(1920);
|
|
336
|
+
expect(result.fileName.logName).toBe('chrome');
|
|
337
|
+
expect(result.fileName.name).toBe('chrome');
|
|
338
|
+
expect(result.isLandscape).toBe(false);
|
|
339
|
+
});
|
|
340
|
+
it('should handle element arrays from beforeOptions', () => {
|
|
341
|
+
const mockElement = { tagName: 'DIV' };
|
|
342
|
+
const beforeOptions = {
|
|
343
|
+
instanceData: mockInstanceData,
|
|
344
|
+
addressBarShadowPadding: 10,
|
|
345
|
+
toolBarShadowPadding: 20,
|
|
346
|
+
disableBlinkingCursor: false,
|
|
347
|
+
disableCSSAnimation: false,
|
|
348
|
+
enableLayoutTesting: false,
|
|
349
|
+
hideElements: [mockElement],
|
|
350
|
+
noScrollBars: false,
|
|
351
|
+
removeElements: [mockElement, mockElement],
|
|
352
|
+
waitForFontsLoaded: false
|
|
353
|
+
};
|
|
354
|
+
const input = {
|
|
355
|
+
...baseInput,
|
|
356
|
+
beforeOptions
|
|
357
|
+
};
|
|
358
|
+
const result = buildAfterScreenshotOptions(input);
|
|
359
|
+
expect(result.hideElements).toEqual([mockElement]);
|
|
360
|
+
expect(result.removeElements).toEqual([mockElement, mockElement]);
|
|
361
|
+
});
|
|
362
|
+
it('should build correct filePath structure', () => {
|
|
363
|
+
const input = {
|
|
364
|
+
...baseInput,
|
|
365
|
+
wicOptions: {
|
|
366
|
+
formatImageName: '{tag}-{logName}',
|
|
367
|
+
savePerInstance: true
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
const result = buildAfterScreenshotOptions(input);
|
|
371
|
+
expect(result.filePath).toEqual({
|
|
372
|
+
browserName: 'chrome',
|
|
373
|
+
deviceName: 'desktop',
|
|
374
|
+
isMobile: false,
|
|
375
|
+
savePerInstance: true
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
it('should build correct fileName structure with all properties', () => {
|
|
379
|
+
const input = {
|
|
380
|
+
...baseInput,
|
|
381
|
+
enrichedInstanceData: mockEnrichedInstanceData
|
|
382
|
+
};
|
|
383
|
+
const result = buildAfterScreenshotOptions(input);
|
|
384
|
+
expect(result.fileName).toEqual({
|
|
385
|
+
browserName: 'chrome',
|
|
386
|
+
browserVersion: '120.0.0',
|
|
387
|
+
deviceName: 'desktop',
|
|
388
|
+
devicePixelRatio: 3,
|
|
389
|
+
formatImageName: '{tag}-{browserName}-{width}x{height}',
|
|
390
|
+
isMobile: false,
|
|
391
|
+
isTestInBrowser: true,
|
|
392
|
+
logName: 'chrome',
|
|
393
|
+
name: 'chrome',
|
|
394
|
+
outerHeight: 1000,
|
|
395
|
+
outerWidth: 1200,
|
|
396
|
+
platformName: 'desktop',
|
|
397
|
+
platformVersion: '120.0.0',
|
|
398
|
+
screenHeight: 1440,
|
|
399
|
+
screenWidth: 2560,
|
|
400
|
+
tag: 'test-element'
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
it('should handle mobile device correctly', () => {
|
|
404
|
+
const mobileInstanceData = {
|
|
405
|
+
...mockInstanceData,
|
|
406
|
+
isMobile: true,
|
|
407
|
+
deviceName: 'iPhone',
|
|
408
|
+
platformName: 'iOS'
|
|
409
|
+
};
|
|
410
|
+
const mobileEnrichedData = {
|
|
411
|
+
...mockEnrichedInstanceData,
|
|
412
|
+
isMobile: true,
|
|
413
|
+
deviceName: 'iPhone',
|
|
414
|
+
platformName: 'iOS'
|
|
415
|
+
};
|
|
416
|
+
const input = {
|
|
417
|
+
...baseInput,
|
|
418
|
+
instanceData: mobileInstanceData,
|
|
419
|
+
enrichedInstanceData: mobileEnrichedData
|
|
420
|
+
};
|
|
421
|
+
const result = buildAfterScreenshotOptions(input);
|
|
422
|
+
expect(result.filePath.isMobile).toBe(true);
|
|
423
|
+
expect(result.fileName.isMobile).toBe(true);
|
|
424
|
+
expect(result.fileName.deviceName).toBe('iPhone');
|
|
425
|
+
expect(result.platformName).toBe('iOS');
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
});
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { BaseExecuteCompareOptions, BuildBaseExecuteCompareOptionsOptions, BuildFolderOptionsOptions, CommonCheckVariables, ComparisonFilePaths, ExecuteNativeClickOptions, ExtractCommonCheckVariablesOptions, FolderOptions, FormatFileNameOptions, GetAddressBarShadowPaddingOptions, GetAndCreatePathOptions, GetIosBezelImageNames, GetMobileScreenSizeOptions, GetMobileViewPortPositionOptions, GetToolBarShadowPaddingOptions, LoadBase64HtmlOptions, PrepareComparisonFilePathsOptions, ScreenshotSize } from './utils.interfaces.js';
|
|
2
|
+
import type { ClassOptions, CompareOptions } from './options.interfaces.js';
|
|
3
|
+
import type { DeviceRectangles } from '../methods/rectangles.interfaces.js';
|
|
4
|
+
import type { BaseDimensions } from '../base.interfaces.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get and create a folder
|
|
7
|
+
*/
|
|
8
|
+
export declare function getAndCreatePath(folder: string, options: GetAndCreatePathOptions): string;
|
|
9
|
+
/**
|
|
10
|
+
* Format the filename
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatFileName(options: FormatFileNameOptions): string;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the test is executed in a browser
|
|
15
|
+
* checking for app is not sufficient because different vendors have different
|
|
16
|
+
* custom names and or solutions for the app
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkTestInBrowser(browserName: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Checks if the test is executed in a browser on a mobile phone
|
|
21
|
+
*/
|
|
22
|
+
export declare function checkTestInMobileBrowser(isMobile: boolean, browserName: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if this is a native webscreenshot on android
|
|
25
|
+
*/
|
|
26
|
+
export declare function checkAndroidNativeWebScreenshot(isAndroid: boolean, nativeWebscreenshot: boolean): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Checks if this is an Android chromedriver screenshot
|
|
29
|
+
*/
|
|
30
|
+
export declare function checkAndroidChromeDriverScreenshot(isAndroid: boolean, nativeWebScreenshot: boolean): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get the address bar shadow padding. This is only needed for Android native webscreenshot and iOS
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAddressBarShadowPadding(options: GetAddressBarShadowPaddingOptions): number;
|
|
35
|
+
/**
|
|
36
|
+
* Get the tool bar shadow padding. Add some extra padding for iOS when we have a home bar
|
|
37
|
+
*/
|
|
38
|
+
export declare function getToolBarShadowPadding(options: GetToolBarShadowPaddingOptions): number;
|
|
39
|
+
/**
|
|
40
|
+
* Calculate the data based on the device pixel ratio
|
|
41
|
+
*/
|
|
42
|
+
export declare function calculateDprData<T>(data: T, devicePixelRatio: number): T;
|
|
43
|
+
/**
|
|
44
|
+
* Wait for an amount of milliseconds
|
|
45
|
+
*/
|
|
46
|
+
export declare function waitFor(milliseconds: number): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Get the size of a screenshot in pixels without the device pixel ratio
|
|
49
|
+
*/
|
|
50
|
+
export declare function getBase64ScreenshotSize(screenshot: string, devicePixelRation?: number): ScreenshotSize;
|
|
51
|
+
/**
|
|
52
|
+
* Get the device pixel ratio
|
|
53
|
+
*/
|
|
54
|
+
export declare function getDevicePixelRatio(screenshot: string, deviceScreenSize: BaseDimensions): number;
|
|
55
|
+
/**
|
|
56
|
+
* Get the iOS bezel image names
|
|
57
|
+
*/
|
|
58
|
+
export declare function getIosBezelImageNames(normalizedDeviceName: string): GetIosBezelImageNames;
|
|
59
|
+
/**
|
|
60
|
+
* Validate that the item is an object
|
|
61
|
+
*/
|
|
62
|
+
export declare function isObject(item: unknown): item is object | Function;
|
|
63
|
+
/**
|
|
64
|
+
* Validate if it's storybook
|
|
65
|
+
*/
|
|
66
|
+
export declare function isStorybook(): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Check if we want to update baseline images
|
|
69
|
+
*/
|
|
70
|
+
export declare function updateVisualBaseline(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Log the deprecated root compareOptions (at `ClassOptions` level)
|
|
73
|
+
* and returns non-undefined ones to be added back to the config
|
|
74
|
+
*/
|
|
75
|
+
export declare function logAllDeprecatedCompareOptions(options: ClassOptions): Partial<CompareOptions>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the mobile screen size, this is different for native and webview
|
|
78
|
+
*/
|
|
79
|
+
export declare function getMobileScreenSize({ browserInstance, isIOS, isNativeContext, }: GetMobileScreenSizeOptions): Promise<BaseDimensions>;
|
|
80
|
+
/**
|
|
81
|
+
* Load a base64 HTML page in the browser
|
|
82
|
+
*/
|
|
83
|
+
export declare function loadBase64Html({ browserInstance, isIOS }: LoadBase64HtmlOptions): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Execute a native click
|
|
86
|
+
*/
|
|
87
|
+
export declare function executeNativeClick({ browserInstance, isIOS, x, y }: ExecuteNativeClickOptions): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Get the mobile viewport position, we determine this by:
|
|
90
|
+
* 1. Loading a base64 HTML page
|
|
91
|
+
* 2. Injecting an overlay on top of the webview with an event listener that stores the click position in the webview
|
|
92
|
+
* 3. Clicking on the overlay in the center of the screen with a native click
|
|
93
|
+
* 4. Getting the data from the overlay and removing it
|
|
94
|
+
* 5. Calculating the position of the viewport based on the click position of the native click vs the overlay
|
|
95
|
+
* 6. Returning the calculated values
|
|
96
|
+
*/
|
|
97
|
+
export declare function getMobileViewPortPosition({ browserInstance, initialDeviceRectangles, isAndroid, isIOS, isNativeContext, nativeWebScreenshot, screenHeight, screenWidth, }: GetMobileViewPortPositionOptions): Promise<DeviceRectangles>;
|
|
98
|
+
/**
|
|
99
|
+
* Get the value of a method or the default value
|
|
100
|
+
*/
|
|
101
|
+
export declare function getMethodOrWicOption<T, K extends keyof T>(method: Partial<T> | undefined, wic: T, key: K): T[K];
|
|
102
|
+
/**
|
|
103
|
+
* Determine if the Bidi screenshot can be used
|
|
104
|
+
*/
|
|
105
|
+
export declare function canUseBidiScreenshot(browserInstance: WebdriverIO.Browser): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Helper function to safely check boolean properties with proper defaults
|
|
108
|
+
*/
|
|
109
|
+
export declare function getBooleanOption(options: ClassOptions, key: keyof ClassOptions, defaultValue: boolean): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Helper function to create conditional property objects for cleaner spread operations
|
|
112
|
+
*/
|
|
113
|
+
export declare function createConditionalProperty<T>(condition: boolean, key: string, value: T): Record<string, T> | {};
|
|
114
|
+
/**
|
|
115
|
+
* Check if resizeDimensions has any non-zero values (indicating it's been changed from default)
|
|
116
|
+
*/
|
|
117
|
+
export declare function hasResizeDimensions(resizeDimensions: any): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Extracts common variables used across all check methods to reduce duplication
|
|
120
|
+
*/
|
|
121
|
+
export declare function extractCommonCheckVariables(options: ExtractCommonCheckVariablesOptions): CommonCheckVariables;
|
|
122
|
+
/**
|
|
123
|
+
* Builds folder options object used across all check methods to reduce duplication
|
|
124
|
+
*/
|
|
125
|
+
export declare function buildFolderOptions(options: BuildFolderOptionsOptions): FolderOptions;
|
|
126
|
+
/**
|
|
127
|
+
* Builds base execute compare options object used across all check methods to reduce duplication
|
|
128
|
+
*/
|
|
129
|
+
export declare function buildBaseExecuteCompareOptions(options: BuildBaseExecuteCompareOptionsOptions): BaseExecuteCompareOptions;
|
|
130
|
+
/**
|
|
131
|
+
* Prepare all file paths needed for image comparison
|
|
132
|
+
*/
|
|
133
|
+
export declare function prepareComparisonFilePaths(options: PrepareComparisonFilePathsOptions): ComparisonFilePaths;
|
|
134
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
|