From 970b011cba8cc2a5369dbb8a50b9867995246985 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 25 Sep 2020 12:52:06 -0700 Subject: [PATCH] chore: roll @playwright/test to 0.9.6 (#3977) --- package-lock.json | 173 ++++++-------------- package.json | 4 +- test/playwright.fixtures.ts | 18 +- test/screencast.spec.ts | 10 +- utils/doclint/check_public_api/test/test.js | 7 +- 5 files changed, 72 insertions(+), 140 deletions(-) diff --git a/package-lock.json b/package-lock.json index f8920d0bcf..48a082af98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1186,10 +1186,23 @@ "fastq": "^1.6.0" } }, + "@playwright/test": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-0.9.6.tgz", + "integrity": "sha512-T3mHVXIKRBfKmd7cTxlB8WmPtqvz5q/1yBTYcDQHUv51vfaP4xciK1bg0N1VJTjqzQ9ytBp1CTwgOgrA4or29w==", + "dev": true, + "requires": { + "jpeg-js": "^0.4.2", + "pixelmatch": "^5.2.1", + "playwright": "^1.3.0", + "pngjs": "^5.0.0", + "rimraf": "^3.0.2" + } + }, "@playwright/test-runner": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@playwright/test-runner/-/test-runner-0.9.1.tgz", - "integrity": "sha512-LNsTX4f0ItyMef7tmrp6xuiiQN/6/9m44vTmmR1SqKl4gw5CMCCzDCsV9E5qxmWeBD5Bai8IXTF6XpevUXRIZA==", + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@playwright/test-runner/-/test-runner-0.9.10.tgz", + "integrity": "sha512-Vd5z1qbOWJolSLIu1aLLGfIv1zoyi1Yqx99rY+wp4dr4luAo2KJyPmD7B8hvZ1bBxUFlgRsLMK1sXg1Qv41Pyg==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -1201,17 +1214,12 @@ "commander": "^6.1.0", "debug": "^4.1.5", "expect": "^26.4.2", - "jpeg-js": "^0.4.2", "micromatch": "^4.0.2", "ms": "^2.1.2", "pirates": "^4.0.1", - "pixelmatch": "^5.2.1", - "pngjs": "^5.0.0", "rimraf": "^3.0.2", "source-map-support": "^0.5.19", - "stack-utils": "^2.0.2", - "terminal-link": "^2.1.1", - "text-diff": "^1.0.1" + "stack-utils": "^2.0.2" } }, "@sindresorhus/is": { @@ -1734,15 +1742,6 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -2030,16 +2029,6 @@ "dev": true, "optional": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2184,13 +2173,13 @@ } }, "browserslist": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.4.tgz", - "integrity": "sha512-7FOuawafVdEwa5Jv4nzeik/PepAjVte6HmVGHsjt2bC237jeL9QlcTBDF3PnHEvcC6uHwLGYPwZHNZMB7wWAnw==", + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", + "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001135", - "electron-to-chromium": "^1.3.570", + "electron-to-chromium": "^1.3.571", "escalade": "^3.1.0", "node-releases": "^1.1.61" } @@ -2322,9 +2311,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001135", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001135.tgz", - "integrity": "sha512-ziNcheTGTHlu9g34EVoHQdIu5g4foc8EsxMGC7Xkokmvw0dqNtX8BS8RgCgFBaAiSp2IdjvBxNdh0ssib28eVQ==", + "version": "1.0.30001137", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz", + "integrity": "sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw==", "dev": true }, "caseless": { @@ -3004,9 +2993,9 @@ } }, "electron-to-chromium": { - "version": "1.3.571", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.571.tgz", - "integrity": "sha512-UYEQ2Gtc50kqmyOmOVtj6Oqi38lm5yRJY3pLuWt6UIot0No1L09uu6Ja6/1XKwmz/p0eJFZTUZi+khd1PV1hHA==", + "version": "1.3.572", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.572.tgz", + "integrity": "sha512-TKqdEukCCl7JC20SwEoWTbtnGt4YjfHWAv4tcNky0a9qGo0WdM+Lrd60tps+nkaJCmktKBJjr99fLtEBU1ipWQ==", "dev": true }, "elliptic": { @@ -3729,13 +3718,6 @@ "flat-cache": "^2.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5389,13 +5371,6 @@ "readable-stream": "^2.0.5" } }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -5996,6 +5971,24 @@ "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", "dev": true }, + "playwright": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.4.2.tgz", + "integrity": "sha512-qiQHrhU4JBxup9JoGZff6hdFL2VrD+ae5QLELGHwRq/vYNQFeJF10Z3ENnQ6hWJmG+YnpfzgoBvX+cUg4WHwTw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "jpeg-js": "^0.4.2", + "mime": "^2.4.6", + "pngjs": "^5.0.0", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "ws": "^7.3.1" + } + }, "pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -6175,15 +6168,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "pwt": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/pwt/-/pwt-0.9.1.tgz", - "integrity": "sha512-QxztX/KtE2jW2F3L80r1NcZI4GoNc+nrOUvLmqoZjY2erjoItaLy9T4FsET5s4IonR0GobfZ6f8WFe0LPtvE6w==", - "dev": true, - "requires": { - "@playwright/test-runner": "0.9.1" - } - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -6600,15 +6584,6 @@ "optional": true, "requires": { "type-fest": "^0.13.1" - }, - "dependencies": { - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true - } } }, "serialize-javascript": { @@ -7173,33 +7148,6 @@ "has-flag": "^3.0.0" } }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -7218,16 +7166,6 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "terser": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", @@ -7278,12 +7216,6 @@ } } }, - "text-diff": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/text-diff/-/text-diff-1.0.1.tgz", - "integrity": "sha1-bBBZBUNeM3hXN1ydL2ymPkU/9WU=", - "dev": true - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7467,10 +7399,11 @@ } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true }, "typedarray": { "version": "0.0.6", @@ -7852,11 +7785,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } + "optional": true }, "glob-parent": { "version": "3.1.0", diff --git a/package.json b/package.json index 18d88caf57..19fd7df896 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "ws": "^7.3.1" }, "devDependencies": { - "@playwright/test-runner": "^0.9.1", + "@playwright/test": "^0.9.6", + "@playwright/test-runner": "^0.9.10", "@types/debug": "^4.1.5", "@types/extract-zip": "^1.6.2", "@types/mime": "^2.0.3", @@ -72,7 +73,6 @@ "ncp": "^2.0.0", "node-stream-zip": "^1.11.3", "pkg": "^4.4.9", - "pwt": "^0.9.1", "socksv5": "0.0.6", "ts-loader": "^8.0.3", "typescript": "^4.0.2", diff --git a/test/playwright.fixtures.ts b/test/playwright.fixtures.ts index 33a9365440..2802df0b04 100644 --- a/test/playwright.fixtures.ts +++ b/test/playwright.fixtures.ts @@ -24,8 +24,11 @@ import { TestServer } from '../utils/testserver'; import { Connection } from '../lib/client/connection'; import { Transport } from '../lib/protocol/transport'; import { installCoverageHooks } from './coverage'; -import { fixtures as baseFixtures } from '@playwright/test-runner'; +import { fixtures as baseFixtures, config } from '@playwright/test-runner'; import assert from 'assert'; +import { expect } from '@playwright/test'; +export { expect } from '@playwright/test'; +export { config } from '@playwright/test-runner'; const mkdtempAsync = util.promisify(fs.mkdtemp); const removeFolderAsync = util.promisify(require('rimraf')); @@ -83,7 +86,6 @@ export const beforeEach = fixtures.beforeEach; export const afterEach = fixtures.afterEach; export const beforeAll = fixtures.beforeAll; export const afterAll = fixtures.afterAll; -export const expect = fixtures.expect; export const options = { CHROMIUM: (parameters: PlaywrightParameters) => parameters.browserName === 'chromium', @@ -127,7 +129,7 @@ const getExecutablePath = browserName => { return process.env.WKPATH; }; -defineWorkerFixture('defaultBrowserOptions', async ({ browserName, testConfig }, runTest) => { +defineWorkerFixture('defaultBrowserOptions', async ({ browserName }, runTest) => { const executablePath = getExecutablePath(browserName); if (executablePath) console.error(`Using executable at ${executablePath}`); @@ -136,7 +138,7 @@ defineWorkerFixture('defaultBrowserOptions', async ({ browserName, testConfig }, slowMo: options.SLOW_MO, headless: options.HEADLESS, executablePath, - artifactsPath: testConfig.outputDir, + artifactsPath: config.outputDir, }); }); @@ -261,9 +263,9 @@ defineWorkerFixture('expectedSSLError', async ({browserName, platform}, runTest) }); defineTestFixture('testOutputDir', async ({ testInfo }, runTest) => { - const relativePath = path.relative(testInfo.config.testDir, testInfo.file).replace(/\.spec\.[jt]s/, ''); + const relativePath = path.relative(config.testDir, testInfo.file).replace(/\.spec\.[jt]s/, ''); const sanitizedTitle = testInfo.title.replace(/[^\w\d]+/g, '_'); - const testOutputDir = path.join(testInfo.config.outputDir, relativePath, sanitizedTitle); + const testOutputDir = path.join(config.outputDir, relativePath, sanitizedTitle); await fs.promises.mkdir(testOutputDir, { recursive: true }); await runTest(testOutputDir); const files = await fs.promises.readdir(testOutputDir); @@ -274,9 +276,9 @@ defineTestFixture('testOutputDir', async ({ testInfo }, runTest) => { } }); -defineTestFixture('context', async ({ browser, testOutputDir, testConfig }, runTest) => { +defineTestFixture('context', async ({ browser, testOutputDir }, runTest) => { const contextOptions: BrowserContextOptions = { - relativeArtifactsPath: path.relative(testConfig.outputDir, testOutputDir), + relativeArtifactsPath: path.relative(config.outputDir, testOutputDir), recordTrace: !!options.TRACING, recordVideos: !!options.TRACING, }; diff --git a/test/screencast.spec.ts b/test/screencast.spec.ts index 89c11fcf05..188469a03d 100644 --- a/test/screencast.spec.ts +++ b/test/screencast.spec.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { options, playwrightFixtures } from './playwright.fixtures'; +import { options, playwrightFixtures, config } from './playwright.fixtures'; import type { Page, Browser } from '..'; import fs from 'fs'; @@ -32,11 +32,11 @@ type TestState = { const fixtures = playwrightFixtures.declareWorkerFixtures().declareTestFixtures(); const { it, expect, describe, defineTestFixture, defineWorkerFixture, overrideWorkerFixture } = fixtures; -overrideWorkerFixture('browser', async ({ browserType, defaultBrowserOptions, testConfig }, test) => { +overrideWorkerFixture('browser', async ({ browserType, defaultBrowserOptions }, test) => { const browser = await browserType.launch({ ...defaultBrowserOptions, // Make sure videos are stored on the same volume as the test output dir. - artifactsPath: path.join(testConfig.outputDir, '.screencast'), + artifactsPath: path.join(config.outputDir, '.screencast'), }); await test(browser); await browser.close(); @@ -63,8 +63,8 @@ defineTestFixture('relativeArtifactsPath', async ({ browserType, testInfo }, run await runTest(relativeArtifactsPath); }); -defineTestFixture('videoDir', async ({ relativeArtifactsPath, testConfig }, runTest) => { - await runTest(path.join(testConfig.outputDir, '.screencast', relativeArtifactsPath)); +defineTestFixture('videoDir', async ({ relativeArtifactsPath }, runTest) => { + await runTest(path.join(config.outputDir, '.screencast', relativeArtifactsPath)); }); function almostRed(r, g, b, alpha) { diff --git a/utils/doclint/check_public_api/test/test.js b/utils/doclint/check_public_api/test/test.js index d49700777d..296b288d2f 100644 --- a/utils/doclint/check_public_api/test/test.js +++ b/utils/doclint/check_public_api/test/test.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const fs = require('fs'); const path = require('path'); const playwright = require('../../../../'); const checkPublicAPI = require('..'); @@ -54,7 +55,7 @@ async function testLint(name) { const jsSources = await Source.readdir(dirPath, '.js'); const messages = await checkPublicAPI(page, mdSources, jsSources.concat(tsSources)); const errors = messages.map(message => message.text); - expect(errors.join('\n')).toMatchImage(path.join(dirPath, 'result.txt')); + expect(errors.join('\n')).toBe(fs.readFileSync(path.join(dirPath, 'result.txt')).toString()); }); } @@ -63,7 +64,7 @@ async function testMDBuilder(name) { const dirPath = path.join(__dirname, name); const sources = await Source.readdir(dirPath, '.md'); const {documentation} = await mdBuilder(page, sources); - expect(serialize(documentation)).toMatchImage(path.join(dirPath, 'result.txt')); + expect(serialize(documentation)).toBe(fs.readFileSync(path.join(dirPath, 'result.txt')).toString()); }); } @@ -73,7 +74,7 @@ async function testJSBuilder(name) { const jsSources = await Source.readdir(dirPath, '.js'); const tsSources = await Source.readdir(dirPath, '.ts'); const {documentation} = await jsBuilder.checkSources(jsSources.concat(tsSources)); - expect(serialize(documentation)).toMatchImage(path.join(dirPath, 'result.txt')); + expect(serialize(documentation)).toBe(fs.readFileSync(path.join(dirPath, 'result.txt')).toString()); }); }