From daf6c401603dcb5834d8b945aafa1e9bdf3467e9 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Sun, 4 Aug 2024 13:25:42 +0200 Subject: [PATCH] test: have typed playwright-core/* imports --- packages/playwright-core/src/utils/network.ts | 1 - tests/android/device.spec.ts | 3 +- tests/config/browserTest.ts | 2 +- tests/config/comparator.ts | 2 +- tests/config/serverFixtures.ts | 2 +- tests/config/testserver/index.ts | 2 +- tests/config/utils.ts | 4 +- tests/electron/globalSetup.ts | 2 +- tests/global.d.ts | 39 +++++++++++++++++++ tests/image_tools/fixtures.spec.ts | 2 +- tests/image_tools/utils.ts | 2 +- tests/installation/globalSetup.ts | 3 +- tests/installation/npmTest.ts | 3 +- tests/installation/registry.ts | 3 +- tests/library/browsertype-connect.spec.ts | 4 +- .../library/chromium/connect-over-cdp.spec.ts | 2 +- tests/library/client-certificates.spec.ts | 2 +- tests/library/component-parser.spec.ts | 2 +- tests/library/css-parser.spec.ts | 2 +- tests/library/debug-controller.spec.ts | 2 +- .../events/check-listener-leaks.spec.ts | 2 +- tests/library/global-fetch.spec.ts | 4 +- tests/library/har.spec.ts | 2 +- tests/library/headful.spec.ts | 2 +- tests/library/locator-generator.spec.ts | 38 +++++++++--------- tests/library/screenshot.spec.ts | 2 +- tests/library/tracing.spec.ts | 2 +- tests/library/video.spec.ts | 4 +- tests/page/interception.spec.ts | 2 +- tests/page/page-leaks.spec.ts | 4 +- tests/playwright-test/expect.spec.ts | 2 +- .../playwright-test-fixtures.ts | 2 +- tests/playwright-test/reporter-blob.spec.ts | 2 +- tests/playwright-test/reporter-html.spec.ts | 2 +- .../to-have-screenshot.spec.ts | 2 +- .../ui-mode-test-progress.spec.ts | 2 +- tests/playwright-test/web-server.spec.ts | 2 +- tests/tsconfig.json | 3 +- 38 files changed, 100 insertions(+), 63 deletions(-) create mode 100644 tests/global.d.ts diff --git a/packages/playwright-core/src/utils/network.ts b/packages/playwright-core/src/utils/network.ts index b9bc2c0f06..d48c1d30ba 100644 --- a/packages/playwright-core/src/utils/network.ts +++ b/packages/playwright-core/src/utils/network.ts @@ -170,7 +170,6 @@ export function createHttpsServer(...args: any[]): https.Server { return server; } -export function createHttp2Server( onRequestHandler?: (request: http2.Http2ServerRequest, response: http2.Http2ServerResponse) => void,): http2.Http2SecureServer; export function createHttp2Server(options: http2.SecureServerOptions, onRequestHandler?: (request: http2.Http2ServerRequest, response: http2.Http2ServerResponse) => void,): http2.Http2SecureServer; export function createHttp2Server(...args: any[]): http2.Http2SecureServer { const server = http2.createSecureServer(...args); diff --git a/tests/android/device.spec.ts b/tests/android/device.spec.ts index 1288e7320b..953d9fed4a 100644 --- a/tests/android/device.spec.ts +++ b/tests/android/device.spec.ts @@ -16,7 +16,8 @@ import fs from 'fs'; import { join } from 'path'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; + import { androidTest as test, expect } from './androidTest'; test('androidDevice.shell', async function({ androidDevice }) { diff --git a/tests/config/browserTest.ts b/tests/config/browserTest.ts index 01b574f105..bf26e05b5a 100644 --- a/tests/config/browserTest.ts +++ b/tests/config/browserTest.ts @@ -19,7 +19,7 @@ import * as os from 'os'; import type { PageTestFixtures, PageWorkerFixtures } from '../page/pageTestApi'; import * as path from 'path'; import type { BrowserContext, BrowserContextOptions, BrowserType, Page } from 'playwright-core'; -import { removeFolders } from '../../packages/playwright-core/lib/utils/fileUtils'; +import { removeFolders } from '@playwright-core/utils'; import { baseTest } from './baseTest'; import { type RemoteServerOptions, type PlaywrightServer, RunServer, RemoteServer } from './remoteServer'; import type { Log } from '../../packages/trace/src/har'; diff --git a/tests/config/comparator.ts b/tests/config/comparator.ts index 3376da3e80..a271a07caf 100644 --- a/tests/config/comparator.ts +++ b/tests/config/comparator.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { getComparator } from '../../packages/playwright-core/lib/utils/comparators'; +import { getComparator } from '@playwright-core/utils'; const pngComparator = getComparator('image/png'); type ComparatorResult = { diff?: Buffer; errorMessage: string; } | null; diff --git a/tests/config/serverFixtures.ts b/tests/config/serverFixtures.ts index a156f2ac5f..e1abf528ed 100644 --- a/tests/config/serverFixtures.ts +++ b/tests/config/serverFixtures.ts @@ -20,7 +20,7 @@ import { TestServer } from './testserver'; import { TestProxy } from './proxy'; import type { SocksSocketRequestedPayload } from '../../packages/playwright-core/src/common/socksProxy'; -import { SocksProxy } from '../../packages/playwright-core/lib/common/socksProxy'; +import { SocksProxy } from '@playwright-core/common/socksProxy'; export type ServerWorkerOptions = { loopback?: string; diff --git a/tests/config/testserver/index.ts b/tests/config/testserver/index.ts index 0596960f6b..d627b5a478 100644 --- a/tests/config/testserver/index.ts +++ b/tests/config/testserver/index.ts @@ -24,7 +24,7 @@ import url from 'url'; import util from 'util'; import ws from 'ws'; import zlib, { gzip } from 'zlib'; -import { createHttpServer, createHttpsServer } from '../../../packages/playwright-core/lib/utils/network'; +import { createHttpServer, createHttpsServer } from '@playwright-core/utils'; const fulfillSymbol = Symbol('fulfil callback'); const rejectSymbol = Symbol('reject callback'); diff --git a/tests/config/utils.ts b/tests/config/utils.ts index 88cff686b3..c274ef0522 100644 --- a/tests/config/utils.ts +++ b/tests/config/utils.ts @@ -15,10 +15,10 @@ */ import type { Frame, Page } from 'playwright-core'; -import { ZipFile } from '../../packages/playwright-core/lib/utils/zipFile'; +import { ZipFile } from '@playwright-core/utils'; import type { TraceModelBackend } from '../../packages/trace-viewer/src/traceModel'; import type { StackFrame } from '../../packages/protocol/src/channels'; -import { parseClientSideCallMetadata } from '../../packages/playwright-core/lib/utils/isomorphic/traceUtils'; +import { parseClientSideCallMetadata } from '@playwright-core/utils/isomorphic/traceUtils'; import { TraceModel } from '../../packages/trace-viewer/src/traceModel'; import type { ActionTreeItem } from '../../packages/trace-viewer/src/ui/modelUtil'; import { buildActionTree, MultiTraceModel } from '../../packages/trace-viewer/src/ui/modelUtil'; diff --git a/tests/electron/globalSetup.ts b/tests/electron/globalSetup.ts index c50f710c96..7313369bd9 100644 --- a/tests/electron/globalSetup.ts +++ b/tests/electron/globalSetup.ts @@ -15,7 +15,7 @@ */ import assert from 'assert'; -import { spawnAsync } from '../../packages/playwright-core/lib/utils/spawnAsync'; +import { spawnAsync } from '@playwright-core/utils'; export default async () => { const result = await spawnAsync('npx', ['electron', require.resolve('./electron-print-chromium-version.js'), '--no-sandbox'], { diff --git a/tests/global.d.ts b/tests/global.d.ts new file mode 100644 index 0000000000..a2a9df03e5 --- /dev/null +++ b/tests/global.d.ts @@ -0,0 +1,39 @@ +declare module '@playwright-core/utils' { + const content: typeof import('../packages/playwright-core/src/utils'); + export = content; +} + +declare module '@playwright-core/utilsBundle' { + const content: typeof import('../packages/playwright-core/src/utilsBundle'); + export = content; +} + +declare module '@playwright-core/common/socksProxy' { + const content: typeof import('../packages/playwright-core/src/common/socksProxy'); + export = content; +} + +declare module '@playwright-core/utils/isomorphic/traceUtils' { + const content: typeof import('../packages/playwright-core/src/utils/isomorphic/traceUtils'); + export = content; +} + +declare module '@playwright-core/utils/isomorphic/locatorGenerators' { + const content: typeof import('../packages/playwright-core/src/utils/isomorphic/locatorGenerators'); + export = content; +} + +declare module '@playwright-core/utils/isomorphic/locatorParser' { + const content: typeof import('../packages/playwright-core/src/utils/isomorphic/locatorParser'); + export = content; +} + +declare module '@playwright-core/utils/isomorphic/cssParser' { + const content: typeof import('../packages/playwright-core/src/utils/isomorphic/cssParser'); + export = content; +} + +declare module '@playwright-core/utils/isomorphic/selectorParser' { + const content: typeof import('../packages/playwright-core/src/utils/isomorphic/selectorParser'); + export = content; +} \ No newline at end of file diff --git a/tests/image_tools/fixtures.spec.ts b/tests/image_tools/fixtures.spec.ts index d67a279715..73956ef7a0 100644 --- a/tests/image_tools/fixtures.spec.ts +++ b/tests/image_tools/fixtures.spec.ts @@ -15,7 +15,7 @@ */ import { test, expect } from '../playwright-test/stable-test-runner'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import { compare } from 'playwright-core/lib/image_tools/compare'; import fs from 'fs'; import path from 'path'; diff --git a/tests/image_tools/utils.ts b/tests/image_tools/utils.ts index 2587411d61..31d7a39055 100644 --- a/tests/image_tools/utils.ts +++ b/tests/image_tools/utils.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import { ImageChannel } from 'playwright-core/lib/image_tools/imageChannel'; // mulberry32 diff --git a/tests/installation/globalSetup.ts b/tests/installation/globalSetup.ts index 7714f35226..e2bcdc5325 100644 --- a/tests/installation/globalSetup.ts +++ b/tests/installation/globalSetup.ts @@ -16,8 +16,7 @@ import path from 'path'; import fs from 'fs'; -import { spawnAsync } from '../../packages/playwright-core/lib/utils/spawnAsync'; -import { removeFolders } from '../../packages/playwright-core/lib/utils/fileUtils'; +import { spawnAsync, removeFolders } from '@playwright-core/utils'; import { TMP_WORKSPACES } from './npmTest'; const PACKAGE_BUILDER_SCRIPT = path.join(__dirname, '..', '..', 'utils', 'pack_package.js'); diff --git a/tests/installation/npmTest.ts b/tests/installation/npmTest.ts index 01110d3c38..0f7895d893 100644 --- a/tests/installation/npmTest.ts +++ b/tests/installation/npmTest.ts @@ -22,8 +22,7 @@ import debugLogger from 'debug'; import { Registry } from './registry'; import type { CommonFixtures, CommonWorkerFixtures } from '../config/commonFixtures'; import { commonFixtures } from '../config/commonFixtures'; -import { removeFolders } from '../../packages/playwright-core/lib/utils/fileUtils'; -import { spawnAsync } from '../../packages/playwright-core/lib/utils/spawnAsync'; +import { spawnAsync, removeFolders } from '@playwright-core/utils'; import type { SpawnOptions } from 'child_process'; export const TMP_WORKSPACES = path.join(os.platform() === 'darwin' ? '/tmp' : os.tmpdir(), 'pwt', 'workspaces'); diff --git a/tests/installation/registry.ts b/tests/installation/registry.ts index c9214edb56..97ac512cef 100644 --- a/tests/installation/registry.ts +++ b/tests/installation/registry.ts @@ -19,8 +19,7 @@ import type { Server } from 'http'; import type http from 'http'; import https from 'https'; import path from 'path'; -import { spawnAsync } from '../../packages/playwright-core/lib/utils/spawnAsync'; -import { createHttpServer } from '../../packages/playwright-core/lib/utils/network'; +import { spawnAsync, createHttpServer } from '@playwright-core/utils'; const kPublicNpmRegistry = 'https://registry.npmjs.org'; const kContentTypeAbbreviatedMetadata = 'application/vnd.npm.install-v1+json'; diff --git a/tests/library/browsertype-connect.spec.ts b/tests/library/browsertype-connect.spec.ts index 4a3cdb1efa..b018b96ad3 100644 --- a/tests/library/browsertype-connect.spec.ts +++ b/tests/library/browsertype-connect.spec.ts @@ -20,13 +20,13 @@ import os from 'os'; import type http from 'http'; import type net from 'net'; import * as path from 'path'; -import { getUserAgent, getPlaywrightVersion } from '../../packages/playwright-core/lib/utils/userAgent'; +import { getUserAgent, getPlaywrightVersion } from '@playwright-core/utils'; import WebSocket from 'ws'; import { expect, playwrightTest } from '../config/browserTest'; import { parseTrace, suppressCertificateWarning } from '../config/utils'; import formidable from 'formidable'; import type { Browser, ConnectOptions } from 'playwright-core'; -import { createHttpServer } from '../../packages/playwright-core/lib/utils/network'; +import { createHttpServer } from '@playwright-core/utils'; import { kTargetClosedErrorMessage } from '../config/errors'; import { RunServer } from '../config/remoteServer'; diff --git a/tests/library/chromium/connect-over-cdp.spec.ts b/tests/library/chromium/connect-over-cdp.spec.ts index a473539e8e..1cc372ab2c 100644 --- a/tests/library/chromium/connect-over-cdp.spec.ts +++ b/tests/library/chromium/connect-over-cdp.spec.ts @@ -18,7 +18,7 @@ import { playwrightTest as test, expect } from '../../config/browserTest'; import http from 'http'; import fs from 'fs'; -import { getUserAgent } from '../../../packages/playwright-core/lib/utils/userAgent'; +import { getUserAgent } from '@playwright-core/utils'; import { suppressCertificateWarning } from '../../config/utils'; test.skip(({ mode }) => mode === 'service2'); diff --git a/tests/library/client-certificates.spec.ts b/tests/library/client-certificates.spec.ts index 867e3d3965..996d8c7224 100644 --- a/tests/library/client-certificates.spec.ts +++ b/tests/library/client-certificates.spec.ts @@ -20,7 +20,7 @@ import type http from 'http'; import { expect, playwrightTest as base } from '../config/browserTest'; import type net from 'net'; import type { BrowserContextOptions } from 'packages/playwright-test'; -const { createHttpsServer, createHttp2Server } = require('../../packages/playwright-core/lib/utils'); +import { createHttpsServer, createHttp2Server } from '@playwright-core/utils'; type TestOptions = { startCCServer(options?: { diff --git a/tests/library/component-parser.spec.ts b/tests/library/component-parser.spec.ts index cad2aaca64..0dcd3bf620 100644 --- a/tests/library/component-parser.spec.ts +++ b/tests/library/component-parser.spec.ts @@ -16,7 +16,7 @@ import { playwrightTest as it, expect } from '../config/browserTest'; import type { AttributeSelector } from '../../packages/playwright-core/src/utils/isomorphic/selectorParser'; -import { parseAttributeSelector } from '../../packages/playwright-core/lib/utils/isomorphic/selectorParser'; +import { parseAttributeSelector } from '@playwright-core/utils/isomorphic/selectorParser'; const parse = (selector: string) => parseAttributeSelector(selector, false); const serialize = (parsed: AttributeSelector) => { diff --git a/tests/library/css-parser.spec.ts b/tests/library/css-parser.spec.ts index 3bf8a742e6..0ba31f777d 100644 --- a/tests/library/css-parser.spec.ts +++ b/tests/library/css-parser.spec.ts @@ -15,7 +15,7 @@ */ import { playwrightTest as it, expect } from '../config/browserTest'; -import { parseCSS, serializeSelector as serialize } from '../../packages/playwright-core/lib/utils/isomorphic/cssParser'; +import { parseCSS, serializeSelector as serialize } from '@playwright-core/utils/isomorphic/cssParser'; const parse = (selector: string) => { return parseCSS(selector, new Set(['text', 'not', 'has', 'react', 'scope', 'right-of', 'is'])).selector; diff --git a/tests/library/debug-controller.spec.ts b/tests/library/debug-controller.spec.ts index 2da0ee1bf3..287d2c0109 100644 --- a/tests/library/debug-controller.spec.ts +++ b/tests/library/debug-controller.spec.ts @@ -16,7 +16,7 @@ import { expect, playwrightTest as baseTest } from '../config/browserTest'; import { PlaywrightServer } from '../../packages/playwright-core/lib/remote/playwrightServer'; -import { createGuid } from '../../packages/playwright-core/lib/utils/crypto'; +import { createGuid } from '@playwright-core/utils'; import { Backend } from '../config/debugControllerBackend'; import type { Browser, BrowserContext } from '@playwright/test'; import type * as channels from '@protocol/channels'; diff --git a/tests/library/events/check-listener-leaks.spec.ts b/tests/library/events/check-listener-leaks.spec.ts index d9b51f27ef..fb0c81dd6b 100644 --- a/tests/library/events/check-listener-leaks.spec.ts +++ b/tests/library/events/check-listener-leaks.spec.ts @@ -22,7 +22,7 @@ import events from 'events'; import { EventEmitter } from '../../../packages/playwright-core/lib/client/eventEmitter'; -import { setUnderTest } from '../../../packages/playwright-core/lib/utils/debug'; +import { setUnderTest } from '@playwright-core/utils'; import { test, expect } from '@playwright/test'; import * as common from './utils'; diff --git a/tests/library/global-fetch.spec.ts b/tests/library/global-fetch.spec.ts index b3bea9e432..86cd721c24 100644 --- a/tests/library/global-fetch.spec.ts +++ b/tests/library/global-fetch.spec.ts @@ -15,8 +15,8 @@ */ import os from 'os'; -import * as util from 'util'; -import { getPlaywrightVersion } from '../../packages/playwright-core/lib/utils/userAgent'; +import util from 'util'; +import { getPlaywrightVersion } from '@playwright-core/utils'; import { expect, playwrightTest as base } from '../config/browserTest'; import { kTargetClosedErrorMessage } from 'tests/config/errors'; diff --git a/tests/library/har.spec.ts b/tests/library/har.spec.ts index 29ee7df2d1..b56c72a211 100644 --- a/tests/library/har.spec.ts +++ b/tests/library/har.spec.ts @@ -22,7 +22,7 @@ import type { BrowserContext, BrowserContextOptions } from 'playwright-core'; import type { AddressInfo } from 'net'; import type { Log } from '../../packages/trace/src/har'; import { parseHar } from '../config/utils'; -const { createHttp2Server } = require('../../packages/playwright-core/lib/utils'); +import { createHttp2Server } from '@playwright-core/utils'; async function pageWithHar(contextFactory: (options?: BrowserContextOptions) => Promise, testInfo: any, options: { outputPath?: string, content?: 'embed' | 'attach' | 'omit', omitContent?: boolean } = {}) { const harPath = testInfo.outputPath(options.outputPath || 'test.har'); diff --git a/tests/library/headful.spec.ts b/tests/library/headful.spec.ts index cfeb9711c9..6b12f14c5b 100644 --- a/tests/library/headful.spec.ts +++ b/tests/library/headful.spec.ts @@ -15,7 +15,7 @@ */ import { compare } from 'playwright-core/lib/image_tools/compare'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import { expect, playwrightTest as it } from '../config/browserTest'; it.use({ headless: false }); diff --git a/tests/library/locator-generator.spec.ts b/tests/library/locator-generator.spec.ts index 30ee22ef0e..2712c4f2d1 100644 --- a/tests/library/locator-generator.spec.ts +++ b/tests/library/locator-generator.spec.ts @@ -15,8 +15,8 @@ */ import { contextTest as it, expect } from '../config/browserTest'; -import { asLocator, asLocators } from '../../packages/playwright-core/lib/utils/isomorphic/locatorGenerators'; -import { locatorOrSelectorAsSelector as parseLocator } from '../../packages/playwright-core/lib/utils/isomorphic/locatorParser'; +import { asLocator, asLocators } from '@playwright-core/utils/isomorphic/locatorGenerators'; +import { locatorOrSelectorAsSelector as parseLocator } from '@playwright-core/utils/isomorphic/locatorParser'; import type { Page, Frame, Locator, FrameLocator } from 'playwright-core'; it.skip(({ mode }) => mode !== 'default'); @@ -27,7 +27,7 @@ function generate(locator: Locator | FrameLocator) { function generateForSelector(selector: string) { const result: any = {}; - for (const lang of ['javascript', 'python', 'java', 'csharp']) { + for (const lang of ['javascript', 'python', 'java', 'csharp'] as const) { const locatorString = asLocator(lang, selector, false); expect.soft(parseLocator(lang, locatorString, 'data-testid'), lang + ' mismatch').toBe(selector); result[lang] = locatorString; @@ -38,9 +38,9 @@ function generateForSelector(selector: string) { async function generateForNode(pageOrFrame: Page | Frame, target: string): Promise { const selector = await pageOrFrame.locator(target).evaluate(e => (window as any).playwright.selector(e)); const result: any = {}; - for (const lang of ['javascript', 'python', 'java', 'csharp']) { + for (const lang of ['javascript', 'python', 'java', 'csharp'] as const) { const locatorString = asLocator(lang, selector, false); - expect.soft(parseLocator(lang, locatorString)).toBe(selector); + expect.soft(parseLocator(lang, locatorString, 'data-testid')).toBe(selector); result[lang] = locatorString; } return result; @@ -563,24 +563,24 @@ it('parse locators strictly', () => { const selector = 'div >> internal:has-text=\"Goodbye world\"i >> span'; // Exact - expect.soft(parseLocator('csharp', `Locator("div").Filter(new() { HasText = "Goodbye world" }).Locator("span")`)).toBe(selector); - expect.soft(parseLocator('java', `locator("div").filter(new Locator.FilterOptions().setHasText("Goodbye world")).locator("span")`)).toBe(selector); - expect.soft(parseLocator('javascript', `locator('div').filter({ hasText: 'Goodbye world' }).locator('span')`)).toBe(selector); - expect.soft(parseLocator('python', `locator("div").filter(has_text="Goodbye world").locator("span")`)).toBe(selector); + expect.soft(parseLocator('csharp', `Locator("div").Filter(new() { HasText = "Goodbye world" }).Locator("span")`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('java', `locator("div").filter(new Locator.FilterOptions().setHasText("Goodbye world")).locator("span")`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('javascript', `locator('div').filter({ hasText: 'Goodbye world' }).locator('span')`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('python', `locator("div").filter(has_text="Goodbye world").locator("span")`, 'data-testid')).toBe(selector); // Quotes - expect.soft(parseLocator('javascript', `locator("div").filter({ hasText: "Goodbye world" }).locator("span")`)).toBe(selector); - expect.soft(parseLocator('python', `locator('div').filter(has_text='Goodbye world').locator('span')`)).not.toBe(selector); + expect.soft(parseLocator('javascript', `locator("div").filter({ hasText: "Goodbye world" }).locator("span")`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('python', `locator('div').filter(has_text='Goodbye world').locator('span')`, 'data-testid')).not.toBe(selector); // Whitespace - expect.soft(parseLocator('csharp', `Locator("div") . Filter (new ( ) { HasText = "Goodbye world" }).Locator( "span" )`)).toBe(selector); - expect.soft(parseLocator('java', ` locator("div" ). filter( new Locator. FilterOptions ( ) .setHasText( "Goodbye world" ) ).locator( "span")`)).toBe(selector); - expect.soft(parseLocator('javascript', `locator\n('div')\n\n.filter({ hasText : 'Goodbye world'\n }\n).locator('span')\n`)).toBe(selector); - expect.soft(parseLocator('python', `\tlocator(\t"div").filter(\thas_text="Goodbye world"\t).locator\t("span")`)).toBe(selector); + expect.soft(parseLocator('csharp', `Locator("div") . Filter (new ( ) { HasText = "Goodbye world" }).Locator( "span" )`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('java', ` locator("div" ). filter( new Locator. FilterOptions ( ) .setHasText( "Goodbye world" ) ).locator( "span")`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('javascript', `locator\n('div')\n\n.filter({ hasText : 'Goodbye world'\n }\n).locator('span')\n`, 'data-testid')).toBe(selector); + expect.soft(parseLocator('python', `\tlocator(\t"div").filter(\thas_text="Goodbye world"\t).locator\t("span")`, 'data-testid')).toBe(selector); // Extra symbols - expect.soft(parseLocator('csharp', `Locator("div").Filter(new() { HasText = "Goodbye world" }).Locator("span"))`)).not.toBe(selector); - expect.soft(parseLocator('java', `locator("div").filter(new Locator.FilterOptions().setHasText("Goodbye world"))..locator("span")`)).not.toBe(selector); - expect.soft(parseLocator('javascript', `locator('div').filter({ hasText: 'Goodbye world' }}).locator('span')`)).not.toBe(selector); - expect.soft(parseLocator('python', `locator("div").filter(has_text=="Goodbye world").locator("span")`)).not.toBe(selector); + expect.soft(parseLocator('csharp', `Locator("div").Filter(new() { HasText = "Goodbye world" }).Locator("span"))`, 'data-testid')).not.toBe(selector); + expect.soft(parseLocator('java', `locator("div").filter(new Locator.FilterOptions().setHasText("Goodbye world"))..locator("span")`, 'data-testid')).not.toBe(selector); + expect.soft(parseLocator('javascript', `locator('div').filter({ hasText: 'Goodbye world' }}).locator('span')`, 'data-testid')).not.toBe(selector); + expect.soft(parseLocator('python', `locator("div").filter(has_text=="Goodbye world").locator("span")`, 'data-testid')).not.toBe(selector); }); diff --git a/tests/library/screenshot.spec.ts b/tests/library/screenshot.spec.ts index e8bdac3313..6b14102532 100644 --- a/tests/library/screenshot.spec.ts +++ b/tests/library/screenshot.spec.ts @@ -16,7 +16,7 @@ */ import { expect, browserTest } from '../config/browserTest'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import { verifyViewport } from '../config/utils'; browserTest.describe('page screenshot', () => { diff --git a/tests/library/tracing.spec.ts b/tests/library/tracing.spec.ts index c82db377aa..1173bdae5c 100644 --- a/tests/library/tracing.spec.ts +++ b/tests/library/tracing.spec.ts @@ -15,7 +15,7 @@ */ import fs from 'fs'; -import { jpegjs } from 'playwright-core/lib/utilsBundle'; +import { jpegjs } from '@playwright-core/utilsBundle'; import path from 'path'; import { browserTest, contextTest as test, expect } from '../config/browserTest'; import { parseTraceRaw } from '../config/utils'; diff --git a/tests/library/video.spec.ts b/tests/library/video.spec.ts index 39dcaecbc6..38ca020cc8 100644 --- a/tests/library/video.spec.ts +++ b/tests/library/video.spec.ts @@ -19,9 +19,9 @@ import fs from 'fs'; import path from 'path'; import type { Page } from 'playwright-core'; import { spawnSync } from 'child_process'; -import { PNG, jpegjs } from 'playwright-core/lib/utilsBundle'; +import { PNG, jpegjs } from '@playwright-core/utilsBundle'; import { registry } from '../../packages/playwright-core/lib/server'; -import { rewriteErrorMessage } from '../../packages/playwright-core/lib/utils/stackTrace'; +import { rewriteErrorMessage } from '@playwright-core/utils'; import { parseTraceRaw } from '../config/utils'; const ffmpeg = registry.findExecutable('ffmpeg')!.executablePath('javascript'); diff --git a/tests/page/interception.spec.ts b/tests/page/interception.spec.ts index d71675cc39..5d935191d9 100644 --- a/tests/page/interception.spec.ts +++ b/tests/page/interception.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import { globToRegex } from '../../packages/playwright-core/lib/utils/glob'; +import { globToRegex } from '@playwright-core/utils'; import vm from 'vm'; it('should work with navigation @smoke', async ({ page, server }) => { diff --git a/tests/page/page-leaks.spec.ts b/tests/page/page-leaks.spec.ts index b33ce8e1d4..3b2bc0642a 100644 --- a/tests/page/page-leaks.spec.ts +++ b/tests/page/page-leaks.spec.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { MultiMap } from '../../packages/playwright-core/lib/utils/multimap'; +import { MultiMap } from '@playwright-core/utils'; import { test, expect } from './pageTest'; function leakedJSHandles(): string { - const map = new MultiMap(); + const map = new MultiMap(); for (const [h, e] of (globalThis as any).leakedJSHandles) { const name = `[${h.worldNameForTest()}] ${h.preview()}`; if (name === '[main] UtilityScript' || name === '[utility] UtilityScript' || name === '[electron] UtilityScript' || name === '[main] InjectedScript' || name === '[utility] InjectedScript' || name === '[electron] ElectronModule') diff --git a/tests/playwright-test/expect.spec.ts b/tests/playwright-test/expect.spec.ts index 63928e86fb..728b7415cb 100644 --- a/tests/playwright-test/expect.spec.ts +++ b/tests/playwright-test/expect.spec.ts @@ -16,7 +16,7 @@ import path from 'path'; import { test, expect, parseTestRunnerOutput, stripAnsi } from './playwright-test-fixtures'; -const { spawnAsync } = require('../../packages/playwright-core/lib/utils'); +import { spawnAsync } from '@playwright-core/utils'; test('should be able to call expect.extend in config', async ({ runInlineTest }) => { const result = await runInlineTest({ diff --git a/tests/playwright-test/playwright-test-fixtures.ts b/tests/playwright-test/playwright-test-fixtures.ts index f9670fa305..a2393a7917 100644 --- a/tests/playwright-test/playwright-test-fixtures.ts +++ b/tests/playwright-test/playwright-test-fixtures.ts @@ -18,7 +18,7 @@ import type { JSONReport, JSONReportSpec, JSONReportSuite, JSONReportTest, JSONR import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import type { CommonFixtures, CommonWorkerFixtures, TestChildProcess } from '../config/commonFixtures'; import { commonFixtures } from '../config/commonFixtures'; import type { ServerFixtures, ServerWorkerOptions } from '../config/serverFixtures'; diff --git a/tests/playwright-test/reporter-blob.spec.ts b/tests/playwright-test/reporter-blob.spec.ts index 8f3064a073..78adb5dbdd 100644 --- a/tests/playwright-test/reporter-blob.spec.ts +++ b/tests/playwright-test/reporter-blob.spec.ts @@ -23,7 +23,7 @@ import { startHtmlReportServer } from '../../packages/playwright/lib/reporters/h import { expect as baseExpect, test as baseTest, stripAnsi } from './playwright-test-fixtures'; import extractZip from '../../packages/playwright-core/bundles/zip/node_modules/extract-zip'; import * as yazl from '../../packages/playwright-core/bundles/zip/node_modules/yazl'; -import { getUserAgent } from '../../packages/playwright-core/lib/utils/userAgent'; +import { getUserAgent } from '@playwright-core/utils'; import { Readable } from 'stream'; const DOES_NOT_SUPPORT_UTF8_IN_TERMINAL = process.platform === 'win32' && process.env.TERM_PROGRAM !== 'vscode' && !process.env.WT_SESSION; diff --git a/tests/playwright-test/reporter-html.spec.ts b/tests/playwright-test/reporter-html.spec.ts index 768cd28fc2..e4c2591245 100644 --- a/tests/playwright-test/reporter-html.spec.ts +++ b/tests/playwright-test/reporter-html.spec.ts @@ -21,7 +21,7 @@ import { test as baseTest, expect as baseExpect, createImage } from './playwrigh import type { HttpServer } from '../../packages/playwright-core/src/utils'; import { startHtmlReportServer } from '../../packages/playwright/lib/reporters/html'; import { msToString } from '../../packages/web/src/uiUtils'; -const { spawnAsync } = require('../../packages/playwright-core/lib/utils'); +import { spawnAsync } from '@playwright-core/utils'; const test = baseTest.extend<{ showReport: (reportFolder?: string) => Promise }>({ showReport: async ({ page }, use, testInfo) => { diff --git a/tests/playwright-test/to-have-screenshot.spec.ts b/tests/playwright-test/to-have-screenshot.spec.ts index a4eb131f07..5b3cd7b40e 100644 --- a/tests/playwright-test/to-have-screenshot.spec.ts +++ b/tests/playwright-test/to-have-screenshot.spec.ts @@ -15,7 +15,7 @@ */ import * as fs from 'fs'; -import { PNG } from 'playwright-core/lib/utilsBundle'; +import { PNG } from '@playwright-core/utilsBundle'; import * as path from 'path'; import { pathToFileURL } from 'url'; import { test, expect, createImage, paintBlackPixels } from './playwright-test-fixtures'; diff --git a/tests/playwright-test/ui-mode-test-progress.spec.ts b/tests/playwright-test/ui-mode-test-progress.spec.ts index f87eaa8fbc..2e5bb89d71 100644 --- a/tests/playwright-test/ui-mode-test-progress.spec.ts +++ b/tests/playwright-test/ui-mode-test-progress.spec.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ManualPromise } from '../../packages/playwright-core/lib/utils/manualPromise'; +import { ManualPromise } from '@playwright-core/utils'; import { test, expect, retries, dumpTestTree } from './ui-mode-fixtures'; test.describe.configure({ mode: 'parallel', retries }); diff --git a/tests/playwright-test/web-server.spec.ts b/tests/playwright-test/web-server.spec.ts index 04e3c1d328..3da551b4ca 100644 --- a/tests/playwright-test/web-server.spec.ts +++ b/tests/playwright-test/web-server.spec.ts @@ -17,7 +17,7 @@ import type http from 'http'; import path from 'path'; import { test, expect, parseTestRunnerOutput } from './playwright-test-fixtures'; -import { createHttpServer } from '../../packages/playwright-core/lib/utils/network'; +import { createHttpServer } from '@playwright-core/utils'; const SIMPLE_SERVER_PATH = path.join(__dirname, 'assets', 'simple-server.js'); diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 1a1e3d7527..63e3038532 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -16,8 +16,9 @@ "@recorder/*": ["packages/recorder/src/*"], "@trace/*": ["packages/trace/src/*"], "@web/*": ["packages/web/src/*"], + "@playwright-core/*": ["packages/playwright-core/lib/*"], }, }, - "include": ["**/*.spec.js", "**/*.ts"], + "include": ["**/*.spec.js", "**/*.ts", "global.d.ts"], "exclude": ["components/", "installation/fixture-scripts/"] }