@applitools/screenshoter 3.7.1 → 3.7.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/screenshoter",
3
- "version": "3.7.1",
3
+ "version": "3.7.3",
4
4
  "description": "Applitools universal screenshoter for web and native applications",
5
5
  "keywords": [
6
6
  "applitools",
@@ -72,18 +72,18 @@
72
72
  }
73
73
  },
74
74
  "dependencies": {
75
- "@applitools/image": "1.0.4",
76
- "@applitools/logger": "1.1.27",
75
+ "@applitools/image": "1.0.6",
76
+ "@applitools/logger": "1.1.28",
77
77
  "@applitools/snippets": "2.4.6",
78
- "@applitools/utils": "1.3.13",
78
+ "@applitools/utils": "1.3.14",
79
79
  "jpeg-js": "0.4.4",
80
80
  "png-async": "0.9.4"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@applitools/bongo": "^2.2.0",
84
- "@applitools/driver": "^1.11.1",
84
+ "@applitools/driver": "^1.11.2",
85
85
  "@applitools/scripts": "^1.2.0",
86
- "@applitools/spec-driver-webdriverio": "^1.4.2",
86
+ "@applitools/spec-driver-webdriverio": "^1.4.3",
87
87
  "@applitools/test-utils": "^1.5.2",
88
88
  "appium": "^1.22.3",
89
89
  "chromedriver": "^101.0.0",
@@ -3,15 +3,8 @@ const utils = require('@applitools/utils')
3
3
  function calculateScreenshotRegion({cropRegion, stitchedImage, preMoveOffset, postMoveOffset} = {}) {
4
4
  cropRegion = !!cropRegion ? cropRegion : {x: 0, y: 0}
5
5
  const screenshotRegion = utils.geometry.region(cropRegion, stitchedImage.size)
6
-
7
- if (JSON.stringify(preMoveOffset) === JSON.stringify(postMoveOffset)) return screenshotRegion
8
6
  const moveOffset = utils.geometry.offsetNegative(postMoveOffset, preMoveOffset)
9
- const compensatedScreenshotRegion = utils.geometry.offset(screenshotRegion, moveOffset)
10
-
11
- if (preMoveOffset.y === postMoveOffset.y && preMoveOffset.x !== postMoveOffset.x)
12
- compensatedScreenshotRegion.x = preMoveOffset.x
13
-
14
- return compensatedScreenshotRegion
7
+ return utils.geometry.offset(screenshotRegion, moveOffset)
15
8
  }
16
9
 
17
10
  module.exports = calculateScreenshotRegion
@@ -1,7 +1,13 @@
1
1
  const utils = require('@applitools/utils')
2
2
 
3
- async function extractCoodinatesForSelectorsAndElements({regionsToCalculate, screenshot, context}) {
3
+ async function extractCoordinatesForSelectorsAndElements({regionsToCalculate, screenshot, context, logger}) {
4
4
  const codedRegionsByCoordinates = []
5
+ if (!regionsToCalculate.length) {
6
+ logger.log('no coded regions to calculate, done')
7
+ return codedRegionsByCoordinates
8
+ }
9
+ logger.log('calculating coordinates for coded regions that need them')
10
+ logger.log('regions to calculate', regionsToCalculate)
5
11
  for (const codedRegion of regionsToCalculate) {
6
12
  if (codedRegion) {
7
13
  const {region} = codedRegion.region ? codedRegion : {region: codedRegion}
@@ -21,15 +27,20 @@ async function extractCoodinatesForSelectorsAndElements({regionsToCalculate, scr
21
27
  },
22
28
  context.driver.viewportScale,
23
29
  )
24
- scaledRegions.push({region: scaledRegion})
30
+ logger.log('scaled region', scaledRegion)
31
+ scaledRegions.push(scaledRegion)
25
32
  }
26
- codedRegionsByCoordinates.push({regions: scaledRegions, commonSelector: elements[0].commonSelector})
33
+ codedRegionsByCoordinates.push({
34
+ regions: scaledRegions,
35
+ selector: elements[0].commonSelector,
36
+ })
27
37
  } else {
28
38
  codedRegionsByCoordinates.push({regions: []})
29
39
  }
30
40
  }
31
41
  }
42
+ logger.log('calculated coordinates for coded regions done', codedRegionsByCoordinates)
32
43
  return codedRegionsByCoordinates
33
44
  }
34
45
 
35
- module.exports = extractCoodinatesForSelectorsAndElements
46
+ module.exports = extractCoordinatesForSelectorsAndElements
@@ -3,7 +3,7 @@ const getTarget = require('./get-target')
3
3
  const scrollIntoViewport = require('./scroll-into-viewport')
4
4
  const takeStitchedScreenshot = require('./take-stitched-screenshot')
5
5
  const takeSimpleScreenshot = require('./take-simple-screenshot')
6
- const extractCoodinatesForSelectorsAndElements = require('./extract-coodinates-for-selectors-and-elements')
6
+ const extractCoordinatesForSelectorsAndElements = require('./extract-coordinates-for-selectors-and-elements')
7
7
 
8
8
  async function takeScreenshot({
9
9
  driver,
@@ -92,7 +92,12 @@ async function takeScreenshot({
92
92
 
93
93
  screenshot.image.scale(driver.viewportScale)
94
94
 
95
- const calculatedRegions = await extractCoodinatesForSelectorsAndElements({regionsToCalculate, screenshot, context})
95
+ const calculatedRegions = await extractCoordinatesForSelectorsAndElements({
96
+ regionsToCalculate,
97
+ screenshot,
98
+ context,
99
+ logger,
100
+ })
96
101
 
97
102
  if (hooks && hooks.afterScreenshot) {
98
103
  await hooks.afterScreenshot({driver, scroller: target.scroller, screenshot})
@@ -145,6 +145,7 @@ async function takeStitchedScreenshot({
145
145
  stitchedImage.copy(image, pasteOffset)
146
146
  }
147
147
 
148
+ logger.verbose('restoring scroller state', scrollerState)
148
149
  await scroller.restoreState(scrollerState)
149
150
 
150
151
  await stitchedImage.debug({...debug, name: 'stitched'})