From 4704d80e823e87b39180e3d352e27c30b022ede6 Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 1 May 2026 16:07:24 +0800 Subject: [PATCH] ci: test ep_font_color and ep_hash_auth in with-plugins matrix (#7639) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: add ep_font_color and ep_hash_auth to plugin test matrix These are the #12 and #14 most-installed Etherpad plugins on npm (last 30d) and were the only top-15 plugins not exercised by the withpluginsLinux / withpluginsWindows / Playwright with-plugins jobs. Adding them broadens coverage of the plugin loader against two real-world hooks: aceEditorCSS / aceAttribsToClasses (ep_font_color) and authenticate / handleMessage (ep_hash_auth). ep_hash_auth's authenticate hook is a no-op unless a Basic auth header is sent and a matching settings.users[user].hash exists, so it falls through cleanly with the default test settings. Co-Authored-By: Claude Opus 4.7 (1M context) * test(change_user_color): close users popup before opening chat The "Own user color is shown when you enter a chat" spec leaves the users popup open after picking a color, then calls showChat(). In the with-plugins matrix the popup overlaps #chaticon and intercepts pointer events, so the click in showChat() is retried until the 90s timeout (× 5 retries ≈ 7m), failing both Firefox and Chrome with-plugins jobs. Toggle the users button off and wait for popup-show to drop before clicking the chat icon, matching the close pattern used in a11y_dialogs.spec.ts. Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context) --- .github/workflows/backend-tests.yml | 4 ++++ .github/workflows/frontend-tests.yml | 4 ++++ src/tests/frontend-new/specs/change_user_color.spec.ts | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 7a16142ca..e5d3818ea 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -126,7 +126,9 @@ jobs: ep_align ep_author_hover ep_cursortrace + ep_font_color ep_font_size + ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest @@ -238,7 +240,9 @@ jobs: ep_align ep_author_hover ep_cursortrace + ep_font_color ep_font_size + ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index 78ddc6ec3..f8a7ff504 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -217,7 +217,9 @@ jobs: pnpm add -w ep_align ep_author_hover + ep_font_color ep_font_size + ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest @@ -305,7 +307,9 @@ jobs: pnpm add -w ep_align ep_author_hover + ep_font_color ep_font_size + ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest diff --git a/src/tests/frontend-new/specs/change_user_color.spec.ts b/src/tests/frontend-new/specs/change_user_color.spec.ts index 336d3157c..153104eb3 100644 --- a/src/tests/frontend-new/specs/change_user_color.spec.ts +++ b/src/tests/frontend-new/specs/change_user_color.spec.ts @@ -84,6 +84,11 @@ test.describe('change user color', function () { await $colorPickerSave.click(); + // Close the users popup so it stops intercepting pointer events on #chaticon. + // Without this, in the with-plugins matrix the popup overlaps the chat icon + // and showChat() retries clicks until it times out. + await $userButton.click(); + await expect(page.locator('#users')).not.toHaveClass(/popup-show/); // click on the chat button to make chat visible await showChat(page) await sendChatMessage(page, 'O hi');