From 504c0af8671e9f5510b8e4358eb21a3f2bb7497c Mon Sep 17 00:00:00 2001 From: SimpleTest Date: Fri, 24 Jul 2026 20:56:15 +0300 Subject: [PATCH] fix(moderation): keep signal pagination with its queue --- lib/who_need_help_web/live/moderation_live.ex | 24 ++++++----- .../live/mutual_aid_live_test.exs | 43 +++++++++++++++++++ 2 files changed, 57 insertions(+), 10 deletions(-) diff --git a/lib/who_need_help_web/live/moderation_live.ex b/lib/who_need_help_web/live/moderation_live.ex index cc1fb35..a8fe7ba 100644 --- a/lib/who_need_help_web/live/moderation_live.ex +++ b/lib/who_need_help_web/live/moderation_live.ex @@ -396,7 +396,11 @@ defmodule WhoNeedHelpWeb.ModerationLive do -
+

{gettext("Reported evidence")}

@@ -421,17 +425,9 @@ defmodule WhoNeedHelpWeb.ModerationLive do {gettext("This report has no linked conversation.")}

-
-
+

{gettext("Open abuse signals")}

@@ -471,6 +467,14 @@ defmodule WhoNeedHelpWeb.ModerationLive do {gettext("No open signals.")}

+
diff --git a/test/who_need_help_web/live/mutual_aid_live_test.exs b/test/who_need_help_web/live/mutual_aid_live_test.exs index 4c2b58f..e1cf205 100644 --- a/test/who_need_help_web/live/mutual_aid_live_test.exs +++ b/test/who_need_help_web/live/mutual_aid_live_test.exs @@ -6,6 +6,7 @@ defmodule WhoNeedHelpWeb.MutualAidLiveTest do alias WhoNeedHelp.{Accounts, Activities, Catalog, Help, Messaging, Notifications, Trust} alias WhoNeedHelp.Repo + alias WhoNeedHelp.Trust.AbuseSignal setup :register_and_log_in_user @@ -1147,6 +1148,48 @@ defmodule WhoNeedHelpWeb.MutualAidLiveTest do assert evidence_html =~ "Evidence message" end + test "abuse-signal pagination stays available without opening report evidence", %{ + conn: conn, + user: user + } do + user |> Ecto.Changeset.change(role: :moderator) |> Repo.update!() + subject = user_fixture(display_name: "Signal subject") + + for sequence <- 1..25 do + %AbuseSignal{} + |> AbuseSignal.changeset(%{ + kind: :manual, + subject_id: subject.id, + metadata: %{"sequence" => sequence} + }) + |> Repo.insert!() + end + + {:ok, view, _html} = live(conn, ~p"/moderation") + + assert has_element?( + view, + "#abuse-signals > button[phx-click='load-more-signals']" + ) + + refute has_element?(view, "#report-evidence button[phx-click='load-more-signals']") + + view + |> element("#abuse-signals > button[phx-click='load-more-signals']") + |> render_click() + + assert view + |> render() + |> LazyHTML.from_document() + |> LazyHTML.query("#abuse-signals article") + |> Enum.count() == 25 + + refute has_element?( + view, + "#abuse-signals > button[phx-click='load-more-signals']" + ) + end + test "request page exposes report and block controls for another user", %{conn: conn} do category = Catalog.seed_defaults() requester = user_fixture(display_name: "Requester")