chore: roll @playwright/test to 0.9.6 (#3977)

This commit is contained in:
Pavel Feldman 2020-09-25 12:52:06 -07:00 committed by GitHub
parent 49bcf6efce
commit 970b011cba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 72 additions and 140 deletions

173
package-lock.json generated
View file

@ -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",

View file

@ -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",

View file

@ -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,
};

View file

@ -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<WorkerState>().declareTestFixtures<TestState>();
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) {

View file

@ -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());
});
}