From fa032d752dfd409044158997f206c4c36515a117 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 7 Jul 2021 13:23:11 +0200 Subject: [PATCH] Update playwright to 1.12.x and enable tracing for smoke tests (#128061) * :up: playwright * create trace --- package.json | 2 +- test/automation/src/playwrightDriver.ts | 14 +++++++++----- yarn.lock | 17 +++++++++++------ 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 6f83c0ff4e1..716f89aee29 100644 --- a/package.json +++ b/package.json @@ -178,7 +178,7 @@ "opn": "^6.0.0", "optimist": "0.3.5", "p-all": "^1.0.0", - "playwright": "1.11.1", + "playwright": "1.12.3", "pump": "^1.0.1", "queue": "3.0.6", "rcedit": "^1.1.0", diff --git a/test/automation/src/playwrightDriver.ts b/test/automation/src/playwrightDriver.ts index 93f1635dda9..441e22e9279 100644 --- a/test/automation/src/playwrightDriver.ts +++ b/test/automation/src/playwrightDriver.ts @@ -15,6 +15,9 @@ import * as kill from 'tree-kill'; const width = 1200; const height = 800; +const root = join(__dirname, '..', '..', '..'); +const logsPath = join(root, '.build', 'logs', 'smoke-tests-browser'); + const vscodeToPlaywrightKey: { [key: string]: string } = { cmd: 'Meta', ctrl: 'Control', @@ -29,7 +32,9 @@ const vscodeToPlaywrightKey: { [key: string]: string } = { esc: 'Escape' }; -function buildDriver(browser: playwright.Browser, page: playwright.Page): IDriver { +let traceCounter = 1; + +function buildDriver(browser: playwright.Browser, context: playwright.BrowserContext, page: playwright.Page): IDriver { const driver: IDriver = { _serviceBrand: undefined, getWindowIds: () => { @@ -38,6 +43,7 @@ function buildDriver(browser: playwright.Browser, page: playwright.Page): IDrive capturePage: () => Promise.resolve(''), reloadWindow: (windowId) => Promise.resolve(), exitApplication: async () => { + await context.tracing.stop({ path: join(logsPath, `playwright-trace-${traceCounter++}.zip`) }); await browser.close(); await teardown(); }, @@ -108,9 +114,6 @@ export async function launch(userDataDir: string, _workspacePath: string, codeSe ...process.env }; - const root = join(__dirname, '..', '..', '..'); - const logsPath = join(root, '.build', 'logs', 'smoke-tests-browser'); - const args = ['--port', `${port++}`, '--browser', 'none', '--driver', 'web', '--extensions-dir', extPath]; let serverLocation: string | undefined; @@ -172,13 +175,14 @@ export function connect(browserType: 'chromium' | 'webkit' | 'firefox' = 'chromi return new Promise(async (c) => { const browser = await playwright[browserType].launch({ headless: false }); const context = await browser.newContext(); + await context.tracing.start({ screenshots: true, snapshots: true }); const page = await context.newPage(); await page.setViewportSize({ width, height }); const payloadParam = `[["enableProposedApi",""],["skipWelcome","true"]]`; await page.goto(`${endpoint}&folder=vscode-remote://localhost:9888${URI.file(workspacePath!).path}&payload=${payloadParam}`); const result = { client: { dispose: () => browser.close() && teardown() }, - driver: buildDriver(browser, page) + driver: buildDriver(browser, context, page) }; c(result); }); diff --git a/yarn.lock b/yarn.lock index 06aa8875f0d..8a716f885c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7589,10 +7589,10 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -playwright@1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.11.1.tgz#c5f2946db5195bd099a57ce4e188c01057876cff" - integrity sha512-UuMrYuvzttbJXUD7sTVcQBsGRojelGepvuQPD+QtVm/n5zyKvkiUErU/DGRXfX8VDZRdQ5D6qVqZndrydC2b4w== +playwright@1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.12.3.tgz#113afa2cba10fb56e9a5b307377343e32a155a99" + integrity sha512-eyhHvZV7dMAUltqjQsgJ9CjZM8dznzN1+rcfCI6W6lfQ7IlPvTFGLuKOCcI4ETbjfbxqaS5FKIkb1WDDzq2Nww== dependencies: commander "^6.1.0" debug "^4.1.1" @@ -7606,7 +7606,7 @@ playwright@1.11.1: proxy-from-env "^1.1.0" rimraf "^3.0.2" stack-utils "^2.0.3" - ws "^7.3.1" + ws "^7.4.6" yazl "^2.5.1" plist@^3.0.1: @@ -10725,11 +10725,16 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^7.2.0, ws@^7.3.1: +ws@^7.2.0: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@^7.4.6: + version "7.5.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" + integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== + xml-name-validator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-1.0.0.tgz#dcf82ee092322951ef8cc1ba596c9cbfd14a83f1"