Skip to content

Commit

Permalink
feat: update puppeteer and puppeteer-core to 8.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
web-padawan authored and LarsDenBakker committed Apr 20, 2021
1 parent 96f439e commit 2c06f31
Show file tree
Hide file tree
Showing 12 changed files with 70 additions and 36 deletions.
11 changes: 11 additions & 0 deletions .changeset/violet-adults-brake.md
@@ -0,0 +1,11 @@
---
'@web/test-runner-chrome': minor
'@web/test-runner-puppeteer': minor
'@web/test-runner-visual-regression': minor
'@web/test-runner': minor
'@web/browser-logs': patch
'@web/dev-server': patch
'@web/dev-server-hmr': patch
---

Update puppeteer and puppeteer-core to 8.0.0
2 changes: 1 addition & 1 deletion packages/browser-logs/package.json
Expand Up @@ -50,6 +50,6 @@
},
"devDependencies": {
"@esm-bundle/chai": "^4.1.5",
"puppeteer": "^5.5.0"
"puppeteer": "^8.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/dev-server-hmr/package.json
Expand Up @@ -43,6 +43,6 @@
},
"devDependencies": {
"lit-html": "^1.3.0",
"puppeteer": "^5.5.0"
"puppeteer": "^8.0.0"
}
}
12 changes: 6 additions & 6 deletions packages/dev-server-hmr/test/browser.test.ts
@@ -1,7 +1,7 @@
import { expect } from 'chai';
import { stubMethod } from 'hanbi';
import { createTestServer, expectIncludes } from '@web/dev-server-core/test-helpers';
import { Browser, launch as launchPuppeteer, Page } from 'puppeteer';
import { Browser, HTTPResponse, launch as launchPuppeteer, Page } from 'puppeteer';
import { posix as pathUtil } from 'path';

