From 9aa2abff2e91dffcec82128ffea5ffb8c7a63043 Mon Sep 17 00:00:00 2001 From: Aitor Moreno Date: Mon, 6 Apr 2026 12:37:57 +0200 Subject: [PATCH] :bug: Fix text-editor v2 waitForIdle not having a timeout --- frontend/playwright/ui/pages/WasmWorkspacePage.js | 7 +++++++ frontend/playwright/ui/pages/WorkspacePage.js | 11 ++++++----- frontend/playwright/ui/specs/text-editor-v2.spec.js | 1 - 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/frontend/playwright/ui/pages/WasmWorkspacePage.js b/frontend/playwright/ui/pages/WasmWorkspacePage.js index a877f03dba..8b5139e9a0 100644 --- a/frontend/playwright/ui/pages/WasmWorkspacePage.js +++ b/frontend/playwright/ui/pages/WasmWorkspacePage.js @@ -40,6 +40,13 @@ export class WasmWorkspacePage extends WorkspacePage { this.canvas = page.getByTestId("canvas-wasm-shapes"); } + async waitForIdle(options) { + return this.page.evaluate( + (options) => new Promise((resolve) => globalThis.requestIdleCallback(resolve, options)), + options + ); + } + async waitForFirstRender() { await this.pageName.waitFor(); await this.canvas.waitFor(); diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 1dcac5c4ca..f114d8abda 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -53,19 +53,18 @@ export class WorkspacePage extends BaseWebSocketPage { for (let i = 0; i < amount; i++) { await this.page.keyboard.press("ArrowLeft"); } - await this.waitForIdle(); + await this.waitForIdle({ timeout: 100 }); } async moveToRight(amount = 0) { for (let i = 0; i < amount; i++) { await this.page.keyboard.press("ArrowRight"); } - await this.waitForIdle(); + await this.waitForIdle({ timeout: 100 }); } async moveFromStart(offset = 0) { await this.page.keyboard.press("Home"); - await this.waitForIdle(); await this.moveToRight(offset); } @@ -107,8 +106,10 @@ export class WorkspacePage extends BaseWebSocketPage { return this.changeNumericInput(this.letterSpacing, newValue); } - async waitForIdle() { - await this.page.evaluate(() => new Promise((resolve) => globalThis.requestIdleCallback(resolve))); + async waitForIdle(options) { + await this.page.evaluate( + (options) => new Promise( + (resolve) => globalThis.requestIdleCallback(resolve, options)), options); } }; diff --git a/frontend/playwright/ui/specs/text-editor-v2.spec.js b/frontend/playwright/ui/specs/text-editor-v2.spec.js index effa431d73..c12fef1bba 100644 --- a/frontend/playwright/ui/specs/text-editor-v2.spec.js +++ b/frontend/playwright/ui/specs/text-editor-v2.spec.js @@ -96,7 +96,6 @@ test("Update an already created text shape by prepending text", async ({ await workspace.clickLeafLayer("Lorem ipsum"); await workspace.textEditor.startEditing(); await workspace.textEditor.moveFromStart(0); - await page.evaluate(() => new Promise((resolve) => globalThis.requestIdleCallback(resolve))); await page.keyboard.type("Dolor sit amet "); await workspace.textEditor.stopEditing(); await workspace.waitForSelectedShapeName("Dolor sit amet Lorem ipsum");