From acc5a2153a55f90bd7e1491f34096cd681d11ff1 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sun, 23 Feb 2025 18:52:19 +0100 Subject: [PATCH] Introduce a generic `clearEditors` helper function This replaces the various copies of this logic with a single helper that we template for each editor type, similar to what we already do for the `switchToEditor` helper. --- test/integration/freetext_editor_spec.mjs | 9 ++------- test/integration/ink_editor_spec.mjs | 7 ++----- test/integration/stamp_editor_spec.mjs | 11 ++--------- test/integration/test_utils.mjs | 7 +++++++ 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/test/integration/freetext_editor_spec.mjs b/test/integration/freetext_editor_spec.mjs index 9056ca222..29c24a487 100644 --- a/test/integration/freetext_editor_spec.mjs +++ b/test/integration/freetext_editor_spec.mjs @@ -15,6 +15,7 @@ import { awaitPromise, + clearEditors, closePages, copy, copyToClipboard, @@ -59,13 +60,7 @@ import { PNG } from "pngjs"; const selectAll = selectEditors.bind(null, "freeText"); -const clearAll = async page => { - await selectAll(page); - await page.keyboard.down("Control"); - await page.keyboard.press("Backspace"); - await page.keyboard.up("Control"); - await waitForStorageEntries(page, 0); -}; +const clearAll = clearEditors.bind(null, "freeText"); const commit = async page => { await page.keyboard.press("Escape"); diff --git a/test/integration/ink_editor_spec.mjs b/test/integration/ink_editor_spec.mjs index a9de1bd3e..ea6634a5a 100644 --- a/test/integration/ink_editor_spec.mjs +++ b/test/integration/ink_editor_spec.mjs @@ -15,6 +15,7 @@ import { awaitPromise, + clearEditors, closePages, dragAndDrop, getAnnotationSelector, @@ -42,11 +43,7 @@ import { const selectAll = selectEditors.bind(null, "ink"); -const clearAll = async page => { - await selectAll(page); - await page.keyboard.press("Backspace"); - await waitForStorageEntries(page, 0); -}; +const clearAll = clearEditors.bind(null, "ink"); const commit = async page => { await page.keyboard.press("Escape"); diff --git a/test/integration/stamp_editor_spec.mjs b/test/integration/stamp_editor_spec.mjs index 8f319ba75..fbd153762 100644 --- a/test/integration/stamp_editor_spec.mjs +++ b/test/integration/stamp_editor_spec.mjs @@ -17,6 +17,7 @@ import { applyFunctionToEditor, awaitPromise, cleanupEditing, + clearEditors, clearInput, closePages, copy, @@ -38,7 +39,6 @@ import { pasteFromClipboard, scrollIntoView, selectEditor, - selectEditors, serializeBitmapDimensions, switchToEditor, unselectEditor, @@ -47,7 +47,6 @@ import { waitForEntryInStorage, waitForSelectedEditor, waitForSerialized, - waitForStorageEntries, waitForTimeout, } from "./test_utils.mjs"; import { fileURLToPath } from "url"; @@ -57,13 +56,7 @@ import { PNG } from "pngjs"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const selectAll = selectEditors.bind(null, "stamp"); - -const clearAll = async page => { - await selectAll(page); - await page.keyboard.press("Backspace"); - await waitForStorageEntries(page, 0); -}; +const clearAll = clearEditors.bind(null, "stamp"); const waitForImage = async (page, selector) => { await page.waitForSelector(`${selector} canvas`); diff --git a/test/integration/test_utils.mjs b/test/integration/test_utils.mjs index d204a59d3..bd0af5f56 100644 --- a/test/integration/test_utils.mjs +++ b/test/integration/test_utils.mjs @@ -816,6 +816,12 @@ async function selectEditors(name, page) { ); } +async function clearEditors(name, page) { + await selectEditors(name, page); + await page.keyboard.press("Backspace"); + await waitForStorageEntries(page, 0); +} + function waitForNoElement(page, selector) { return page.waitForFunction( sel => !document.querySelector(sel), @@ -888,6 +894,7 @@ export { applyFunctionToEditor, awaitPromise, cleanupEditing, + clearEditors, clearInput, closePages, closeSinglePage,