chore: migrate to Folio 0.3.17 (#5115)

Folio 0.3.17 doesn't differentiate between expected and unexpected
flakiness, thus no longer supporting the "flaky" annotation.

Flaky specs are reported after run, but flaky specs do not render
test run as failed. We'll track flakiness separately via a dashboard.
This commit is contained in:
Andrey Lushnikov 2021-01-22 15:22:40 -08:00 committed by GitHub
parent 71d82a5a57
commit 8e7fc06839
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 15 additions and 45 deletions

6
package-lock.json generated
View file

@ -7699,9 +7699,9 @@
} }
}, },
"folio": { "folio": {
"version": "0.3.16", "version": "0.3.17",
"resolved": "https://registry.npmjs.org/folio/-/folio-0.3.16.tgz", "resolved": "https://registry.npmjs.org/folio/-/folio-0.3.17.tgz",
"integrity": "sha512-V/eKkMh88VTd6gL8SCN+++Y6UbjFvGvp3EfipbYzKIY1BS07L0uVh3CXZJGaaTT0/7gZqrnwYbfHpK7XPzrbvA==", "integrity": "sha512-aYbhifQ/A0E6ZwEUdBGU900+aW2R243pxkWF0GhYceQxFTbkoCLIEHegTOpo4VtNsNHyM3sI/Xz3DkmITiwRcg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",

View file

@ -78,7 +78,7 @@
"eslint-plugin-notice": "^0.9.10", "eslint-plugin-notice": "^0.9.10",
"eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-react-hooks": "^4.2.0",
"file-loader": "^6.1.0", "file-loader": "^6.1.0",
"folio": "=0.3.16", "folio": "=0.3.17",
"formidable": "^1.2.2", "formidable": "^1.2.2",
"html-webpack-plugin": "^4.4.1", "html-webpack-plugin": "^4.4.1",
"ncp": "^2.0.0", "ncp": "^2.0.0",

View file

@ -125,9 +125,7 @@ it('should authenticate', async ({contextFactory, contextOptions, server}) => {
await browser.close(); await browser.close();
}); });
it('should authenticate with empty password', (test, { browserName }) => { it('should authenticate with empty password', async ({contextFactory, contextOptions, server}) => {
test.flaky(browserName === 'firefox', 'Fails when runs afer previous test, see https://github.com/microsoft/playwright/issues/4789');
}, async ({contextFactory, contextOptions, server}) => {
server.setRoute('/target.html', async (req, res) => { server.setRoute('/target.html', async (req, res) => {
const auth = req.headers['proxy-authorization']; const auth = req.headers['proxy-authorization'];
if (!auth) { if (!auth) {
@ -228,9 +226,7 @@ it('should exclude patterns', (test, { browserName, headful }) => {
await browser.close(); await browser.close();
}); });
it('should use socks proxy', (test, { browserName, platform }) => { it('should use socks proxy', async ({ contextFactory, contextOptions, socksPort }) => {
test.flaky(platform === 'darwin' && browserName === 'webkit', 'Intermittent page.goto: The network connection was lost error on bots');
}, async ({ contextFactory, contextOptions, socksPort }) => {
const browser = await contextFactory({ const browser = await contextFactory({
...contextOptions, ...contextOptions,
proxy: { server: `socks5://localhost:${socksPort}` } proxy: { server: `socks5://localhost:${socksPort}` }
@ -241,9 +237,7 @@ it('should use socks proxy', (test, { browserName, platform }) => {
await browser.close(); await browser.close();
}); });
it('should use socks proxy in second page', (test, { browserName, platform }) => { it('should use socks proxy in second page', async ({ contextFactory, contextOptions, socksPort }) => {
test.flaky(platform === 'darwin' && browserName === 'webkit', 'Intermittent page.goto: The network connection was lost error on bots');
}, async ({ contextFactory, contextOptions, socksPort }) => {
const browser = await contextFactory({ const browser = await contextFactory({
...contextOptions, ...contextOptions,
proxy: { server: `socks5://localhost:${socksPort}` } proxy: { server: `socks5://localhost:${socksPort}` }

View file

@ -242,9 +242,7 @@ describe('connect', (suite, { mode }) => {
await page.close(); await page.close();
}); });
it('should save videos from remote browser', (test, {browserName, platform}) => { it('should save videos from remote browser', async ({browserType, remoteServer, testInfo}) => {
test.flaky(browserName === 'firefox' && platform === 'win32');
}, async ({browserType, remoteServer, testInfo}) => {
const remote = await browserType.connect({ wsEndpoint: remoteServer.wsEndpoint() }); const remote = await browserType.connect({ wsEndpoint: remoteServer.wsEndpoint() });
const videosPath = testInfo.outputPath(); const videosPath = testInfo.outputPath();
const context = await remote.newContext({ const context = await remote.newContext({

View file

@ -66,9 +66,7 @@ it('should support ignoreHTTPSErrors option', async ({httpsServer, launchPersist
expect(response.ok()).toBe(true); expect(response.ok()).toBe(true);
}); });
it('should support extraHTTPHeaders option', (test, { browserName, platform, headful }) => { it('should support extraHTTPHeaders option', async ({server, launchPersistent}) => {
test.flaky(browserName === 'firefox' && headful && platform === 'linux', 'Intermittent timeout on bots');
}, async ({server, launchPersistent}) => {
const {page} = await launchPersistent({extraHTTPHeaders: { foo: 'bar' }}); const {page} = await launchPersistent({extraHTTPHeaders: { foo: 'bar' }});
const [request] = await Promise.all([ const [request] = await Promise.all([
server.waitForRequest('/empty.html'), server.waitForRequest('/empty.html'),
@ -111,7 +109,6 @@ it('should restore state from userDataDir', (test, { browserName }) => {
it('should restore cookies from userDataDir', (test, { browserName }) => { it('should restore cookies from userDataDir', (test, { browserName }) => {
test.slow(); test.slow();
test.flaky(browserName === 'chromium');
}, async ({browserType, browserOptions, server, createUserDataDir}) => { }, async ({browserType, browserOptions, server, createUserDataDir}) => {
const userDataDir = await createUserDataDir(); const userDataDir = await createUserDataDir();
const browserContext = await browserType.launchPersistentContext(userDataDir, browserOptions); const browserContext = await browserType.launchPersistentContext(userDataDir, browserOptions);

View file

@ -34,9 +34,7 @@ it('should work for cross-process iframes', async ({ page, server }) => {
expect(await elementHandle.ownerFrame()).toBe(frame); expect(await elementHandle.ownerFrame()).toBe(frame);
}); });
it('should work for document', (test, { browserName, platform }) => { it('should work for document', async ({ page, server }) => {
test.flaky(platform === 'win32' && browserName === 'webkit');
}, async ({ page, server }) => {
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);
await attachFrame(page, 'frame1', server.EMPTY_PAGE); await attachFrame(page, 'frame1', server.EMPTY_PAGE);
const frame = page.frames()[1]; const frame = page.frames()[1];

View file

@ -362,9 +362,7 @@ describe('element screenshot', (suite, parameters) => {
await context.close(); await context.close();
}); });
it('should wait for element to stop moving', (test, { browserName, headful, platform }) => { it('should wait for element to stop moving', async ({ page, server }) => {
test.flaky(browserName === 'webkit' && headful && platform === 'linux');
}, async ({ page, server }) => {
await page.setViewportSize({ width: 500, height: 500 }); await page.setViewportSize({ width: 500, height: 500 });
await page.goto(server.PREFIX + '/grid.html'); await page.goto(server.PREFIX + '/grid.html');
const elementHandle = await page.$('.box:nth-of-type(3)'); const elementHandle = await page.$('.box:nth-of-type(3)');

View file

@ -46,7 +46,6 @@ const { it, describe, expect } = fixtures.build();
it('should close the browser when the node process closes', test => { it('should close the browser when the node process closes', test => {
test.slow(); test.slow();
test.flaky('Flakes at least on WebKit Linux');
}, async ({connectedRemoteServer, isWindows}) => { }, async ({connectedRemoteServer, isWindows}) => {
if (isWindows) if (isWindows)
execSync(`taskkill /pid ${connectedRemoteServer.child().pid} /T /F`); execSync(`taskkill /pid ${connectedRemoteServer.child().pid} /T /F`);

View file

@ -24,8 +24,6 @@ it('should have default url when launching browser', async ({browserType, browse
}); });
it('headless should be able to read cookies written by headful', (test, { browserName, platform }) => { it('headless should be able to read cookies written by headful', (test, { browserName, platform }) => {
test.flaky(platform === 'win32' && browserName === 'chromium');
test.flaky(browserName === 'firefox');
test.slow(); test.slow();
}, async ({browserType, browserOptions, server, createUserDataDir}) => { }, async ({browserType, browserOptions, server, createUserDataDir}) => {
// see https://github.com/microsoft/playwright/issues/717 // see https://github.com/microsoft/playwright/issues/717

View file

@ -29,7 +29,6 @@ function crash(page, toImpl, browserName) {
describe('', (suite, { browserName, platform, mode }) => { describe('', (suite, { browserName, platform, mode }) => {
suite.skip(mode !== 'default' && browserName !== 'chromium'); suite.skip(mode !== 'default' && browserName !== 'chromium');
suite.flaky(browserName === 'firefox' && platform === 'win32');
const isBigSur = platform === 'darwin' && parseInt(os.release(), 10) >= 20; const isBigSur = platform === 'darwin' && parseInt(os.release(), 10) >= 20;
suite.fixme(isBigSur && browserName === 'webkit', 'Timing out after roll'); suite.fixme(isBigSur && browserName === 'webkit', 'Timing out after roll');
}, () => { }, () => {

View file

@ -27,9 +27,7 @@ function dimensions() {
}; };
} }
it('should click the document', (test, { browserName, platform }) => { it('should click the document', async ({page, server}) => {
test.flaky(browserName === 'firefox' && platform === 'win32', 'Occasionally times out on options.FIREFOX on Windows: https://github.com/microsoft/playwright/pull/1911/checks?check_run_id=607149016');
}, async ({page, server}) => {
await page.evaluate(() => { await page.evaluate(() => {
window['clickPromise'] = new Promise(resolve => { window['clickPromise'] = new Promise(resolve => {
document.addEventListener('click', event => { document.addEventListener('click', event => {

View file

@ -16,7 +16,6 @@
*/ */
import { it, expect, describe } from './fixtures'; import { it, expect, describe } from './fixtures';
import * as os from 'os';
it('should work', async ({page, server}) => { it('should work', async ({page, server}) => {
await page.route('**/*', route => route.continue()); await page.route('**/*', route => route.continue());
@ -97,10 +96,7 @@ it('should amend method on main request', async ({page, server}) => {
expect((await request).method).toBe('POST'); expect((await request).method).toBe('POST');
}); });
describe('', (suite, { browserName, platform }) => { describe('', () => {
const isBigSur = platform === 'darwin' && parseInt(os.release(), 10) >= 20;
suite.flaky(isBigSur && browserName === 'webkit', 'Flaky after roll');
}, () => {
it('should amend post data', async ({page, server}) => { it('should amend post data', async ({page, server}) => {
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);
await page.route('**/*', route => { await page.route('**/*', route => {

View file

@ -104,7 +104,6 @@ describe('permissions', (suite, { browserName }) => {
it('should trigger permission onchange', (test, { browserName, headful, platform }) => { it('should trigger permission onchange', (test, { browserName, headful, platform }) => {
test.fail(browserName === 'webkit'); test.fail(browserName === 'webkit');
test.fail(browserName === 'chromium' && headful); test.fail(browserName === 'chromium' && headful);
test.flaky(browserName === 'firefox' && platform === 'linux');
}, async ({page, server, context}) => { }, async ({page, server, context}) => {
// TODO: flaky // TODO: flaky
// - Linux: https://github.com/microsoft/playwright/pull/1790/checks?check_run_id=587327883 // - Linux: https://github.com/microsoft/playwright/pull/1790/checks?check_run_id=587327883

View file

@ -137,9 +137,7 @@ it('should exclude patterns', (test, { browserName, headful }) => {
await browser.close(); await browser.close();
}); });
it('should use socks proxy', (test, { browserName, platform }) => { it('should use socks proxy', async ({ browserType, browserOptions, socksPort }) => {
test.flaky(platform === 'darwin' && browserName === 'webkit', 'Intermittent page.goto: The network connection was lost error on bots');
}, async ({ browserType, browserOptions, socksPort }) => {
const browser = await browserType.launch({ const browser = await browserType.launch({
...browserOptions, ...browserOptions,
proxy: { server: `socks5://localhost:${socksPort}` } proxy: { server: `socks5://localhost:${socksPort}` }
@ -150,9 +148,7 @@ it('should use socks proxy', (test, { browserName, platform }) => {
await browser.close(); await browser.close();
}); });
it('should use socks proxy in second page', (test, { browserName, platform }) => { it('should use socks proxy in second page', async ({ browserType, browserOptions, socksPort }) => {
test.flaky(platform === 'darwin' && browserName === 'webkit', 'Intermittent page.goto: The network connection was lost error on bots');
}, async ({ browserType, browserOptions, socksPort }) => {
const browser = await browserType.launch({ const browser = await browserType.launch({
...browserOptions, ...browserOptions,
proxy: { server: `socks5://localhost:${socksPort}` } proxy: { server: `socks5://localhost:${socksPort}` }