Skip to content
This repository was archived by the owner on Sep 21, 2022. It is now read-only.

Commit 250afe0

Browse files
committed
feat: add screenshotDelay option for screenShooter
1 parent a33de36 commit 250afe0

2 files changed

Lines changed: 14 additions & 9 deletions

File tree

lib/screen-shooter/index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ module.exports = class ScreenShooter {
1313
this._browser = browser;
1414
}
1515

16-
capture(page, {allowViewportOverflow = false} = {}) {
17-
return this._browser.captureViewportImage(page)
16+
capture(page, {allowViewportOverflow = false, screenshotDelay} = {}) {
17+
return this._browser.captureViewportImage(page, screenshotDelay)
1818
.then((viewportImage) => Viewport.create(page.viewport, viewportImage, page.pixelRatio, allowViewportOverflow))
19-
.then((viewport) => this._cropImage(viewport, page));
19+
.then((viewport) => this._cropImage(viewport, page, screenshotDelay));
2020
}
2121

22-
_cropImage(viewport, page) {
22+
_cropImage(viewport, page, screenshotDelay) {
2323
try {
2424
viewport.validate(page.captureArea, this._browser);
2525
} catch (e) {
2626
return e instanceof HeightViewportError && this._browser.config.compositeImage
27-
? this._extendImage(viewport, page)
27+
? this._extendImage(viewport, page, screenshotDelay)
2828
: Promise.reject(e);
2929
}
3030

@@ -33,7 +33,7 @@ module.exports = class ScreenShooter {
3333
return viewport.crop(page.captureArea);
3434
}
3535

36-
_extendImage(viewport, page) {
36+
_extendImage(viewport, page, screenshotDelay) {
3737
const scrollHeight = Math.min(
3838
viewport.getVerticalOverflow(page.captureArea),
3939
page.viewport.height
@@ -43,9 +43,9 @@ module.exports = class ScreenShooter {
4343
.scrollBy(0, scrollHeight)
4444
.then(() => {
4545
page.viewport.top += scrollHeight;
46-
return this._browser.captureViewportImage(page);
46+
return this._browser.captureViewportImage(page, screenshotDelay);
4747
})
4848
.then((newImage) => viewport.extendBy(scrollHeight, newImage))
49-
.then(() => this._cropImage(viewport, page));
49+
.then(() => this._cropImage(viewport, page, screenshotDelay));
5050
}
5151
};

test/lib/screen-shooter/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('screen-shooter', () => {
2020
let browser;
2121

2222
const stubPage = (page) => Object.assign({viewport: {}, captureArea: {}}, page);
23-
const capture = (page, errorHandler) => ScreenShooter.create(browser, errorHandler).capture(stubPage(page));
23+
const capture = (page, errorHandler, opts) => ScreenShooter.create(browser, errorHandler).capture(stubPage(page), opts);
2424

2525
beforeEach(() => {
2626
browser = {
@@ -56,6 +56,11 @@ describe('screen-shooter', () => {
5656
.then(() => assert.calledOnceWith(Viewport.create, 'foo', {baz: 'qux'}, 'bar'), {allowViewportOverflow: true});
5757
});
5858

59+
it('should pass screenshotDelay from options option to captureViewportImage', async () => {
60+
await capture(stubPage(), {}, {screenshotDelay: 2000});
61+
assert.calledWithMatch(browser.captureViewportImage, sinon.match.any, 2000);
62+
});
63+
5964
it('should crop image of passed size', () => {
6065
return capture({captureArea: {foo: 'bar'}})
6166
.then(() => assert.calledOnceWith(Viewport.prototype.crop, {foo: 'bar'}));

0 commit comments

Comments
 (0)