From 640b10c70f085e2a7965ec0a6c9650b8fe7d59c5 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Wed, 21 Apr 2021 07:59:38 -0700 Subject: [PATCH] fix(codegen): missing await before newPage.goto (#6253) --- src/server/supplements/recorder/csharp.ts | 2 +- src/server/supplements/recorder/javascript.ts | 2 +- src/server/supplements/recorder/python.ts | 2 +- tests/cli/cli-codegen-2.spec.ts | 10 +++++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/server/supplements/recorder/csharp.ts b/src/server/supplements/recorder/csharp.ts index f3108be6b4..482a180ecf 100644 --- a/src/server/supplements/recorder/csharp.ts +++ b/src/server/supplements/recorder/csharp.ts @@ -35,7 +35,7 @@ export class CSharpLanguageGenerator implements LanguageGenerator { if (action.name === 'openPage') { formatter.add(`var ${pageAlias} = await context.NewPageAsync();`); if (action.url && action.url !== 'about:blank' && action.url !== 'chrome://newtab/') - formatter.add(`${pageAlias}.GoToAsync('${action.url}');`); + formatter.add(`await ${pageAlias}.GoToAsync(${quote(action.url)});`); return formatter.format(); } diff --git a/src/server/supplements/recorder/javascript.ts b/src/server/supplements/recorder/javascript.ts index 41658bec82..8867a765da 100644 --- a/src/server/supplements/recorder/javascript.ts +++ b/src/server/supplements/recorder/javascript.ts @@ -35,7 +35,7 @@ export class JavaScriptLanguageGenerator implements LanguageGenerator { if (action.name === 'openPage') { formatter.add(`const ${pageAlias} = await context.newPage();`); if (action.url && action.url !== 'about:blank' && action.url !== 'chrome://newtab/') - formatter.add(`${pageAlias}.goto('${action.url}');`); + formatter.add(`await ${pageAlias}.goto(${quote(action.url)});`); return formatter.format(); } diff --git a/src/server/supplements/recorder/python.ts b/src/server/supplements/recorder/python.ts index 9631683ef5..b6aaa542bf 100644 --- a/src/server/supplements/recorder/python.ts +++ b/src/server/supplements/recorder/python.ts @@ -47,7 +47,7 @@ export class PythonLanguageGenerator implements LanguageGenerator { if (action.name === 'openPage') { formatter.add(`${pageAlias} = ${this._awaitPrefix}context.new_page()`); if (action.url && action.url !== 'about:blank' && action.url !== 'chrome://newtab/') - formatter.add(`${pageAlias}.goto('${action.url}')`); + formatter.add(`${this._awaitPrefix}${pageAlias}.goto(${quote(action.url)})`); return formatter.format(); } diff --git a/tests/cli/cli-codegen-2.spec.ts b/tests/cli/cli-codegen-2.spec.ts index d2d3ab5ec3..80ac325f69 100644 --- a/tests/cli/cli-codegen-2.spec.ts +++ b/tests/cli/cli-codegen-2.spec.ts @@ -376,7 +376,15 @@ await page.ClickAsync(\"text=click me\");`); expect(sources.get('').text).toContain(` // Open new page const page1 = await context.newPage(); - page1.goto('about:blank?foo');`); + await page1.goto('about:blank?foo');`); + expect(sources.get('').text).toContain(` + # Open new page + page1 = await context.new_page() + await page1.goto("about:blank?foo")`); + expect(sources.get('').text).toContain(` +// Open new page +var page1 = await context.NewPageAsync(); +await page1.GoToAsync("about:blank?foo");`); } else if (browserName === 'firefox') { expect(sources.get('').text).toContain(` // Click text=link