Merge pull request 'fix: Give error message to users when address has already been...
[akkoma] / test / pleroma / web / mastodon_api / views / notification_view_test.exs
index b5e36c86b3a6fa12b11e2c368dcb41383a040768..64d2c8a2eac7a0a1db1d665e55c767444ede2801 100644 (file)
@@ -6,8 +6,6 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
   use Pleroma.DataCase
 
   alias Pleroma.Activity
-  alias Pleroma.Chat
-  alias Pleroma.Chat.MessageReference
   alias Pleroma.Notification
   alias Pleroma.Object
   alias Pleroma.Repo
@@ -22,7 +20,6 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
   alias Pleroma.Web.MastodonAPI.NotificationView
   alias Pleroma.Web.MastodonAPI.StatusView
   alias Pleroma.Web.MediaProxy
-  alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
   import Pleroma.Factory
 
   defp test_notifications_rendering(notifications, user, expected_result) do
@@ -40,30 +37,6 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
     assert expected_result == result
   end
 
-  test "ChatMessage notification" do
-    user = insert(:user)
-    recipient = insert(:user)
-    {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "what's up my dude")
-
-    {:ok, [notification]} = Notification.create_notifications(activity)
-
-    object = Object.normalize(activity, fetch: false)
-    chat = Chat.get(recipient.id, user.ap_id)
-
-    cm_ref = MessageReference.for_chat_and_object(chat, object)
-
-    expected = %{
-      id: to_string(notification.id),
-      pleroma: %{is_seen: false, is_muted: false},
-      type: "pleroma:chat_mention",
-      account: AccountView.render("show.json", %{user: user, for: recipient}),
-      chat_message: MessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}),
-      created_at: Utils.to_masto_date(notification.inserted_at)
-    }
-
-    test_notifications_rendering([notification], recipient, [expected])
-  end
-
   test "Mention notification" do
     user = insert(:user)
     mentioned_user = insert(:user)
@@ -238,7 +211,9 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
       other_user = insert(:user, local: false)
 
       {:ok, activity} = CommonAPI.post(user, %{status: "#morb"})
-      {:ok, emoji_react, _} = Builder.emoji_react(other_user, Object.normalize(activity, fetch: false), ":100a:")
+
+      {:ok, emoji_react, _} =
+        Builder.emoji_react(other_user, Object.normalize(activity, fetch: false), ":100a:")
 
       remoteUrl = "http://evil.website/emoji/100a.png"
       [tag] = emoji_react["tag"]
@@ -259,11 +234,12 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
         pleroma: %{is_seen: false, is_muted: false},
         type: "pleroma:emoji_reaction",
         emoji: ":100a:",
-        emoji_url: (if testProxy, do: MediaProxy.encode_url(remoteUrl), else: remoteUrl),
+        emoji_url: if(testProxy, do: MediaProxy.encode_url(remoteUrl), else: remoteUrl),
         account: AccountView.render("show.json", %{user: other_user, for: user}),
         status: StatusView.render("show.json", %{activity: activity, for: user}),
         created_at: Utils.to_masto_date(notification.inserted_at)
       }
+
       test_notifications_rendering([notification], user, [expected])
     end
   end
@@ -309,6 +285,32 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
     test_notifications_rendering([notification], moderator_user, [expected])
   end
 
+  test "Edit notification" do
+    user = insert(:user)
+    repeat_user = insert(:user)
+
+    {:ok, activity} = CommonAPI.post(user, %{status: "mew"})
+    {:ok, _} = CommonAPI.repeat(activity.id, repeat_user)
+    {:ok, update} = CommonAPI.update(user, activity, %{status: "mew mew"})
+
+    user = Pleroma.User.get_by_ap_id(user.ap_id)
+    activity = Pleroma.Activity.normalize(activity)
+    update = Pleroma.Activity.normalize(update)
+
+    {:ok, [notification]} = Notification.create_notifications(update)
+
+    expected = %{
+      id: to_string(notification.id),
+      pleroma: %{is_seen: false, is_muted: false},
+      type: "update",
+      account: AccountView.render("show.json", %{user: user, for: repeat_user}),
+      created_at: Utils.to_masto_date(notification.inserted_at),
+      status: StatusView.render("show.json", %{activity: activity, for: repeat_user})
+    }
+
+    test_notifications_rendering([notification], repeat_user, [expected])
+  end
+
   test "muted notification" do
     user = insert(:user)
     another_user = insert(:user)