From ce2aa1782bd4244d31a87b7a79806ae8ed860257 Mon Sep 17 00:00:00 2001 From: Joel Einbinder Date: Mon, 23 Aug 2021 22:38:50 -0400 Subject: [PATCH] fix(test): fix broken codegen test (#8383) --- tests/inspector/cli-codegen-2.spec.ts | 2 +- tests/inspector/cli-codegen-csharp.spec.ts | 4 ++-- tests/inspector/cli-codegen-java.spec.ts | 4 ++-- tests/inspector/cli-codegen-javascript.spec.ts | 4 ++-- tests/inspector/cli-codegen-python-async.spec.ts | 4 ++-- tests/inspector/cli-codegen-python.spec.ts | 4 ++-- tests/inspector/cli-codegen-test.spec.ts | 2 +- tests/inspector/inspectorTest.ts | 11 +++++++++-- 8 files changed, 21 insertions(+), 14 deletions(-) diff --git a/tests/inspector/cli-codegen-2.spec.ts b/tests/inspector/cli-codegen-2.spec.ts index 4904e17627..2b44c67065 100644 --- a/tests/inspector/cli-codegen-2.spec.ts +++ b/tests/inspector/cli-codegen-2.spec.ts @@ -649,7 +649,7 @@ test.describe('cli codegen', () => { test('should fill tricky characters', async ({ page, openRecorder }) => { const recorder = await openRecorder(); - await recorder.setContentAndWait(``); + await recorder.setContentAndWait(``); const selector = await recorder.focusElement('textarea'); expect(selector).toBe('textarea[name="name"]'); diff --git a/tests/inspector/cli-codegen-csharp.spec.ts b/tests/inspector/cli-codegen-csharp.spec.ts index 845e498be6..ce2ac01dc0 100644 --- a/tests/inspector/cli-codegen-csharp.spec.ts +++ b/tests/inspector/cli-codegen-csharp.spec.ts @@ -165,13 +165,13 @@ test('should print load/save storageState', async ({ browserName, channel, runCL }); var context = await browser.NewContextAsync(new BrowserNewContextOptions { - StorageStatePath = "${loadFileName}", + StorageStatePath = "${loadFileName.replace(/\\/g, '\\\\')}", });`; await cli.waitFor(expectedResult1); const expectedResult2 = ` await context.StorageStateAsync(new BrowserContextStorageStateOptions { - Path = "${saveFileName}" + Path = "${saveFileName.replace(/\\/g, '\\\\')}" }); `; await cli.waitFor(expectedResult2); diff --git a/tests/inspector/cli-codegen-java.spec.ts b/tests/inspector/cli-codegen-java.spec.ts index 1b48eed91d..a760234d87 100644 --- a/tests/inspector/cli-codegen-java.spec.ts +++ b/tests/inspector/cli-codegen-java.spec.ts @@ -82,10 +82,10 @@ test('should print load/save storage_state', async ({ runCLI, browserName }, tes await fs.promises.writeFile(loadFileName, JSON.stringify({ cookies: [], origins: [] }), 'utf8'); const cli = runCLI([`--load-storage=${loadFileName}`, `--save-storage=${saveFileName}`, '--target=java', emptyHTML]); const expectedResult1 = `BrowserContext context = browser.newContext(new Browser.NewContextOptions() - .setStorageStatePath(Paths.get("${loadFileName}")));`; + .setStorageStatePath(Paths.get("${loadFileName.replace(/\\/g, '\\\\')}")));`; await cli.waitFor(expectedResult1); const expectedResult2 = ` - context.storageState(new BrowserContext.StorageStateOptions().setPath("${saveFileName}"))`; + context.storageState(new BrowserContext.StorageStateOptions().setPath("${saveFileName.replace(/\\/g, '\\\\')}"))`; await cli.waitFor(expectedResult2); }); diff --git a/tests/inspector/cli-codegen-javascript.spec.ts b/tests/inspector/cli-codegen-javascript.spec.ts index 20b4bcb15b..6c8308d7cc 100644 --- a/tests/inspector/cli-codegen-javascript.spec.ts +++ b/tests/inspector/cli-codegen-javascript.spec.ts @@ -128,13 +128,13 @@ test('should print load/save storageState', async ({ browserName, channel, runCL ${launchOptions(channel)} }); const context = await browser.newContext({ - storageState: '${loadFileName}' + storageState: '${loadFileName.replace(/\\/g, '\\\\')}' });`; await cli.waitFor(expectedResult1); const expectedResult2 = ` // --------------------- - await context.storageState({ path: '${saveFileName}' }); + await context.storageState({ path: '${saveFileName.replace(/\\/g, '\\\\')}' }); await context.close(); await browser.close(); })();`; diff --git a/tests/inspector/cli-codegen-python-async.spec.ts b/tests/inspector/cli-codegen-python-async.spec.ts index c2c616623b..29eca794ad 100644 --- a/tests/inspector/cli-codegen-python-async.spec.ts +++ b/tests/inspector/cli-codegen-python-async.spec.ts @@ -132,12 +132,12 @@ from playwright.async_api import Playwright, async_playwright async def run(playwright: Playwright) -> None: browser = await playwright.${browserName}.launch(${launchOptions(channel)}) - context = await browser.new_context(storage_state="${loadFileName}")`; + context = await browser.new_context(storage_state="${loadFileName.replace(/\\/g, '\\\\')}")`; await cli.waitFor(expectedResult1); const expectedResult2 = ` # --------------------- - await context.storage_state(path="${saveFileName}") + await context.storage_state(path="${saveFileName.replace(/\\/g, '\\\\')}") await context.close() await browser.close() diff --git a/tests/inspector/cli-codegen-python.spec.ts b/tests/inspector/cli-codegen-python.spec.ts index 9b5a20b13c..fe8ccd67b9 100644 --- a/tests/inspector/cli-codegen-python.spec.ts +++ b/tests/inspector/cli-codegen-python.spec.ts @@ -116,12 +116,12 @@ test('should print load/save storage_state', async ({ runCLI, channel, browserNa def run(playwright: Playwright) -> None: browser = playwright.${browserName}.launch(${launchOptions(channel)}) - context = browser.new_context(storage_state="${loadFileName}")`; + context = browser.new_context(storage_state="${loadFileName.replace(/\\/g, '\\\\')}")`; await cli.waitFor(expectedResult1); const expectedResult2 = ` # --------------------- - context.storage_state(path="${saveFileName}") + context.storage_state(path="${saveFileName.replace(/\\/g, '\\\\')}") context.close() browser.close() diff --git a/tests/inspector/cli-codegen-test.spec.ts b/tests/inspector/cli-codegen-test.spec.ts index a61bacfc15..e16af0278a 100644 --- a/tests/inspector/cli-codegen-test.spec.ts +++ b/tests/inspector/cli-codegen-test.spec.ts @@ -83,7 +83,7 @@ test('should print load storageState', async ({ browserName, channel, runCLI }, const expectedResult = `const { test, expect } = require('@playwright/test'); test.use({ - storageState: '${loadFileName}' + storageState: '${loadFileName.replace(/\\/g, '\\\\')}' }); test('test', async ({ page }) => {`; diff --git a/tests/inspector/inspectorTest.ts b/tests/inspector/inspectorTest.ts index 8ae288f90c..683cc467e5 100644 --- a/tests/inspector/inspectorTest.ts +++ b/tests/inspector/inspectorTest.ts @@ -221,11 +221,18 @@ class CLIMock { }); } - async waitFor(text: string): Promise { + async waitFor(text: string, timeout = 10_000): Promise { if (this.data.includes(text)) return Promise.resolve(); this.waitForText = text; - return new Promise(f => this.waitForCallback = f); + return new Promise((f, r) => { + this.waitForCallback = f; + if (timeout) { + setTimeout(() => { + r(new Error('Timed out waiting for text:\n' + text + '\n\nRecieved:\n' + this.text())); + }, timeout); + } + }); } text() {