This is an automated email from the ASF dual-hosted git repository.

vogievetsky pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new ba1b6fa5a93 Web console: reset spec before looking for tile (#15396)
ba1b6fa5a93 is described below

commit ba1b6fa5a937e2f676e3c18944f6edec5b04d328
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Sat Nov 18 09:57:29 2023 -0800

    Web console: reset spec before looking for tile (#15396)
    
    * reset spec before looking for tile
    
    * improve logging
    
    * log screenshots
    
    * get and log jpeg
    
    * other test tidy up
---
 web-console/e2e-tests/component/load-data/data-loader.ts |  8 ++++++++
 web-console/e2e-tests/component/workbench/overview.ts    |  2 +-
 web-console/e2e-tests/multi-stage-query.spec.ts          |  3 ++-
 web-console/e2e-tests/util/debug.ts                      | 11 ++++++++++-
 4 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/web-console/e2e-tests/component/load-data/data-loader.ts 
b/web-console/e2e-tests/component/load-data/data-loader.ts
index 71601467f56..4462641cb9a 100644
--- a/web-console/e2e-tests/component/load-data/data-loader.ts
+++ b/web-console/e2e-tests/component/load-data/data-loader.ts
@@ -42,6 +42,7 @@ export class DataLoader {
    */
   async load() {
     await this.page.goto(this.baseUrl);
+    await this.startNewSpecIfNeeded();
     await this.start();
     await this.connect(this.connector, this.connectValidator);
     if (this.connector.needParse) {
@@ -57,6 +58,13 @@ export class DataLoader {
     await this.editSpec();
   }
 
+  private async startNewSpecIfNeeded() {
+    const startNewSpecLocator = this.page.locator(`//*[contains(text(),"Start 
a new")]`);
+    if (await startNewSpecLocator.count()) {
+      await startNewSpecLocator.click();
+    }
+  }
+
   private async start() {
     const cardSelector = 
`//*[contains(@class,"bp4-card")][p[contains(text(),"${this.connector.name}")]]`;
     await this.page.click(cardSelector);
diff --git a/web-console/e2e-tests/component/workbench/overview.ts 
b/web-console/e2e-tests/component/workbench/overview.ts
index 9660cd354dc..b33e57fbc79 100644
--- a/web-console/e2e-tests/component/workbench/overview.ts
+++ b/web-console/e2e-tests/component/workbench/overview.ts
@@ -40,7 +40,7 @@ export class WorkbenchOverview {
     const input = await this.page.waitForSelector('div.flexible-query-input 
textarea');
     await input.fill(query);
     await clickButton(this.page, 'Run');
-    await this.page.waitForSelector('div.result-table-pane', { timeout: 5 * 60 
* 1000 });
+    await this.page.waitForSelector('div.result-table-pane', { timeout: 4 * 60 
* 1000 });
 
     return await extractTable(this.page, 'div.result-table-pane 
div.rt-tr-group', 'div.rt-td');
   }
diff --git a/web-console/e2e-tests/multi-stage-query.spec.ts 
b/web-console/e2e-tests/multi-stage-query.spec.ts
index 7e4168392f8..4647764266a 100644
--- a/web-console/e2e-tests/multi-stage-query.spec.ts
+++ b/web-console/e2e-tests/multi-stage-query.spec.ts
@@ -44,8 +44,9 @@ describe('Multi-stage query', () => {
   });
 
   it('runs a query that reads external data', async () => {
+    const workbench = new WorkbenchOverview(page, UNIFIED_CONSOLE_URL);
+
     await saveScreenshotIfError('multi-stage-query', page, async () => {
-      const workbench = new WorkbenchOverview(page, UNIFIED_CONSOLE_URL);
       const results = await workbench.runQuery(`WITH ext AS (SELECT *
 FROM TABLE(
   EXTERN(
diff --git a/web-console/e2e-tests/util/debug.ts 
b/web-console/e2e-tests/util/debug.ts
index fee93a39a72..bfd2e2db700 100644
--- a/web-console/e2e-tests/util/debug.ts
+++ b/web-console/e2e-tests/util/debug.ts
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+import { resolve } from 'path';
 import type * as playwright from 'playwright-chromium';
 
 export async function saveScreenshotIfError(
@@ -26,7 +27,15 @@ export async function saveScreenshotIfError(
   try {
     await test();
   } catch (e) {
-    await page.screenshot({ path: filenamePrefix + 'error-screenshot.png' });
+    console.log(`Grabbing error screenshot for: ${filenamePrefix}`);
+    const resolvedPath = resolve(filenamePrefix + '-error-screenshot.jpeg');
+    try {
+      const imageBuffer = await page.screenshot({ path: resolvedPath, type: 
'jpeg', quality: 80 });
+      console.log(`Image: 
data:image/jpeg;base64,${imageBuffer.toString('base64')}`);
+      console.log(`Written error screenshot to: ${resolvedPath}`);
+    } catch (screenshotError) {
+      console.log(`Failed to capture screenshot due to: 
${screenshotError.message}`);
+    }
     throw e;
   }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to