From 3ac55501e9d02db90736cb87549de3ca480e522a Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Wed, 4 Dec 2024 17:57:17 +0100 Subject: [PATCH] Correctly wait for the editor mode when double clicking on an annotation in integration tests --- test/integration/ink_editor_spec.mjs | 15 ++++++++++----- test/integration/stamp_editor_spec.mjs | 7 +++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/test/integration/ink_editor_spec.mjs b/test/integration/ink_editor_spec.mjs index 8754ccfd2f291..6a09f4d488b23 100644 --- a/test/integration/ink_editor_spec.mjs +++ b/test/integration/ink_editor_spec.mjs @@ -31,6 +31,7 @@ import { loadAndWait, scrollIntoView, switchToEditor, + waitForAnnotationModeChanged, waitForNoElement, waitForSelectedEditor, waitForSerialized, @@ -796,7 +797,14 @@ describe("Ink Editor", () => { it("must move an annotation", async () => { await Promise.all( pages.map(async ([browserName, page]) => { - await page.click(getAnnotationSelector("277R"), { count: 2 }); + const modeChangedHandle = await waitForAnnotationModeChanged(page); + const inkRect = await getRect(page, getAnnotationSelector("277R")); + await page.mouse.click( + inkRect.x + inkRect.width / 2, + inkRect.y + inkRect.height / 2, + { count: 2 } + ); + await awaitPromise(modeChangedHandle); const edgeB = getEditorSelector(10); await waitForSelectedEditor(page, edgeB); @@ -808,10 +816,7 @@ describe("Ink Editor", () => { const serialized = await getSerialized(page); expect(serialized).withContext(`In ${browserName}`).toEqual([]); - const editorRect = await page.$eval(edgeB, el => { - const { x, y, width, height } = el.getBoundingClientRect(); - return { x, y, width, height }; - }); + const editorRect = await getRect(page, edgeB); // Select the annotation we want to move. await page.mouse.click(editorRect.x + 2, editorRect.y + 2); diff --git a/test/integration/stamp_editor_spec.mjs b/test/integration/stamp_editor_spec.mjs index 20e854b73dcda..6e76a45b92e34 100644 --- a/test/integration/stamp_editor_spec.mjs +++ b/test/integration/stamp_editor_spec.mjs @@ -40,6 +40,7 @@ import { serializeBitmapDimensions, switchToEditor, waitForAnnotationEditorLayer, + waitForAnnotationModeChanged, waitForEntryInStorage, waitForSelectedEditor, waitForSerialized, @@ -1437,7 +1438,9 @@ describe("Stamp Editor", () => { it("must move an annotation", async () => { await Promise.all( pages.map(async ([browserName, page]) => { + const modeChangedHandle = await waitForAnnotationModeChanged(page); await page.click(getAnnotationSelector("25R"), { count: 2 }); + await awaitPromise(modeChangedHandle); await waitForSelectedEditor(page, getEditorSelector(0)); const editorIds = await getEditors(page, "stamp"); @@ -1484,7 +1487,9 @@ describe("Stamp Editor", () => { it("must update an existing alt-text", async () => { await Promise.all( pages.map(async ([browserName, page]) => { + const modeChangedHandle = await waitForAnnotationModeChanged(page); await page.click(getAnnotationSelector("58R"), { count: 2 }); + await awaitPromise(modeChangedHandle); await waitForSelectedEditor(page, getEditorSelector(4)); const editorIds = await getEditors(page, "stamp"); @@ -1541,7 +1546,9 @@ describe("Stamp Editor", () => { it("must check that the annotation is correctly restored", async () => { await Promise.all( pages.map(async ([browserName, page]) => { + const modeChangedHandle = await waitForAnnotationModeChanged(page); await page.click(getAnnotationSelector("37R"), { count: 2 }); + await awaitPromise(modeChangedHandle); const editorSelector = getEditorSelector(2); await waitForSelectedEditor(page, editorSelector);