import { hmrPlugin } from '../src/index';
Expand Down Expand Up @@ -90,7 +90,7 @@ describe('browser tests', function () {

files['/foo.js'] = files['/foo.js'].replace('" a "', '" b "');
server.fileWatcher.emit('change', pathUtil.join(__dirname, '/foo.js'));
await page.waitForResponse(r => r.url().startsWith(`${host}/foo.js`));
await page.waitForResponse((r: HTTPResponse) => r.url().startsWith(`${host}/foo.js`));
expectIncludes(await page.content(), '<body> a b </body>');

for (const error of errors) {
Expand Down Expand Up @@ -122,7 +122,7 @@ describe('browser tests', function () {

files['/bar.js'] = 'export default " b ";';
server.fileWatcher.emit('change', pathUtil.join(__dirname, '/bar.js'));
await page.waitForResponse(r => r.url().startsWith(`${host}/bar.js`));
await page.waitForResponse((r: HTTPResponse) => r.url().startsWith(`${host}/bar.js`));
await new Promise(r => setTimeout(r, 1000));
expectIncludes(await page.content(), '<body> a b </body>');

Expand Down Expand Up @@ -158,9 +158,9 @@ describe('browser tests', function () {
files['/baz.js'] = 'export default " b ";';
server.fileWatcher.emit('change', pathUtil.join(__dirname, '/baz.js'));
await Promise.all([
page.waitForResponse(r => r.url().startsWith(`${host}/foo.js`)),
page.waitForResponse(r => r.url().startsWith(`${host}/bar.js`)),
page.waitForResponse(r => r.url().startsWith(`${host}/baz.js`)),
page.waitForResponse((r: HTTPResponse) => r.url().startsWith(`${host}/foo.js`)),
page.waitForResponse((r: HTTPResponse) => r.url().startsWith(`${host}/bar.js`)),
page.waitForResponse((r: HTTPResponse) => r.url().startsWith(`${host}/baz.js`)),
]);
await new Promise(r => setTimeout(r, 1000));
expectIncludes(await page.content(), '<body> foo a bar a foo b bar b </body>');
Expand Down
2 changes: 1 addition & 1 deletion packages/dev-server/package.json
Expand Up @@ -74,6 +74,6 @@
"devDependencies": {
"@types/command-line-usage": "^5.0.1",
"lit-html": "^1.3.0",
"puppeteer": "^5.5.0"
"puppeteer": "^8.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/test-runner-chrome/package.json
Expand Up @@ -48,7 +48,7 @@
"@web/test-runner-core": "^0.10.8",
"@web/test-runner-coverage-v8": "^0.4.5",
"chrome-launcher": "^0.13.4",
"puppeteer-core": "^5.5.0"
"puppeteer-core": "^8.0.0"
},
"devDependencies": {
"@types/babel__code-frame": "^7.0.2",
Expand Down
14 changes: 7 additions & 7 deletions packages/test-runner-chrome/src/ChromeLauncher.ts
Expand Up @@ -2,7 +2,7 @@ import * as puppeteerCore from 'puppeteer-core';
import {
Browser,
Page,
LaunchOptions,
PuppeteerNodeLaunchOptions,
launch as puppeteerCoreLaunch,
BrowserContext,
} from 'puppeteer-core';
Expand Down Expand Up @@ -31,7 +31,7 @@ export class ChromeLauncher implements BrowserLauncher {
public name: string;
public type = 'puppeteer';
public concurrency?: number;
private launchOptions: LaunchOptions;
private launchOptions: PuppeteerNodeLaunchOptions;
private customPuppeteer?: typeof puppeteerCore;
private createBrowserContextFn: CreateBrowserContextFn;
private createPageFn: CreatePageFn;
Expand All @@ -48,7 +48,7 @@ export class ChromeLauncher implements BrowserLauncher {
private __startBrowserPromise?: Promise<{ browser: Browser; context: BrowserContext }>;

constructor(
launchOptions: LaunchOptions,
launchOptions: PuppeteerNodeLaunchOptions,
createBrowserContextFn: CreateBrowserContextFn,
createPageFn: CreatePageFn,
customPuppeteer?: typeof puppeteerCore,
Expand All @@ -63,7 +63,7 @@ export class ChromeLauncher implements BrowserLauncher {
if (!customPuppeteer) {
// without a custom puppeteer, we use the locally installed chrome
this.name = 'Chrome';
} else if (!this.launchOptions.product || this.launchOptions.product === 'chrome') {
} else if (!this.launchOptions?.product || this.launchOptions.product === 'chrome') {
// with puppeteer we use the a packaged chromium, puppeteer calls it chrome but we
// should call it chromium to avoid confusion
this.name = 'Chromium';
Expand All @@ -78,7 +78,7 @@ export class ChromeLauncher implements BrowserLauncher {
this.testFiles = testFiles;
}

launchBrowser(options: LaunchOptions = {}) {
launchBrowser(options: PuppeteerNodeLaunchOptions = {}) {
if (this.customPuppeteer) {
const mergedOptions = { ...this.launchOptions, ...options };
// launch using a custom puppeteer instance
Expand Down Expand Up @@ -114,7 +114,7 @@ export class ChromeLauncher implements BrowserLauncher {
});
}

async startBrowser(options: LaunchOptions = {}) {
async startBrowser(options: PuppeteerNodeLaunchOptions = {}) {
const browser = await this.launchBrowser(options);
const context = await this.createBrowserContextFn({ config: this.config!, browser });
return { browser, context };
Expand Down Expand Up @@ -183,7 +183,7 @@ export class ChromeLauncher implements BrowserLauncher {
return new ChromeLauncherPage(
this.config!,
this.testFiles!,
this.launchOptions.product ?? 'chromium',
this.launchOptions?.product ?? 'chromium',
await puppeteerPagePromise,
);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/test-runner-chrome/src/index.ts
@@ -1,10 +1,10 @@
import * as puppeteerCore from 'puppeteer-core';
import { ChromeLauncher, CreateBrowserContextFn, CreatePageFn } from './ChromeLauncher';
import { LaunchOptions, devices } from 'puppeteer-core';
import { PuppeteerNodeLaunchOptions, devices } from 'puppeteer-core';

export interface ChromeLauncherArgs {
puppeteer?: typeof puppeteerCore;
launchOptions?: LaunchOptions;
launchOptions?: PuppeteerNodeLaunchOptions;
createBrowserContext?: CreateBrowserContextFn;
createPage?: CreatePageFn;
concurrency?: number;
Expand Down
5 changes: 3 additions & 2 deletions packages/test-runner-puppeteer/package.json
Expand Up @@ -47,9 +47,10 @@
"dependencies": {
"@web/test-runner-chrome": "^0.9.3",
"@web/test-runner-core": "^0.10.8",
"puppeteer": "^5.5.0"
"puppeteer": "^8.0.0"
},
"devDependencies": {
"@web/test-runner-mocha": "^0.7.2"
"@web/test-runner-mocha": "^0.7.2",
"puppeteer-core": "^8.0.0"
}
}
11 changes: 5 additions & 6 deletions packages/test-runner-puppeteer/src/puppeteerLauncher.ts
@@ -1,13 +1,12 @@
import * as puppeteer from 'puppeteer';
import * as puppeteerCore from 'puppeteer-core';
import { Browser, Page, PuppeteerNodeLaunchOptions } from 'puppeteer-core';
import { BrowserLauncher, TestRunnerCoreConfig } from '@web/test-runner-core';
import { chromeLauncher } from '@web/test-runner-chrome';

export interface PuppeteerLauncherConfig {
launchOptions?: puppeteer.LaunchOptions;
createPage?: (args: {
config: TestRunnerCoreConfig;
browser: puppeteer.Browser;
}) => Promise<puppeteer.Page>;
launchOptions?: PuppeteerNodeLaunchOptions;
createPage?: (args: { config: TestRunnerCoreConfig; browser: Browser }) => Promise<Page>;
concurrency?: number;
}

Expand All @@ -18,7 +17,7 @@ export function puppeteerLauncher({
}: PuppeteerLauncherConfig = {}): BrowserLauncher {
return chromeLauncher({
launchOptions,
puppeteer: (puppeteer as any).default as typeof puppeteer,
puppeteer: (puppeteer as any).default as typeof puppeteerCore,
createPage,
concurrency,
});
Expand Down
Expand Up @@ -66,7 +66,7 @@ export function visualRegressionPlugin(
);
}

const screenshot = await element.screenshot({ encoding: 'binary' });
const screenshot = (await element.screenshot({ encoding: 'binary' })) as Buffer;
return visualDiffCommand(mergedOptions, screenshot, session.browser.name, payload.name);
}

Expand Down
39 changes: 31 additions & 8 deletions yarn.lock
Expand Up @@ -4590,6 +4590,11 @@ devtools-protocol@0.0.818844:
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.818844.tgz#d1947278ec85b53e4c8ca598f607a28fa785ba9e"
integrity sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==

devtools-protocol@0.0.854822:
version "0.0.854822"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.854822.tgz#eac3a5260a6b3b4e729a09fdc0c77b0d322e777b"
integrity sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==

devtools-protocol@^0.0.849057:
version "0.0.849057"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.849057.tgz#5fa64e2c5ad4499a30aa9e8da82613afc4b1aa77"
Expand Down Expand Up @@ -9708,7 +9713,7 @@ pupa@^2.0.1:
dependencies:
escape-goat "^2.0.0"

puppeteer-core@^5.1.0, puppeteer-core@^5.5.0:
puppeteer-core@^5.1.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-5.5.0.tgz#dfb6266efe5a933cbf1a368d27025a6fd4f5a884"
integrity sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==
Expand All @@ -9726,19 +9731,37 @@ puppeteer-core@^5.1.0, puppeteer-core@^5.5.0:
unbzip2-stream "^1.3.3"
ws "^7.2.3"

puppeteer@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-5.5.0.tgz#331a7edd212ca06b4a556156435f58cbae08af00"
integrity sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==
puppeteer-core@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-8.0.0.tgz#4f56cc24675a8e993b0610a284f064a84910f4ec"
integrity sha512-kRTiGh42+4eiw9tl489p//8Zpg3LWmz0K3mOpv0qj5PsCV7jE43SLIi0E50suLh8OghXsFhJFoE98vEmXUnDew==
dependencies:
debug "^4.1.0"
devtools-protocol "0.0.818844"
devtools-protocol "0.0.854822"
extract-zip "^2.0.0"
https-proxy-agent "^4.0.0"
https-proxy-agent "^5.0.0"
node-fetch "^2.6.1"
pkg-dir "^4.2.0"
progress "^2.0.1"
proxy-from-env "^1.0.0"
proxy-from-env "^1.1.0"
rimraf "^3.0.2"
tar-fs "^2.0.0"
unbzip2-stream "^1.3.3"
ws "^7.2.3"

puppeteer@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-8.0.0.tgz#a236669118aa795331c2d0ca19877159e7664705"
integrity sha512-D0RzSWlepeWkxPPdK3xhTcefj8rjah1791GE82Pdjsri49sy11ci/JQsAO8K2NRukqvwEtcI+ImP5F4ZiMvtIQ==
dependencies:
debug "^4.1.0"
devtools-protocol "0.0.854822"
extract-zip "^2.0.0"
https-proxy-agent "^5.0.0"
node-fetch "^2.6.1"
pkg-dir "^4.2.0"
progress "^2.0.1"
proxy-from-env "^1.1.0"
rimraf "^3.0.2"
tar-fs "^2.0.0"
unbzip2-stream "^1.3.3"
Expand Down

0 comments on commit 2c06f31

Please sign in to comment.