From 103f8ddd06d81beebca13ced8a1589d5679e5457 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Wed, 23 Jun 2021 11:08:35 +0200 Subject: [PATCH] Revert "chore: update eslint config (#6840)" partly (#7268) This reverts commit ec7d37d92f4b6b75039d2343414237d2dbc84847. --- .eslintignore | 25 ++++++++++--------- src/client/network.ts | 9 +++---- src/dispatchers/networkDispatchers.ts | 2 +- src/server/browserType.ts | 2 +- src/server/chromium/chromium.ts | 5 ++-- src/server/chromium/crNetworkManager.ts | 7 +++--- src/server/electron/electron.ts | 2 +- src/server/firefox/ffNetworkManager.ts | 5 ++-- src/server/network.ts | 4 +-- src/server/snapshot/snapshotRenderer.ts | 2 +- src/server/supplements/recorder/javascript.ts | 4 +-- src/server/webkit/webkit.ts | 2 -- src/server/webkit/wkInterceptableRequest.ts | 2 +- src/server/webkit/wkPage.ts | 2 +- src/test/golden.ts | 1 + src/test/index.ts | 2 +- src/test/loader.ts | 2 +- src/test/reporters/.eslintrc.json | 5 ++++ src/test/reporters/list.ts | 1 + src/test/runner.ts | 1 + src/utils/utils.ts | 2 +- tests/chromium/chromium.spec.ts | 2 +- tests/inspector/cli-codegen-test.spec.ts | 1 - tests/page/page-drag.spec.ts | 2 +- tests/page/page-evaluate.spec.ts | 2 +- tests/page/page-request-intercept.spec.ts | 6 ++--- .../playwright-test-fixtures.ts | 2 +- tests/playwright-test/playwright.spec.ts | 2 +- 28 files changed, 55 insertions(+), 49 deletions(-) create mode 100644 src/test/reporters/.eslintrc.json diff --git a/.eslintignore b/.eslintignore index 5f39e7ceb0..9c8e091091 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,16 +1,17 @@ -# Ignore everything by default -**/* - -# Check ts files in src/ -!src -!src/**/*.ts -src/**/*.d.ts +test/assets/modernizr.js +lib/ +*.js src/generated/* src/server/chromium/protocol.ts src/server/firefox/protocol.ts src/server/webkit/protocol.ts - -# Check ts files in tests/ -!tests -!tests/**/*.ts -tests/**/*.d.ts +src/third_party/ +/types/* +/index.d.ts +utils/generate_types/overrides.d.ts +utils/generate_types/test/test.ts +node_modules/ +browser_patches/*/checkout/ +browser_patches/chromium/output/ +**/*.d.ts +output/ diff --git a/src/client/network.ts b/src/client/network.ts index 146aa76600..02b620a0ab 100644 --- a/src/client/network.ts +++ b/src/client/network.ts @@ -26,7 +26,6 @@ import { Events } from './events'; import { Page } from './page'; import { Waiter } from './waiter'; import * as api from '../../types/types'; -import { Serializable } from '../../types/structs'; export type NetworkCookie = { name: string, @@ -303,7 +302,7 @@ export class Route extends ChannelOwner { + async intercept(options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer, interceptResponse?: boolean } = {}): Promise { return await this._continue('route.intercept', options, true); } @@ -311,9 +310,9 @@ export class Route extends ChannelOwner; - async _continue(apiName: string, options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer }, interceptResponse: InterceptResponse) : Promise; - async _continue(apiName: string, options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer }, interceptResponse: boolean) : Promise { + async _continue(apiName: string, options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer }, interceptResponse: NotInterceptResponse): Promise; + async _continue(apiName: string, options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer }, interceptResponse: InterceptResponse): Promise; + async _continue(apiName: string, options: { url?: string, method?: string, headers?: Headers, postData?: string | Buffer }, interceptResponse: boolean): Promise { return await this._wrapApiCall(apiName, async (channel: channels.RouteChannel) => { const postDataBuffer = isString(options.postData) ? Buffer.from(options.postData, 'utf8') : options.postData; const result = await channel.continue({ diff --git a/src/dispatchers/networkDispatchers.ts b/src/dispatchers/networkDispatchers.ts index 1cc5784fc1..ad526c93d2 100644 --- a/src/dispatchers/networkDispatchers.ts +++ b/src/dispatchers/networkDispatchers.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { InterceptedResponse, Request, Response, Route, WebSocket } from '../server/network'; +import { Request, Response, Route, WebSocket } from '../server/network'; import * as channels from '../protocol/channels'; import { Dispatcher, DispatcherScope, lookupNullableDispatcher, existingDispatcher } from './dispatcher'; import { FrameDispatcher } from './frameDispatcher'; diff --git a/src/server/browserType.ts b/src/server/browserType.ts index 627a1dde8e..4579b196d9 100644 --- a/src/server/browserType.ts +++ b/src/server/browserType.ts @@ -144,7 +144,7 @@ export abstract class BrowserType extends SdkObject { await fs.promises.mkdir(options.tracesDir, { recursive: true }); const artifactsDir = await fs.promises.mkdtemp(ARTIFACTS_FOLDER); - tempDirectories.push(artifactsDir); + tempDirectories.push(artifactsDir); if (!userDataDir) { userDataDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), `playwright_${this._name}dev_profile-`)); diff --git a/src/server/chromium/chromium.ts b/src/server/chromium/chromium.ts index 1cebdb651f..0fe9172c9f 100644 --- a/src/server/chromium/chromium.ts +++ b/src/server/chromium/chromium.ts @@ -72,7 +72,7 @@ export class Chromium extends BrowserType { headersMap = headersArrayToObject(options.headers, false); const artifactsDir = await fs.promises.mkdtemp(ARTIFACTS_FOLDER); - + const chromeTransport = await WebSocketTransport.connect(progress, await urlToWSEndpoint(endpointURL), headersMap); const browserProcess: BrowserProcess = { close: async () => { @@ -229,9 +229,10 @@ async function urlToWSEndpoint(endpointURL: string) { const httpURL = endpointURL.endsWith('/') ? `${endpointURL}json/version/` : `${endpointURL}/json/version/`; const json = await new Promise((resolve, reject) => { http.get(httpURL, resp => { - if (resp.statusCode! < 200 || resp.statusCode! >= 400) + if (resp.statusCode! < 200 || resp.statusCode! >= 400) { reject(new Error(`Unexpected status ${resp.statusCode} when connecting to ${httpURL}.\n` + `This does not look like a DevTools server, try connecting via ws://.`)); + } let data = ''; resp.on('data', chunk => data += chunk); resp.on('end', () => resolve(data)); diff --git a/src/server/chromium/crNetworkManager.ts b/src/server/chromium/crNetworkManager.ts index 8e702edba0..835d644654 100644 --- a/src/server/chromium/crNetworkManager.ts +++ b/src/server/chromium/crNetworkManager.ts @@ -187,7 +187,7 @@ export class CRNetworkManager { return; } request._onInterceptedResponse!(event); - return + return; } const requestId = event.networkId; @@ -310,13 +310,14 @@ export class CRNetworkManager { }; } const response = new network.Response(request.request, responsePayload.status, responsePayload.statusText, headersObjectToArray(responsePayload.headers), timing, getResponseBody); - if (responsePayload?.remoteIPAddress && typeof responsePayload?.remotePort === 'number') + if (responsePayload?.remoteIPAddress && typeof responsePayload?.remotePort === 'number') { response._serverAddrFinished({ ipAddress: responsePayload.remoteIPAddress, port: responsePayload.remotePort, }); - else + } else { response._serverAddrFinished(); + } response._securityDetailsFinished({ protocol: responsePayload?.securityDetails?.protocol, subjectName: responsePayload?.securityDetails?.subjectName, diff --git a/src/server/electron/electron.ts b/src/server/electron/electron.ts index 825d8fb2f7..a1535e97c2 100644 --- a/src/server/electron/electron.ts +++ b/src/server/electron/electron.ts @@ -124,7 +124,7 @@ export class Electron extends SdkObject { } const artifactsDir = await fs.promises.mkdtemp(ARTIFACTS_FOLDER); - + const browserLogsCollector = new RecentLogsCollector(); const { launchedProcess, gracefullyClose, kill } = await launchProcess({ executablePath: options.executablePath || require('electron/index.js'), diff --git a/src/server/firefox/ffNetworkManager.ts b/src/server/firefox/ffNetworkManager.ts index 5818256d4b..dca3374a7d 100644 --- a/src/server/firefox/ffNetworkManager.ts +++ b/src/server/firefox/ffNetworkManager.ts @@ -89,13 +89,12 @@ export class FFNetworkManager { responseStart: this._relativeTiming(event.timing.responseStart), }; const response = new network.Response(request.request, event.status, event.statusText, event.headers, timing, getResponseBody); - if (event?.remoteIPAddress && typeof event?.remotePort === 'number') + if (event?.remoteIPAddress && typeof event?.remotePort === 'number') { response._serverAddrFinished({ ipAddress: event.remoteIPAddress, port: event.remotePort, }); - else - response._serverAddrFinished() + } else {response._serverAddrFinished();} response._securityDetailsFinished({ protocol: event?.securityDetails?.protocol, subjectName: event?.securityDetails?.subjectName, diff --git a/src/server/network.ts b/src/server/network.ts index 99cdf0662a..24411916c2 100644 --- a/src/server/network.ts +++ b/src/server/network.ts @@ -258,7 +258,7 @@ export class Route extends SdkObject { throw new Error('New URL must have same protocol as overridden URL'); } this._response = await this._delegate.continue(overrides); - return this._response + return this._response; } async responseBody(): Promise { @@ -285,7 +285,7 @@ export type ResourceTiming = { export type RemoteAddr = { ipAddress: string; port: number; -} +}; export type SecurityDetails = { protocol?: string; diff --git a/src/server/snapshot/snapshotRenderer.ts b/src/server/snapshot/snapshotRenderer.ts index d6d9997201..c44304608f 100644 --- a/src/server/snapshot/snapshotRenderer.ts +++ b/src/server/snapshot/snapshotRenderer.ts @@ -162,7 +162,7 @@ function snapshotScript() { adoptedSheets.push(sheet); } (root as any).adoptedStyleSheets = adoptedSheets; - } + } }; visit(document); diff --git a/src/server/supplements/recorder/javascript.ts b/src/server/supplements/recorder/javascript.ts index 69010c894c..bef65fafa7 100644 --- a/src/server/supplements/recorder/javascript.ts +++ b/src/server/supplements/recorder/javascript.ts @@ -91,9 +91,9 @@ export class JavaScriptLanguageGenerator implements LanguageGenerator { const suffix = (signals.waitForNavigation || emitPromiseAll) ? '' : ';'; formatter.add(`${prefix}${subject}.${actionCall}${suffix}`); - if (emitPromiseAll) + if (emitPromiseAll) { formatter.add(`]);`); - else if (signals.assertNavigation) { + } else if (signals.assertNavigation) { if (this._isTest) formatter.add(` expect(${pageAlias}.url()).toBe(${quote(signals.assertNavigation.url)});`); else diff --git a/src/server/webkit/webkit.ts b/src/server/webkit/webkit.ts index 2003cacb0d..dbf7bc13f1 100644 --- a/src/server/webkit/webkit.ts +++ b/src/server/webkit/webkit.ts @@ -23,8 +23,6 @@ import { BrowserType } from '../browserType'; import { ConnectionTransport } from '../transport'; import { BrowserOptions, PlaywrightOptions } from '../browser'; import * as types from '../types'; -import * as fs from 'fs'; -import { assert } from '../../utils/utils'; export class WebKit extends BrowserType { constructor(playwrightOptions: PlaywrightOptions) { diff --git a/src/server/webkit/wkInterceptableRequest.ts b/src/server/webkit/wkInterceptableRequest.ts index 1bd773356e..f3ad7ae2f3 100644 --- a/src/server/webkit/wkInterceptableRequest.ts +++ b/src/server/webkit/wkInterceptableRequest.ts @@ -100,7 +100,7 @@ export class WKInterceptableRequest implements network.RouteDelegate { mimeType = contentType.split(';')[0].trim(); const isResponseIntercepted = await this._responseInterceptedPromise; - await this._session.sendMayFail(isResponseIntercepted ? 'Network.interceptWithResponse' :'Network.interceptRequestWithResponse', { + await this._session.sendMayFail(isResponseIntercepted ? 'Network.interceptWithResponse' : 'Network.interceptRequestWithResponse', { requestId: this._requestId, status: response.status, statusText: network.STATUS_TEXTS[String(response.status)], diff --git a/src/server/webkit/wkPage.ts b/src/server/webkit/wkPage.ts index 16217357f5..9218cc2758 100644 --- a/src/server/webkit/wkPage.ts +++ b/src/server/webkit/wkPage.ts @@ -673,7 +673,7 @@ export class WKPage implements PageDelegate { this._updateState('Network.addInterception', { url: '.*', stage: 'request', isRegex: true }), ]; if (this._needsResponseInterception) - this._updateState('Network.addInterception', { url: '.*', stage: 'response', isRegex: true }) + this._updateState('Network.addInterception', { url: '.*', stage: 'response', isRegex: true }); await Promise.all(promises); } diff --git a/src/test/golden.ts b/src/test/golden.ts index ada8df22ea..43d3053790 100644 --- a/src/test/golden.ts +++ b/src/test/golden.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +/* eslint-disable no-console */ import colors from 'colors/safe'; import fs from 'fs'; import path from 'path'; diff --git a/src/test/index.ts b/src/test/index.ts index a88ef9f02e..2fd820706c 100644 --- a/src/test/index.ts +++ b/src/test/index.ts @@ -17,7 +17,7 @@ import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; -import type { LaunchOptions, BrowserContextOptions, Page, BrowserContext } from '../../types/types'; +import type { LaunchOptions, BrowserContextOptions, Page } from '../../types/types'; import type { TestType, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, FullConfig, TestInfo } from '../../types/test'; import { rootTestType } from './testType'; import { createGuid, removeFolders } from '../utils/utils'; diff --git a/src/test/loader.ts b/src/test/loader.ts index 84c1027097..2c44b0c40a 100644 --- a/src/test/loader.ts +++ b/src/test/loader.ts @@ -190,7 +190,7 @@ export class Loader { let testDir = takeFirst(projectConfig.testDir, rootDir); if (!path.isAbsolute(testDir)) testDir = path.resolve(rootDir, testDir); - let outputDir = takeFirst(this._configOverrides.outputDir, projectConfig.outputDir, this._config.outputDir, path.resolve(process.cwd(), 'test-results')) + let outputDir = takeFirst(this._configOverrides.outputDir, projectConfig.outputDir, this._config.outputDir, path.resolve(process.cwd(), 'test-results')); if (!path.isAbsolute(outputDir)) outputDir = path.resolve(rootDir, outputDir); const fullProject: FullProject = { diff --git a/src/test/reporters/.eslintrc.json b/src/test/reporters/.eslintrc.json new file mode 100644 index 0000000000..f919272e77 --- /dev/null +++ b/src/test/reporters/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "no-console": "off" + } +} \ No newline at end of file diff --git a/src/test/reporters/list.ts b/src/test/reporters/list.ts index bfb3ed34cb..d185fef36d 100644 --- a/src/test/reporters/list.ts +++ b/src/test/reporters/list.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +/* eslint-disable no-console */ import colors from 'colors/safe'; // @ts-ignore import milliseconds from 'ms'; diff --git a/src/test/runner.ts b/src/test/runner.ts index 6b190808d1..35c9ef5ad1 100644 --- a/src/test/runner.ts +++ b/src/test/runner.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +/* eslint-disable no-console */ import rimraf from 'rimraf'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index b5547bbe45..03b1e7028f 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -87,7 +87,7 @@ export function fetchData(url: string): Promise { type OnProgressCallback = (downloadedBytes: number, totalBytes: number) => void; type DownloadFileLogger = (message: string) => void; -export function downloadFile(url: string, destinationPath: string, options : {progressCallback?: OnProgressCallback, log?: DownloadFileLogger} = {}): Promise<{error: any}> { +export function downloadFile(url: string, destinationPath: string, options: {progressCallback?: OnProgressCallback, log?: DownloadFileLogger} = {}): Promise<{error: any}> { const { progressCallback, log = () => {}, diff --git a/tests/chromium/chromium.spec.ts b/tests/chromium/chromium.spec.ts index 169039f2ff..23e83a2daf 100644 --- a/tests/chromium/chromium.spec.ts +++ b/tests/chromium/chromium.spec.ts @@ -318,7 +318,7 @@ test('should report an expected error when the endpointURL returns a non-expecte }); await expect(browserType.connectOverCDP({ endpointURL: server.PREFIX, - })).rejects.toThrowError(`browserType.connectOverCDP: Unexpected status 404 when connecting to ${server.PREFIX}/json/version/`) + })).rejects.toThrowError(`browserType.connectOverCDP: Unexpected status 404 when connecting to ${server.PREFIX}/json/version/`); }); test('should report an expected error when the endpoint URL JSON webSocketDebuggerUrl is undefined', async ({ browserType, server }) => { diff --git a/tests/inspector/cli-codegen-test.spec.ts b/tests/inspector/cli-codegen-test.spec.ts index 8bcba9cc6b..a61bacfc15 100644 --- a/tests/inspector/cli-codegen-test.spec.ts +++ b/tests/inspector/cli-codegen-test.spec.ts @@ -78,7 +78,6 @@ test('test', async ({ page }) => {`; test('should print load storageState', async ({ browserName, channel, runCLI }, testInfo) => { const loadFileName = testInfo.outputPath('load.json'); - const saveFileName = testInfo.outputPath('save.json'); await fs.promises.writeFile(loadFileName, JSON.stringify({ cookies: [], origins: [] }), 'utf8'); const cli = runCLI([`--load-storage=${loadFileName}`, emptyHTML]); const expectedResult = `const { test, expect } = require('@playwright/test'); diff --git a/tests/page/page-drag.spec.ts b/tests/page/page-drag.spec.ts index 430af6a7ed..9978a03e07 100644 --- a/tests/page/page-drag.spec.ts +++ b/tests/page/page-drag.spec.ts @@ -226,7 +226,7 @@ it.describe('Drag and drop', () => { await page.mouse.up(); route.abort(); expect(await page.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target - }) + }); async function trackEvents(target: ElementHandle) { const eventsHandle = await target.evaluateHandle(target => { diff --git a/tests/page/page-evaluate.spec.ts b/tests/page/page-evaluate.spec.ts index 78f05fcd27..cd0d971672 100644 --- a/tests/page/page-evaluate.spec.ts +++ b/tests/page/page-evaluate.spec.ts @@ -558,7 +558,7 @@ it('should not use Array.prototype.toJSON when evaluating', async ({ page }) => it('should not add a toJSON property to newly created Arrays after evaluation', async ({ page, browserName }) => { await page.evaluate(() => []); - const hasToJSONProperty = await page.evaluate(() => "toJSON" in []); + const hasToJSONProperty = await page.evaluate(() => 'toJSON' in []); expect(hasToJSONProperty).toEqual(false); }); diff --git a/tests/page/page-request-intercept.spec.ts b/tests/page/page-request-intercept.spec.ts index 78ad66f76a..f0ff34d894 100644 --- a/tests/page/page-request-intercept.spec.ts +++ b/tests/page/page-request-intercept.spec.ts @@ -15,9 +15,9 @@ * limitations under the License. */ - import { fail } from 'assert'; +import { fail } from 'assert'; import type { Route } from '../../index'; - import { test as it, expect } from './pageTest'; +import { test as it, expect } from './pageTest'; it('should fulfill intercepted response', async ({page, server, browserName}) => { it.fixme(browserName === 'firefox'); @@ -53,7 +53,7 @@ it('should throw on continue after intercept', async ({page, server, browserName await route.continue(); fail('did not throw'); } catch (e) { - expect(e.message).toContain('Cannot call continue after response interception!') + expect(e.message).toContain('Cannot call continue after response interception!'); } }); diff --git a/tests/playwright-test/playwright-test-fixtures.ts b/tests/playwright-test/playwright-test-fixtures.ts index c11ef3b832..e04282bb71 100644 --- a/tests/playwright-test/playwright-test-fixtures.ts +++ b/tests/playwright-test/playwright-test-fixtures.ts @@ -126,7 +126,7 @@ async function runPlaywrightTest(baseDir: string, params: any, env: Env): Promis const reportFile = path.join(outputDir, 'report.json'); const args = [path.join(__dirname, '..', '..', 'lib', 'cli', 'cli.js'), 'test']; if (!params.usesCustomOutputDir) - args.push('--output=' + outputDir) + args.push('--output=' + outputDir); args.push( '--reporter=dot,json', '--workers=2', diff --git a/tests/playwright-test/playwright.spec.ts b/tests/playwright-test/playwright.spec.ts index 6923ec3d60..aaea69915c 100644 --- a/tests/playwright-test/playwright.spec.ts +++ b/tests/playwright-test/playwright.spec.ts @@ -28,7 +28,7 @@ export class VideoPlayer { videoHeight: number; constructor(fileName: string) { - var output = spawnSync(ffmpeg, ['-i', fileName, '-r', '25', `${fileName}-%03d.png`]).stderr.toString(); + const output = spawnSync(ffmpeg, ['-i', fileName, '-r', '25', `${fileName}-%03d.png`]).stderr.toString(); const lines = output.split('\n'); const streamLine = lines.find(l => l.trim().startsWith('Stream #0:0')); const resolutionMatch = streamLine.match(/, (\d+)x(\d+),/);