@wdio/image-comparison-core 1.1.4 → 1.2.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 +22 -0
- package/dist/base.interfaces.d.ts +7 -0
- package/dist/base.interfaces.d.ts.map +1 -1
- package/dist/clientSideScripts/injectWebviewOverlay.test.js +29 -0
- package/dist/clientSideScripts/scrollElementIntoView.d.ts.map +1 -1
- package/dist/clientSideScripts/scrollElementIntoView.js +4 -1
- package/dist/clientSideScripts/scrollElementIntoView.test.js +4 -2
- package/dist/commands/check.interfaces.d.ts +1 -1
- package/dist/commands/check.interfaces.d.ts.map +1 -1
- package/dist/commands/checkFullPageScreen.d.ts.map +1 -1
- package/dist/commands/checkFullPageScreen.js +7 -2
- package/dist/commands/checkWebElement.d.ts.map +1 -1
- package/dist/commands/checkWebElement.js +7 -2
- package/dist/commands/checkWebScreen.d.ts.map +1 -1
- package/dist/commands/checkWebScreen.js +10 -3
- package/dist/commands/checkWebScreen.test.js +43 -0
- package/dist/commands/fullPage.interfaces.d.ts +6 -0
- package/dist/commands/fullPage.interfaces.d.ts.map +1 -1
- package/dist/commands/save.interfaces.d.ts +3 -1
- package/dist/commands/save.interfaces.d.ts.map +1 -1
- package/dist/commands/saveElement.d.ts +1 -1
- package/dist/commands/saveElement.d.ts.map +1 -1
- package/dist/commands/saveElement.js +2 -2
- package/dist/commands/saveFullPageScreen.d.ts.map +1 -1
- package/dist/commands/saveFullPageScreen.js +23 -3
- package/dist/commands/saveWebElement.d.ts +1 -1
- package/dist/commands/saveWebElement.d.ts.map +1 -1
- package/dist/commands/saveWebElement.js +24 -2
- package/dist/commands/saveWebScreen.d.ts +1 -1
- package/dist/commands/saveWebScreen.d.ts.map +1 -1
- package/dist/commands/saveWebScreen.js +23 -3
- package/dist/helpers/afterScreenshot.interfaces.d.ts +2 -0
- package/dist/helpers/afterScreenshot.interfaces.d.ts.map +1 -1
- package/dist/helpers/options.d.ts.map +1 -1
- package/dist/helpers/options.interfaces.d.ts +10 -0
- package/dist/helpers/options.interfaces.d.ts.map +1 -1
- package/dist/helpers/options.js +1 -0
- package/dist/helpers/utils.d.ts +6 -0
- package/dist/helpers/utils.d.ts.map +1 -1
- package/dist/helpers/utils.interfaces.d.ts +3 -0
- package/dist/helpers/utils.interfaces.d.ts.map +1 -1
- package/dist/helpers/utils.js +95 -29
- package/dist/helpers/utils.test.js +121 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/methods/images.d.ts.map +1 -1
- package/dist/methods/images.interfaces.d.ts +4 -0
- package/dist/methods/images.interfaces.d.ts.map +1 -1
- package/dist/methods/images.js +4 -2
- package/dist/methods/rectangles.d.ts +33 -2
- package/dist/methods/rectangles.d.ts.map +1 -1
- package/dist/methods/rectangles.interfaces.d.ts +58 -0
- package/dist/methods/rectangles.interfaces.d.ts.map +1 -1
- package/dist/methods/rectangles.js +289 -15
- package/dist/methods/rectangles.test.js +558 -2
- package/dist/methods/takeElementScreenshots.js +19 -16
- package/dist/methods/takeElementScreenshots.test.js +22 -22
- package/package.json +3 -3
|
@@ -74,7 +74,7 @@ describe('takeElementScreenshot', () => {
|
|
|
74
74
|
vi.clearAllMocks();
|
|
75
75
|
});
|
|
76
76
|
describe('BiDi screenshots', () => {
|
|
77
|
-
it('should take BiDi screenshot from
|
|
77
|
+
it('should take BiDi screenshot from document when shouldUseBidi is true', async () => {
|
|
78
78
|
const result = await takeElementScreenshot(browserInstance, baseOptions, true);
|
|
79
79
|
expect(result).toEqual({
|
|
80
80
|
base64Image: 'bidi-screenshot-data',
|
|
@@ -83,37 +83,37 @@ describe('takeElementScreenshot', () => {
|
|
|
83
83
|
expect(getElementRectMock).toHaveBeenCalledWith('test-element');
|
|
84
84
|
expect(takeBase64BiDiScreenshotSpy).toHaveBeenCalledWith({
|
|
85
85
|
browserInstance,
|
|
86
|
-
origin: '
|
|
86
|
+
origin: 'document',
|
|
87
87
|
clip: { x: 10, y: 20, width: 100, height: 200 }
|
|
88
88
|
});
|
|
89
89
|
expect(takeWebElementScreenshotSpy).not.toHaveBeenCalled();
|
|
90
90
|
expect(makeCroppedBase64ImageSpy).not.toHaveBeenCalled();
|
|
91
91
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
//
|
|
93
|
+
// We intentionally rely on BiDi with origin: 'document' only. If that
|
|
94
|
+
// ever fails, we surface the underlying error instead of silently
|
|
95
|
+
// falling back to a different origin with mismatched coordinates.
|
|
96
|
+
it('should scroll element into view when autoElementScroll is enabled', async () => {
|
|
97
|
+
const optionsWithScroll = { ...baseOptions, autoElementScroll: true };
|
|
98
|
+
executeMock.mockResolvedValueOnce(100); // previous scroll position
|
|
99
|
+
const result = await takeElementScreenshot(browserInstance, optionsWithScroll, true);
|
|
95
100
|
expect(result).toEqual({
|
|
96
101
|
base64Image: 'bidi-screenshot-data',
|
|
97
102
|
isWebDriverElementScreenshot: false
|
|
98
103
|
});
|
|
99
|
-
|
|
100
|
-
expect(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
});
|
|
105
|
-
expect(takeBase64BiDiScreenshotSpy.mock.calls[1][0]).toEqual({
|
|
106
|
-
browserInstance,
|
|
107
|
-
origin: 'document',
|
|
108
|
-
clip: { x: 10, y: 20, width: 100, height: 200 }
|
|
109
|
-
});
|
|
104
|
+
// First call: scrollElementIntoView, second call: scrollToPosition (restore)
|
|
105
|
+
expect(executeMock).toHaveBeenCalledTimes(2);
|
|
106
|
+
expect(executeMock.mock.calls[0]).toMatchSnapshot();
|
|
107
|
+
expect(executeMock.mock.calls[1]).toMatchSnapshot();
|
|
108
|
+
expect(waitForSpy).toHaveBeenCalledWith(100);
|
|
110
109
|
});
|
|
111
|
-
it('should
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
await
|
|
115
|
-
|
|
116
|
-
expect(
|
|
110
|
+
it('should not restore scroll when autoElementScroll is enabled but no previous position', async () => {
|
|
111
|
+
const optionsWithScroll = { ...baseOptions, autoElementScroll: true };
|
|
112
|
+
executeMock.mockResolvedValueOnce(undefined); // no previous position
|
|
113
|
+
await takeElementScreenshot(browserInstance, optionsWithScroll, true);
|
|
114
|
+
// Only the scrollElementIntoView call, no restore
|
|
115
|
+
expect(executeMock).toHaveBeenCalledTimes(1);
|
|
116
|
+
expect(waitForSpy).toHaveBeenCalledWith(100);
|
|
117
117
|
});
|
|
118
118
|
});
|
|
119
119
|
describe('Legacy screenshots', () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/image-comparison-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"author": "Wim Selles - wswebcreation",
|
|
5
5
|
"description": "Image comparison core module for @wdio/visual-service - WebdriverIO visual testing framework",
|
|
6
6
|
"keywords": [
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"jimp": "^1.6.0",
|
|
30
30
|
"@wdio/logger": "^9.18.0",
|
|
31
|
-
"@wdio/types": "^9.
|
|
31
|
+
"@wdio/types": "^9.25.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"webdriverio": "^9.
|
|
34
|
+
"webdriverio": "^9.25.0"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|