Skip to content

Commit

Permalink
fix: throw if quality=0 is passed for png screenshot (#4812)
Browse files Browse the repository at this point in the history
  • Loading branch information
yury-s committed Dec 23, 2020
1 parent e7ee426 commit 8d4c46a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/server/screenshotter.ts
Expand Up @@ -205,7 +205,7 @@ function validateScreenshotOptions(options: types.ScreenshotOptions): 'png' | 'j
if (!format)
format = 'png';

if (options.quality) {
if (options.quality !== undefined) {
assert(format === 'jpeg', 'options.quality is unsupported for the ' + format + ' screenshots');
assert(typeof options.quality === 'number', 'Expected options.quality to be a number but found ' + (typeof options.quality));
assert(Number.isInteger(options.quality), 'Expected options.quality to be an integer');
Expand Down
10 changes: 10 additions & 0 deletions test/page-screenshot.spec.ts
Expand Up @@ -292,6 +292,16 @@ describe('page screenshot', (suite, { browserName, headful }) => {
expect(error.message).toContain('path: unsupported mime type "text/plain"');
});

it('quality option should throw for png', async ({page}) => {
const error = await page.screenshot({ quality: 10 }).catch(e => e);
expect(error.message).toContain('options.quality is unsupported for the png');
});

it('zero quality option should throw for png', async ({page}) => {
const error = await page.screenshot({ quality: 0, type: 'png' }).catch(e => e);
expect(error.message).toContain('options.quality is unsupported for the png');
});

it('should prefer type over extension', async ({page, testInfo}) => {
const outputPath = testInfo.outputPath('file.png');
const buffer = await page.screenshot({ path: outputPath, type: 'jpeg' });
Expand Down

0 comments on commit 8d4c46a

Please sign in to comment.