summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIlja <ilja@ilja.space>2022-06-19 16:26:56 +0200
committerIlja <ilja@ilja.space>2022-06-21 12:10:27 +0200
commite21ef5aef389f7cef9ba53525d2d38bb29f5e257 (patch)
treee4d57c43dc7bc1e2c2344dc08328a707ba3f6849 /test
parent34adea8d28cec91f03047989cbbaaf0b402c3a55 (diff)
downloadpleroma-e21ef5aef389f7cef9ba53525d2d38bb29f5e257.tar.gz
pleroma-e21ef5aef389f7cef9ba53525d2d38bb29f5e257.zip
report notifications for privileged users
Instead of `Pleroma.User.all_superusers()` we now use `Pleroma.User.all_superusers(:report_handle)` I also changed it for sending emails, but there were no tests.
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/notification_test.exs18
-rw-r--r--test/pleroma/web/mastodon_api/views/notification_view_test.exs6
2 files changed, 16 insertions, 8 deletions
diff --git a/test/pleroma/notification_test.exs b/test/pleroma/notification_test.exs
index 340a5f841..e1f4b1771 100644
--- a/test/pleroma/notification_test.exs
+++ b/test/pleroma/notification_test.exs
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.NotificationTest do
- use Pleroma.DataCase
+ use Pleroma.DataCase, async: false
import Pleroma.Factory
import Mock
@@ -32,20 +32,26 @@ defmodule Pleroma.NotificationTest do
refute {:ok, [nil]} == Notification.create_notifications(activity)
end
- test "creates a notification for a report" do
+ test "creates a report notification only for privileged users" do
reporting_user = insert(:user)
reported_user = insert(:user)
- {:ok, moderator_user} = insert(:user) |> User.admin_api_update(%{is_moderator: true})
+ moderator_user = insert(:user, is_moderator: true)
- {:ok, activity} = CommonAPI.report(reporting_user, %{account_id: reported_user.id})
+ clear_config([:instance, :moderator_privileges], [])
+ {:ok, activity1} = CommonAPI.report(reporting_user, %{account_id: reported_user.id})
+ {:ok, []} = Notification.create_notifications(activity1)
- {:ok, [notification]} = Notification.create_notifications(activity)
+ clear_config([:instance, :moderator_privileges], [:report_handle])
+ {:ok, activity2} = CommonAPI.report(reporting_user, %{account_id: reported_user.id})
+ {:ok, [notification]} = Notification.create_notifications(activity2)
assert notification.user_id == moderator_user.id
assert notification.type == "pleroma:report"
end
- test "suppresses notification to reporter if reporter is an admin" do
+ test "suppresses notifications for own reports" do
+ clear_config([:instance, :admin_privileges], [:report_handle])
+
reporting_admin = insert(:user, is_admin: true)
reported_user = insert(:user)
other_admin = insert(:user, is_admin: true)
diff --git a/test/pleroma/web/mastodon_api/views/notification_view_test.exs b/test/pleroma/web/mastodon_api/views/notification_view_test.exs
index 8e4c9136a..76338877e 100644
--- a/test/pleroma/web/mastodon_api/views/notification_view_test.exs
+++ b/test/pleroma/web/mastodon_api/views/notification_view_test.exs
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
- use Pleroma.DataCase
+ use Pleroma.DataCase, async: false
alias Pleroma.Activity
alias Pleroma.Chat
@@ -218,9 +218,11 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
end
test "Report notification" do
+ clear_config([:instance, :moderator_privileges], [:report_handle])
+
reporting_user = insert(:user)
reported_user = insert(:user)
- {:ok, moderator_user} = insert(:user) |> User.admin_api_update(%{is_moderator: true})
+ moderator_user = insert(:user, is_moderator: true)
{:ok, activity} = CommonAPI.report(reporting_user, %{account_id: reported_user.id})
{:ok, [notification]} = Notification.create_notifications(activity)