Add a view for the move notification
[akkoma] / test / web / mastodon_api / views / notification_view_test.exs
index 81ab82e2baa92f0633db431859b3b116993f9d2c..80b6d414cf178a5494b0fa209a6964ac0e502e3a 100644 (file)
@@ -100,5 +100,35 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
       NotificationView.render("index.json", %{notifications: [notification], for: followed})
 
     assert [expected] == result
+
+    User.perform(:delete, follower)
+    notification = Notification |> Repo.one() |> Repo.preload(:activity)
+
+    assert [] ==
+             NotificationView.render("index.json", %{notifications: [notification], for: followed})
+  end
+
+  test "Move notification" do
+    %{ap_id: old_ap_id} = old_user = insert(:user)
+    %{ap_id: _new_ap_id} = new_user = insert(:user, also_known_as: [old_ap_id])
+    follower = insert(:user)
+
+    User.follow(follower, old_user)
+    Pleroma.Web.ActivityPub.ActivityPub.move(old_user, new_user)
+    Pleroma.Tests.ObanHelpers.perform_all()
+
+    [notification] = Notification.for_user(follower)
+
+    expected = %{
+      id: to_string(notification.id),
+      pleroma: %{is_seen: false},
+      type: "move",
+      account: AccountView.render("show.json", %{user: old_user, for: follower}),
+      target: AccountView.render("show.json", %{user: new_user, for: follower}),
+      created_at: Utils.to_masto_date(notification.inserted_at)
+    }
+
+    assert [expected] ==
+             NotificationView.render("index.json", %{notifications: [notification], for: follower})
   end
 end