Skip to content

Commit 2b88b5b

Browse files
committed
fix: fix zero maxDelta non-renderable capture spec case during composite and unit tests
1 parent b3a9c31 commit 2b88b5b

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/browser/screen-shooter/composite-image/index.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,25 @@ export class CompositeImage {
262262
hasRenderableDelta = true;
263263
}
264264

265-
if (!hasRenderableDelta || maxDelta === 0) {
265+
if (!hasRenderableDelta) {
266266
for (let i = 0; i < minLength; i++) {
267267
const referenceSpec = referenceCaptureSpecs[i];
268268
const chunkSpec = chunk.captureSpecs[i];
269269

270+
const delta = subtractCoords(referenceSpec.full.top, chunkSpec.full.top);
271+
if (delta > maxDelta) {
272+
maxDelta = delta;
273+
}
274+
}
275+
} else if (maxDelta === 0) {
276+
for (let i = 0; i < minLength; i++) {
277+
const referenceSpec = referenceCaptureSpecs[i];
278+
const chunkSpec = chunk.captureSpecs[i];
279+
280+
if (!this._isRenderableCaptureSpec(chunkSpec)) {
281+
continue;
282+
}
283+
270284
const delta = subtractCoords(referenceSpec.full.top, chunkSpec.full.top);
271285
if (delta > maxDelta) {
272286
maxDelta = delta;
-520 Bytes
Loading

test/src/browser/screen-shooter/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ describe("ElementsScreenShooter", () => {
398398
viewportSize: page.viewportSize,
399399
viewportOffset: page.viewportOffset,
400400
screenshotDelay: 500,
401+
cropMargins: undefined,
401402
});
402403
assert.calledOnceWithExactly(
403404
compositeImage.registerViewportImageAtOffset,
@@ -450,7 +451,7 @@ describe("ElementsScreenShooter", () => {
450451
const secondState = createCaptureState({
451452
captureSpecs: page.captureSpecs,
452453
safeArea: band(0, 150),
453-
scrollOffset: 100,
454+
scrollOffset: 50,
454455
});
455456

456457
browserSideScreenshooter.call
@@ -471,7 +472,7 @@ describe("ElementsScreenShooter", () => {
471472
assert.calledTwice(compositeImage.registerViewportImageAtOffset);
472473
assert.deepEqual(browserSideScreenshooter.call.getCall(2).args, [
473474
"scrollBy",
474-
[[".element"], 100, undefined, []],
475+
[[".element"], 50, undefined, []],
475476
]);
476477
assert.deepEqual(browserSideScreenshooter.call.getCall(4).args, [
477478
"scrollTo",

0 commit comments

Comments
 (0)