@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
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import BaseClass from './base.js';
|
|
2
|
+
import saveScreen from './commands/saveScreen.js';
|
|
3
|
+
import saveElement from './commands/saveElement.js';
|
|
4
|
+
import saveFullPageScreen from './commands/saveFullPageScreen.js';
|
|
5
|
+
import saveTabbablePage from './commands/saveTabbablePage.js';
|
|
6
|
+
import checkScreen from './commands/checkScreen.js';
|
|
7
|
+
import checkElement from './commands/checkElement.js';
|
|
8
|
+
import checkFullPageScreen from './commands/checkFullPageScreen.js';
|
|
9
|
+
import checkTabbablePage from './commands/checkTabbablePage.js';
|
|
10
|
+
import { ClassOptions } from './helpers/options.interfaces.js';
|
|
11
|
+
import { ImageCompareResult } from './methods/images.interfaces.js';
|
|
12
|
+
import { DEFAULT_TEST_CONTEXT, DEVICE_RECTANGLES, IOS_OFFSETS, FOLDERS, NOT_KNOWN } from './helpers/constants.js';
|
|
13
|
+
import { getMobileScreenSize, getMobileViewPortPosition } from './helpers/utils.js';
|
|
14
|
+
import { InternalCheckElementMethodOptions, InternalCheckFullPageMethodOptions, InternalCheckScreenMethodOptions, InternalCheckTabbablePageMethodOptions } from './commands/check.interfaces.js';
|
|
15
|
+
import { InternalSaveElementMethodOptions, InternalSaveFullPageMethodOptions, InternalSaveScreenMethodOptions, InternalSaveTabbablePageMethodOptions } from './commands/save.interfaces.js';
|
|
16
|
+
export type { ScreenshotOutput } from './helpers/afterScreenshot.interfaces.js';
|
|
17
|
+
export type { CheckScreenMethodOptions, SaveScreenMethodOptions, } from './commands/screen.interfaces.js';
|
|
18
|
+
export type { WicElement, CheckElementMethodOptions, SaveElementMethodOptions, } from './commands/element.interfaces.js';
|
|
19
|
+
export type { CheckFullPageMethodOptions, SaveFullPageMethodOptions, } from './commands/fullPage.interfaces.js';
|
|
20
|
+
export type { TestContext } from './methods/compareReport.interfaces.js';
|
|
21
|
+
export type { Folders } from './base.interfaces.js';
|
|
22
|
+
export type { InstanceData } from './methods/instanceData.interfaces.js';
|
|
23
|
+
export type { DeviceRectangles } from './methods/rectangles.interfaces.js';
|
|
24
|
+
export type { ResultReport } from './methods/compareReport.interfaces.js';
|
|
25
|
+
export { DEFAULT_TEST_CONTEXT, DEVICE_RECTANGLES, IOS_OFFSETS, FOLDERS, NOT_KNOWN, BaseClass, saveScreen, saveElement, saveFullPageScreen, saveTabbablePage, checkScreen, checkElement, checkFullPageScreen, checkTabbablePage, getMobileScreenSize, getMobileViewPortPosition, InternalSaveScreenMethodOptions, InternalSaveElementMethodOptions, InternalSaveFullPageMethodOptions, InternalSaveTabbablePageMethodOptions, InternalCheckScreenMethodOptions, InternalCheckElementMethodOptions, InternalCheckFullPageMethodOptions, InternalCheckTabbablePageMethodOptions, ImageCompareResult, ClassOptions, };
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AACjE,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAA;AACrD,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AACnE,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACjH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,iCAAiC,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAA;AAChM,OAAO,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,MAAM,+BAA+B,CAAA;AAE3L,YAAY,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,YAAY,EACR,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EACR,UAAU,EACV,yBAAyB,EACzB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACR,0BAA0B,EAC1B,yBAAyB,GAC5B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAEH,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,SAAS,EAET,SAAS,EAET,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EAEzB,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,kCAAkC,EAClC,sCAAsC,EACtC,kBAAkB,EAClB,YAAY,GACf,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import BaseClass from './base.js';
|
|
2
|
+
import saveScreen from './commands/saveScreen.js';
|
|
3
|
+
import saveElement from './commands/saveElement.js';
|
|
4
|
+
import saveFullPageScreen from './commands/saveFullPageScreen.js';
|
|
5
|
+
import saveTabbablePage from './commands/saveTabbablePage.js';
|
|
6
|
+
import checkScreen from './commands/checkScreen.js';
|
|
7
|
+
import checkElement from './commands/checkElement.js';
|
|
8
|
+
import checkFullPageScreen from './commands/checkFullPageScreen.js';
|
|
9
|
+
import checkTabbablePage from './commands/checkTabbablePage.js';
|
|
10
|
+
import { DEFAULT_TEST_CONTEXT, DEVICE_RECTANGLES, IOS_OFFSETS, FOLDERS, NOT_KNOWN } from './helpers/constants.js';
|
|
11
|
+
import { getMobileScreenSize, getMobileViewPortPosition } from './helpers/utils.js';
|
|
12
|
+
export {
|
|
13
|
+
// Constants
|
|
14
|
+
DEFAULT_TEST_CONTEXT, DEVICE_RECTANGLES, IOS_OFFSETS, FOLDERS, NOT_KNOWN,
|
|
15
|
+
// Base class
|
|
16
|
+
BaseClass,
|
|
17
|
+
// Commands
|
|
18
|
+
saveScreen, saveElement, saveFullPageScreen, saveTabbablePage, checkScreen, checkElement, checkFullPageScreen, checkTabbablePage, getMobileScreenSize, getMobileViewPortPosition, };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { CompareData } from 'src/resemble/compare.interfaces.js';
|
|
2
|
+
import type { WicImageCompareOptions } from './images.interfaces.js';
|
|
3
|
+
import type { BoundingBoxes, ReportFileSizes } from './rectangles.interfaces.js';
|
|
4
|
+
import type { FilePaths, FolderPaths } from 'src/base.interfaces.js';
|
|
5
|
+
export type TestContext = {
|
|
6
|
+
/** The name of the command being executed */
|
|
7
|
+
commandName: string;
|
|
8
|
+
/** The testing framework being used */
|
|
9
|
+
framework: string;
|
|
10
|
+
/** The parent test suite or describe block */
|
|
11
|
+
parent: string;
|
|
12
|
+
/** The tag associated with the test */
|
|
13
|
+
tag: string;
|
|
14
|
+
/** The title of the test */
|
|
15
|
+
title: string;
|
|
16
|
+
instanceData: {
|
|
17
|
+
browser: {
|
|
18
|
+
/** The name of the browser */
|
|
19
|
+
name: string;
|
|
20
|
+
/** The version of the browser */
|
|
21
|
+
version: string;
|
|
22
|
+
};
|
|
23
|
+
/** The name of the device */
|
|
24
|
+
deviceName: string;
|
|
25
|
+
platform: {
|
|
26
|
+
/** The name of the platform */
|
|
27
|
+
name: string;
|
|
28
|
+
/** The version of the platform */
|
|
29
|
+
version: string;
|
|
30
|
+
};
|
|
31
|
+
/** The application identifier */
|
|
32
|
+
app: string;
|
|
33
|
+
/** Whether the device is mobile */
|
|
34
|
+
isMobile: boolean;
|
|
35
|
+
/** Whether the device is Android */
|
|
36
|
+
isAndroid: boolean;
|
|
37
|
+
/** Whether the device is iOS */
|
|
38
|
+
isIOS: boolean;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export type BaseCreateCompareReportOptions = {
|
|
42
|
+
/** Bounding boxes for diff and ignored areas */
|
|
43
|
+
boundingBoxes: BoundingBoxes;
|
|
44
|
+
/** Comparison data from the image comparison process */
|
|
45
|
+
data: CompareData;
|
|
46
|
+
/** Name of the file being compared */
|
|
47
|
+
fileName: string;
|
|
48
|
+
/** Test execution context and metadata */
|
|
49
|
+
testContext: TestContext;
|
|
50
|
+
};
|
|
51
|
+
export type CreateCompareReportOptions = BaseCreateCompareReportOptions & {
|
|
52
|
+
/** Folder paths for actual, baseline, and diff images */
|
|
53
|
+
folders: FolderPaths;
|
|
54
|
+
/** Size information for actual, baseline, and diff images */
|
|
55
|
+
size: ReportFileSizes;
|
|
56
|
+
};
|
|
57
|
+
export type CreateJsonReportIfNeededOptions = BaseCreateCompareReportOptions & {
|
|
58
|
+
/** Complete file paths for all comparison images */
|
|
59
|
+
filePaths: FolderPaths & FilePaths;
|
|
60
|
+
/** Device pixel ratio for the comparison */
|
|
61
|
+
devicePixelRatio: number;
|
|
62
|
+
/** Image comparison configuration options */
|
|
63
|
+
imageCompareOptions: WicImageCompareOptions;
|
|
64
|
+
/** Whether to store diff images */
|
|
65
|
+
storeDiffs: boolean;
|
|
66
|
+
};
|
|
67
|
+
export type ResultReport = {
|
|
68
|
+
/** Test description or suite name */
|
|
69
|
+
description: string;
|
|
70
|
+
/** Test title or name */
|
|
71
|
+
test: string;
|
|
72
|
+
/** Test tag identifier */
|
|
73
|
+
tag: string;
|
|
74
|
+
/** Test instance information (browser, device, platform) */
|
|
75
|
+
instanceData: {
|
|
76
|
+
/** Application identifier */
|
|
77
|
+
app?: string;
|
|
78
|
+
/** Browser name and version */
|
|
79
|
+
browser?: {
|
|
80
|
+
name: string;
|
|
81
|
+
version: string;
|
|
82
|
+
};
|
|
83
|
+
/** Device name */
|
|
84
|
+
deviceName?: string;
|
|
85
|
+
/** Platform name and version */
|
|
86
|
+
platform: {
|
|
87
|
+
name: string;
|
|
88
|
+
version: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
/** Command that was executed */
|
|
92
|
+
commandName: string;
|
|
93
|
+
/** Testing framework being used */
|
|
94
|
+
framework: string;
|
|
95
|
+
/** Bounding boxes for diff and ignored areas */
|
|
96
|
+
boundingBoxes: BoundingBoxes;
|
|
97
|
+
/** File data including paths and sizes */
|
|
98
|
+
fileData: FilePaths & {
|
|
99
|
+
/** Name of the file */
|
|
100
|
+
fileName: string;
|
|
101
|
+
/** Size information for images */
|
|
102
|
+
size: ReportFileSizes;
|
|
103
|
+
};
|
|
104
|
+
/** Mismatch percentage as formatted string */
|
|
105
|
+
misMatchPercentage: string;
|
|
106
|
+
/** Raw mismatch percentage as number */
|
|
107
|
+
rawMisMatchPercentage: number;
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=compareReport.interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareReport.interfaces.d.ts","sourceRoot":"","sources":["../../src/methods/compareReport.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CreateCompareReportOptions, CreateJsonReportIfNeededOptions } from './compareReport.interfaces.js';
|
|
2
|
+
export declare function createCompareReport({ boundingBoxes, data, fileName, folders, size, testContext: { commandName, instanceData: { app, browser, deviceName, isIOS, isMobile, platform, }, framework, parent, tag, title }, }: CreateCompareReportOptions): void;
|
|
3
|
+
/**
|
|
4
|
+
* Create JSON report if requested
|
|
5
|
+
*/
|
|
6
|
+
export declare function createJsonReportIfNeeded({ boundingBoxes, data, fileName, filePaths, devicePixelRatio, imageCompareOptions, testContext, storeDiffs, }: CreateJsonReportIfNeededOptions): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=createCompareReport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCompareReport.d.ts","sourceRoot":"","sources":["../../src/methods/createCompareReport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,+BAA+B,EAAgB,MAAM,+BAA+B,CAAA;AAG9H,wBAAgB,mBAAmB,CAAC,EAChC,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EAAE,EACT,WAAW,EACX,YAAY,EAAE,EACV,GAAG,EACH,OAAO,EACP,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,GACX,EACD,SAAS,EACT,MAAM,EACN,GAAG,EACH,KAAK,EACR,GACJ,EAAE,0BAA0B,QAmC5B;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,EAC3C,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACb,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { resolve as pathResolve } from 'node:path';
|
|
2
|
+
import { writeFileSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { getBase64ScreenshotSize } from '../helpers/utils.js';
|
|
4
|
+
export function createCompareReport({ boundingBoxes, data, fileName, folders, size, testContext: { commandName, instanceData: { app, browser, deviceName, isIOS, isMobile, platform, }, framework, parent, tag, title }, }) {
|
|
5
|
+
const { misMatchPercentage, rawMisMatchPercentage } = data;
|
|
6
|
+
const jsonFileName = fileName.split('.').slice(0, -1).join('.');
|
|
7
|
+
const jsonFilePath = pathResolve(folders.actualFolderPath, `${jsonFileName}-report.json`);
|
|
8
|
+
const browserContext = {
|
|
9
|
+
browser,
|
|
10
|
+
platform,
|
|
11
|
+
};
|
|
12
|
+
const mobileContext = {
|
|
13
|
+
...(app !== 'not-known'
|
|
14
|
+
? { app }
|
|
15
|
+
: { browser: { name: browser.name, version: isIOS ? platform.version : browser.version } }),
|
|
16
|
+
deviceName,
|
|
17
|
+
platform,
|
|
18
|
+
};
|
|
19
|
+
const jsonData = {
|
|
20
|
+
description: parent,
|
|
21
|
+
test: title,
|
|
22
|
+
tag,
|
|
23
|
+
instanceData: isMobile ? mobileContext : browserContext,
|
|
24
|
+
commandName,
|
|
25
|
+
framework,
|
|
26
|
+
boundingBoxes,
|
|
27
|
+
fileData: {
|
|
28
|
+
actualFilePath: pathResolve(folders.actualFolderPath, fileName),
|
|
29
|
+
baselineFilePath: pathResolve(folders.baselineFolderPath, fileName),
|
|
30
|
+
diffFilePath: pathResolve(folders.diffFolderPath, fileName),
|
|
31
|
+
fileName,
|
|
32
|
+
size,
|
|
33
|
+
},
|
|
34
|
+
misMatchPercentage: misMatchPercentage.toString(),
|
|
35
|
+
rawMisMatchPercentage,
|
|
36
|
+
};
|
|
37
|
+
writeFileSync(jsonFilePath, JSON.stringify(jsonData), 'utf8');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create JSON report if requested
|
|
41
|
+
*/
|
|
42
|
+
export async function createJsonReportIfNeeded({ boundingBoxes, data, fileName, filePaths, devicePixelRatio, imageCompareOptions, testContext, storeDiffs, }) {
|
|
43
|
+
if (imageCompareOptions.createJsonReportFiles) {
|
|
44
|
+
createCompareReport({
|
|
45
|
+
boundingBoxes,
|
|
46
|
+
data,
|
|
47
|
+
fileName,
|
|
48
|
+
folders: {
|
|
49
|
+
actualFolderPath: filePaths.actualFolderPath,
|
|
50
|
+
baselineFolderPath: filePaths.baselineFolderPath,
|
|
51
|
+
diffFolderPath: filePaths.diffFolderPath,
|
|
52
|
+
},
|
|
53
|
+
size: {
|
|
54
|
+
actual: getBase64ScreenshotSize(readFileSync(filePaths.actualFilePath).toString('base64'), devicePixelRatio),
|
|
55
|
+
baseline: getBase64ScreenshotSize(readFileSync(filePaths.baselineFilePath).toString('base64'), devicePixelRatio),
|
|
56
|
+
...(storeDiffs && filePaths.diffFilePath && { diff: getBase64ScreenshotSize(readFileSync(filePaths.diffFilePath).toString('base64'), devicePixelRatio) }),
|
|
57
|
+
},
|
|
58
|
+
testContext,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCompareReport.test.d.ts","sourceRoot":"","sources":["../../src/methods/createCompareReport.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
+
import { writeFileSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { createCompareReport, createJsonReportIfNeeded } from './createCompareReport.js';
|
|
4
|
+
import { getBase64ScreenshotSize } from '../helpers/utils.js';
|
|
5
|
+
vi.mock('node:fs', () => ({
|
|
6
|
+
writeFileSync: vi.fn(),
|
|
7
|
+
readFileSync: vi.fn(),
|
|
8
|
+
}));
|
|
9
|
+
vi.mock('../helpers/utils.js', () => ({
|
|
10
|
+
getBase64ScreenshotSize: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
describe('createCompareReport', () => {
|
|
13
|
+
const createMockData = (misMatchPercentage = 0) => ({
|
|
14
|
+
misMatchPercentage,
|
|
15
|
+
rawMisMatchPercentage: misMatchPercentage,
|
|
16
|
+
getBuffer: () => Buffer.from(''),
|
|
17
|
+
diffBounds: { top: 0, left: 0, bottom: 0, right: 0 },
|
|
18
|
+
analysisTime: 0,
|
|
19
|
+
diffPixels: [],
|
|
20
|
+
});
|
|
21
|
+
const createMockFolders = () => ({
|
|
22
|
+
actualFolderPath: '/actual',
|
|
23
|
+
baselineFolderPath: '/baseline',
|
|
24
|
+
diffFolderPath: '/diff',
|
|
25
|
+
});
|
|
26
|
+
const createMockSize = () => ({
|
|
27
|
+
actual: { width: 100, height: 100 },
|
|
28
|
+
baseline: { width: 100, height: 100 },
|
|
29
|
+
diff: { width: 100, height: 100 },
|
|
30
|
+
});
|
|
31
|
+
const createMockBoundingBoxes = () => ({
|
|
32
|
+
diffBoundingBoxes: [],
|
|
33
|
+
ignoredBoxes: [],
|
|
34
|
+
});
|
|
35
|
+
const createTestContext = (options = {}) => ({
|
|
36
|
+
commandName: 'test-command',
|
|
37
|
+
instanceData: {
|
|
38
|
+
app: options.app ?? 'not-known',
|
|
39
|
+
browser: options.browser ?? { name: 'chrome', version: '100' },
|
|
40
|
+
deviceName: options.deviceName ?? 'desktop',
|
|
41
|
+
isIOS: options.isIOS ?? false,
|
|
42
|
+
isAndroid: options.isAndroid ?? false,
|
|
43
|
+
isMobile: options.isMobile ?? false,
|
|
44
|
+
platform: options.platform ?? { name: 'windows', version: '10' },
|
|
45
|
+
},
|
|
46
|
+
framework: 'wdio',
|
|
47
|
+
parent: 'test parent',
|
|
48
|
+
tag: 'test-tag',
|
|
49
|
+
title: 'test title',
|
|
50
|
+
});
|
|
51
|
+
beforeEach(() => {
|
|
52
|
+
vi.clearAllMocks();
|
|
53
|
+
});
|
|
54
|
+
it('should create a report for desktop browser', () => {
|
|
55
|
+
createCompareReport({
|
|
56
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
57
|
+
data: createMockData(),
|
|
58
|
+
fileName: 'test.png',
|
|
59
|
+
folders: createMockFolders(),
|
|
60
|
+
size: createMockSize(),
|
|
61
|
+
testContext: createTestContext(),
|
|
62
|
+
});
|
|
63
|
+
const writtenData = JSON.parse(writeFileSync.mock.calls[0][1]);
|
|
64
|
+
expect(writtenData).toMatchSnapshot();
|
|
65
|
+
});
|
|
66
|
+
it('should create a report for mobile browser', () => {
|
|
67
|
+
createCompareReport({
|
|
68
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
69
|
+
data: createMockData(),
|
|
70
|
+
fileName: 'test.png',
|
|
71
|
+
folders: createMockFolders(),
|
|
72
|
+
size: createMockSize(),
|
|
73
|
+
testContext: createTestContext({
|
|
74
|
+
browser: { name: 'safari', version: '15' },
|
|
75
|
+
deviceName: 'iPhone 12',
|
|
76
|
+
isIOS: true,
|
|
77
|
+
isMobile: true,
|
|
78
|
+
platform: { name: 'ios', version: '15' },
|
|
79
|
+
}),
|
|
80
|
+
});
|
|
81
|
+
const writtenData = JSON.parse(writeFileSync.mock.calls[0][1]);
|
|
82
|
+
expect(writtenData).toMatchSnapshot();
|
|
83
|
+
});
|
|
84
|
+
it('should create a report for mobile app', () => {
|
|
85
|
+
createCompareReport({
|
|
86
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
87
|
+
data: createMockData(),
|
|
88
|
+
fileName: 'test.png',
|
|
89
|
+
folders: createMockFolders(),
|
|
90
|
+
size: createMockSize(),
|
|
91
|
+
testContext: createTestContext({
|
|
92
|
+
app: 'my-app',
|
|
93
|
+
deviceName: 'Pixel 6',
|
|
94
|
+
isAndroid: true,
|
|
95
|
+
isMobile: true,
|
|
96
|
+
platform: { name: 'android', version: '12' },
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
const writtenData = JSON.parse(writeFileSync.mock.calls[0][1]);
|
|
100
|
+
expect(writtenData).toMatchSnapshot();
|
|
101
|
+
});
|
|
102
|
+
it('should include misMatchPercentage in the report', () => {
|
|
103
|
+
createCompareReport({
|
|
104
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
105
|
+
data: createMockData(5.5),
|
|
106
|
+
fileName: 'test.png',
|
|
107
|
+
folders: createMockFolders(),
|
|
108
|
+
size: createMockSize(),
|
|
109
|
+
testContext: createTestContext(),
|
|
110
|
+
});
|
|
111
|
+
const writtenData = JSON.parse(writeFileSync.mock.calls[0][1]);
|
|
112
|
+
expect(writtenData).toMatchSnapshot();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('createJsonReportIfNeeded', () => {
|
|
116
|
+
const createMockData = (misMatchPercentage = 0) => ({
|
|
117
|
+
misMatchPercentage,
|
|
118
|
+
rawMisMatchPercentage: misMatchPercentage,
|
|
119
|
+
getBuffer: () => Buffer.from(''),
|
|
120
|
+
diffBounds: { top: 0, left: 0, bottom: 0, right: 0 },
|
|
121
|
+
analysisTime: 0,
|
|
122
|
+
diffPixels: [],
|
|
123
|
+
});
|
|
124
|
+
const createMockBoundingBoxes = () => ({
|
|
125
|
+
diffBoundingBoxes: [],
|
|
126
|
+
ignoredBoxes: [],
|
|
127
|
+
});
|
|
128
|
+
const createTestContext = (options = {}) => ({
|
|
129
|
+
commandName: 'test-command',
|
|
130
|
+
instanceData: {
|
|
131
|
+
app: options.app ?? 'not-known',
|
|
132
|
+
browser: options.browser ?? { name: 'chrome', version: '100' },
|
|
133
|
+
deviceName: options.deviceName ?? 'desktop',
|
|
134
|
+
isIOS: options.isIOS ?? false,
|
|
135
|
+
isAndroid: options.isAndroid ?? false,
|
|
136
|
+
isMobile: options.isMobile ?? false,
|
|
137
|
+
platform: options.platform ?? { name: 'windows', version: '10' },
|
|
138
|
+
},
|
|
139
|
+
framework: 'wdio',
|
|
140
|
+
parent: 'test parent',
|
|
141
|
+
tag: 'test-tag',
|
|
142
|
+
title: 'test title',
|
|
143
|
+
});
|
|
144
|
+
const createMockFilePaths = () => ({
|
|
145
|
+
actualFolderPath: '/actual',
|
|
146
|
+
baselineFolderPath: '/baseline',
|
|
147
|
+
diffFolderPath: '/diff',
|
|
148
|
+
actualFilePath: '/actual/test.png',
|
|
149
|
+
baselineFilePath: '/baseline/test.png',
|
|
150
|
+
diffFilePath: '/diff/test.png',
|
|
151
|
+
});
|
|
152
|
+
const createMockImageCompareOptions = (createJsonReportFiles = false) => ({
|
|
153
|
+
createJsonReportFiles,
|
|
154
|
+
returnEarlyOnMismatch: false,
|
|
155
|
+
scaleToSameSize: false,
|
|
156
|
+
globalCompareOptions: {},
|
|
157
|
+
localCompareOptions: {},
|
|
158
|
+
diffPixelBoundingBoxProximity: 0,
|
|
159
|
+
output: {
|
|
160
|
+
actualScreenshotRelatedPath: '',
|
|
161
|
+
baselineScreenshotRelatedPath: '',
|
|
162
|
+
diffScreenshotRelatedPath: '',
|
|
163
|
+
screenshotFolderOptions: {
|
|
164
|
+
baselineImagesFolderName: '',
|
|
165
|
+
actualImagesFolderName: '',
|
|
166
|
+
diffImagesFolderName: '',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
const createMockBase64Data = () => 'base64-image-data';
|
|
171
|
+
beforeEach(() => {
|
|
172
|
+
vi.clearAllMocks();
|
|
173
|
+
vi.mocked(readFileSync).mockReturnValue(Buffer.from(createMockBase64Data()));
|
|
174
|
+
vi.mocked(getBase64ScreenshotSize).mockReturnValue({ width: 100, height: 100 });
|
|
175
|
+
});
|
|
176
|
+
it('should not create report when createJsonReportFiles is false', async () => {
|
|
177
|
+
await createJsonReportIfNeeded({
|
|
178
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
179
|
+
data: createMockData(),
|
|
180
|
+
fileName: 'test.png',
|
|
181
|
+
filePaths: createMockFilePaths(),
|
|
182
|
+
devicePixelRatio: 1,
|
|
183
|
+
imageCompareOptions: createMockImageCompareOptions(false),
|
|
184
|
+
testContext: createTestContext(),
|
|
185
|
+
storeDiffs: true,
|
|
186
|
+
});
|
|
187
|
+
expect(vi.mocked(readFileSync).mock.calls).toMatchSnapshot();
|
|
188
|
+
expect(vi.mocked(getBase64ScreenshotSize).mock.calls).toMatchSnapshot();
|
|
189
|
+
});
|
|
190
|
+
it('should create report when createJsonReportFiles is true without diff', async () => {
|
|
191
|
+
await createJsonReportIfNeeded({
|
|
192
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
193
|
+
data: createMockData(),
|
|
194
|
+
fileName: 'test.png',
|
|
195
|
+
filePaths: createMockFilePaths(),
|
|
196
|
+
devicePixelRatio: 2,
|
|
197
|
+
imageCompareOptions: createMockImageCompareOptions(true),
|
|
198
|
+
testContext: createTestContext(),
|
|
199
|
+
storeDiffs: false,
|
|
200
|
+
});
|
|
201
|
+
expect(vi.mocked(readFileSync).mock.calls).toMatchSnapshot();
|
|
202
|
+
expect(vi.mocked(getBase64ScreenshotSize).mock.calls).toMatchSnapshot();
|
|
203
|
+
});
|
|
204
|
+
it('should create report when createJsonReportFiles is true with diff', async () => {
|
|
205
|
+
await createJsonReportIfNeeded({
|
|
206
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
207
|
+
data: createMockData(),
|
|
208
|
+
fileName: 'test.png',
|
|
209
|
+
filePaths: createMockFilePaths(),
|
|
210
|
+
devicePixelRatio: 1,
|
|
211
|
+
imageCompareOptions: createMockImageCompareOptions(true),
|
|
212
|
+
testContext: createTestContext(),
|
|
213
|
+
storeDiffs: true,
|
|
214
|
+
});
|
|
215
|
+
expect(vi.mocked(readFileSync).mock.calls).toMatchSnapshot();
|
|
216
|
+
expect(vi.mocked(getBase64ScreenshotSize).mock.calls).toMatchSnapshot();
|
|
217
|
+
});
|
|
218
|
+
it('should create report without diff when diffFilePath is undefined', async () => {
|
|
219
|
+
const filePathsWithoutDiff = {
|
|
220
|
+
...createMockFilePaths(),
|
|
221
|
+
diffFilePath: undefined,
|
|
222
|
+
};
|
|
223
|
+
await createJsonReportIfNeeded({
|
|
224
|
+
boundingBoxes: createMockBoundingBoxes(),
|
|
225
|
+
data: createMockData(),
|
|
226
|
+
fileName: 'test.png',
|
|
227
|
+
filePaths: filePathsWithoutDiff,
|
|
228
|
+
devicePixelRatio: 1,
|
|
229
|
+
imageCompareOptions: createMockImageCompareOptions(true),
|
|
230
|
+
testContext: createTestContext(),
|
|
231
|
+
storeDiffs: true,
|
|
232
|
+
});
|
|
233
|
+
expect(vi.mocked(readFileSync).mock.calls).toMatchSnapshot();
|
|
234
|
+
expect(vi.mocked(getBase64ScreenshotSize).mock.calls).toMatchSnapshot();
|
|
235
|
+
});
|
|
236
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ElementPosition } from '../clientSideScripts/elementPosition.interfaces.js';
|
|
2
|
+
import type { DeviceRectangles } from './rectangles.interfaces.js';
|
|
3
|
+
import type { GetElementPositionAndroidOptions, GetElementPositionDesktopOptions } from './elementPosition.interfaces.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get the element position on a Android device
|
|
6
|
+
*/
|
|
7
|
+
export declare function getElementPositionAndroid(browserInstance: WebdriverIO.Browser, element: HTMLElement, { deviceRectangles, isAndroidNativeWebScreenshot }: GetElementPositionAndroidOptions): Promise<ElementPosition>;
|
|
8
|
+
/**
|
|
9
|
+
* Get the element position on a desktop browser
|
|
10
|
+
*/
|
|
11
|
+
export declare function getElementPositionDesktop(browserInstance: WebdriverIO.Browser, element: HTMLElement, { innerHeight, screenshotHeight }: GetElementPositionDesktopOptions): Promise<ElementPosition>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the element position calculated from the webview
|
|
14
|
+
*/
|
|
15
|
+
export declare function getElementWebviewPosition(browserInstance: WebdriverIO.Browser, element: HTMLElement, { deviceRectangles: { viewport: { x, y } } }: {
|
|
16
|
+
deviceRectangles: DeviceRectangles;
|
|
17
|
+
}): Promise<ElementPosition>;
|
|
18
|
+
//# sourceMappingURL=elementPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementPosition.d.ts","sourceRoot":"","sources":["../../src/methods/elementPosition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAA;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAA;AAEzH;;GAEG;AACH,wBAAsB,yBAAyB,CAC3C,eAAe,EAAE,WAAW,CAAC,OAAO,EACpC,OAAO,EAAE,WAAW,EACpB,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,EAAE,gCAAgC,GACrF,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC3C,eAAe,EAAE,WAAW,CAAC,OAAO,EACpC,OAAO,EAAE,WAAW,EACpB,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,gCAAgC,GACpE,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC3C,eAAe,EAAE,WAAW,CAAC,OAAO,EACpC,OAAO,EAAE,WAAW,EACpB,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,GACpF,OAAO,CAAC,eAAe,CAAC,CAS1B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DeviceRectangles } from './rectangles.interfaces.js';
|
|
2
|
+
export interface GetElementPositionDesktopOptions {
|
|
3
|
+
/** The inner height of the screen */
|
|
4
|
+
innerHeight: number;
|
|
5
|
+
/** The screenshot height */
|
|
6
|
+
screenshotHeight: number;
|
|
7
|
+
}
|
|
8
|
+
export interface GetElementPositionAndroidOptions {
|
|
9
|
+
/** The device rectangles */
|
|
10
|
+
deviceRectangles: DeviceRectangles;
|
|
11
|
+
/** Is the device Android */
|
|
12
|
+
isAndroidNativeWebScreenshot: boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=elementPosition.interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementPosition.interfaces.d.ts","sourceRoot":"","sources":["../../src/methods/elementPosition.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,WAAW,gCAAgC;IAC7C,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAgC;IAC7C,4BAA4B;IAC5B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,4BAA4B;IAC5B,4BAA4B,EAAE,OAAO,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import getElementPositionTopDom from '../clientSideScripts/getElementPositionTopDom.js';
|
|
2
|
+
import { getBoundingClientRect } from '../clientSideScripts/getBoundingClientRect.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get the element position on a Android device
|
|
5
|
+
*/
|
|
6
|
+
export async function getElementPositionAndroid(browserInstance, element, { deviceRectangles, isAndroidNativeWebScreenshot }) {
|
|
7
|
+
// This is the native web screenshot
|
|
8
|
+
if (isAndroidNativeWebScreenshot) {
|
|
9
|
+
return getElementWebviewPosition(browserInstance, element, { deviceRectangles });
|
|
10
|
+
}
|
|
11
|
+
// This is the ChromeDriver screenshot
|
|
12
|
+
return browserInstance.execute(getBoundingClientRect, element);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the element position on a desktop browser
|
|
16
|
+
*/
|
|
17
|
+
export async function getElementPositionDesktop(browserInstance, element, { innerHeight, screenshotHeight }) {
|
|
18
|
+
if (screenshotHeight > innerHeight) {
|
|
19
|
+
return browserInstance.execute(getElementPositionTopDom, element);
|
|
20
|
+
}
|
|
21
|
+
return browserInstance.execute(getBoundingClientRect, element);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the element position calculated from the webview
|
|
25
|
+
*/
|
|
26
|
+
export async function getElementWebviewPosition(browserInstance, element, { deviceRectangles: { viewport: { x, y } } }) {
|
|
27
|
+
const { height, width, x: boundingClientX, y: boundingClientY } = (await browserInstance.execute(getBoundingClientRect, element));
|
|
28
|
+
return {
|
|
29
|
+
height,
|
|
30
|
+
width,
|
|
31
|
+
x: boundingClientX + x,
|
|
32
|
+
y: boundingClientY + y,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { AdjustedAxis, CheckBaselineImageExists, CropAndConvertToDataURL, CroppedBase64Image, DimensionsWarning, ExecuteImageCompare, HandleIOSBezelCorners, ImageCompareResult, MakeFullPageBase64ImageOptions, RotateBase64ImageOptions, RotatedImage, TakeBase64ElementScreenshotOptions, TakeResizedBase64ScreenshotOptions } from './images.interfaces.js';
|
|
2
|
+
import type { IgnoreBoxes } from './rectangles.interfaces.js';
|
|
3
|
+
import type { FullPageScreenshotsData } from './screenshots.interfaces.js';
|
|
4
|
+
/**
|
|
5
|
+
* Check if an image exists and return a boolean
|
|
6
|
+
*/
|
|
7
|
+
export declare function checkIfImageExists(filePath: string): Promise<boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* Remove the diff image if it exists
|
|
10
|
+
*/
|
|
11
|
+
export declare function removeDiffImageIfExists(diffFilePath: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Check if the image exists and create a new baseline image if needed
|
|
14
|
+
*/
|
|
15
|
+
export declare function checkBaselineImageExists({ actualFilePath, baselineFilePath, autoSaveBaseline, updateBaseline }: CheckBaselineImageExists): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Get the rotated image if needed
|
|
18
|
+
*/
|
|
19
|
+
export declare function getRotatedImageIfNeeded({ isWebDriverElementScreenshot, isLandscape, base64Image }: RotatedImage): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Log a warning when the crop goes out of the screen
|
|
22
|
+
*/
|
|
23
|
+
export declare function logDimensionWarning({ dimension, maxDimension, position, type, }: DimensionsWarning): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get the adjusted axis
|
|
26
|
+
*/
|
|
27
|
+
export declare function getAdjustedAxis({ length, maxDimension, paddingEnd, paddingStart, start, warningType, }: AdjustedAxis): [number, number];
|
|
28
|
+
/**
|
|
29
|
+
* Handle the iOS bezel corners
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleIOSBezelCorners({ addIOSBezelCorners, image, deviceName, devicePixelRatio, height, isLandscape, width, }: HandleIOSBezelCorners): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Crop the image and convert it to a base64 image
|
|
34
|
+
*/
|
|
35
|
+
export declare function cropAndConvertToDataURL({ addIOSBezelCorners, base64Image, deviceName, devicePixelRatio, height, isIOS, isLandscape, sourceX, sourceY, width, }: CropAndConvertToDataURL): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Make a cropped image with Canvas
|
|
38
|
+
*/
|
|
39
|
+
export declare function makeCroppedBase64Image({ addIOSBezelCorners, base64Image, deviceName, devicePixelRatio, isWebDriverElementScreenshot, isIOS, isLandscape, rectangles, resizeDimensions, }: CroppedBase64Image): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Execute the image compare
|
|
42
|
+
*/
|
|
43
|
+
export declare function executeImageCompare({ isViewPortScreenshot, isNativeContext, options, testContext, }: ExecuteImageCompare): Promise<ImageCompareResult | number>;
|
|
44
|
+
/**
|
|
45
|
+
* Make a full page image with Canvas
|
|
46
|
+
*/
|
|
47
|
+
export declare function makeFullPageBase64Image(screenshotsData: FullPageScreenshotsData, { devicePixelRatio, isLandscape }: MakeFullPageBase64ImageOptions): Promise<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Save the base64 image to a file
|
|
50
|
+
*/
|
|
51
|
+
export declare function saveBase64Image(base64Image: string, filePath: string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Create a canvas with the ignore boxes if they are present
|
|
54
|
+
*/
|
|
55
|
+
export declare function addBlockOuts(screenshot: string, ignoredBoxes: IgnoreBoxes[]): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Rotate a base64 image
|
|
58
|
+
* Tnx to https://gist.github.com/Zyndoras/6897abdf53adbedf02564808aaab94db
|
|
59
|
+
*/
|
|
60
|
+
export declare function rotateBase64Image({ base64Image, degrees }: RotateBase64ImageOptions): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Take a based64 screenshot of an element and resize it
|
|
63
|
+
*/
|
|
64
|
+
export declare function takeResizedBase64Screenshot({ browserInstance, element, devicePixelRatio, isIOS, resizeDimensions, }: TakeResizedBase64ScreenshotOptions): Promise<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Take a base64 screenshot of an element
|
|
67
|
+
*/
|
|
68
|
+
export declare function takeBase64ElementScreenshot({ browserInstance, element, devicePixelRatio, isIOS, resizeDimensions, }: TakeBase64ElementScreenshotOptions): Promise<string>;
|
|
69
|
+
//# sourceMappingURL=images.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/methods/images.ts"],"names":[],"mappings":"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"}
|