Stash
[akkoma] / test / notification_test.exs
index 31c0d2c64848f258748786722d8c14e35ca6fac9..94fb0ab154ae81a10583041a549f247091632cc7 100644 (file)
@@ -46,6 +46,43 @@ defmodule Pleroma.NotificationTest do
 
       assert nil == Notification.create_notification(activity, author)
     end
+
+    test "it doesn't create a notification for follow-unfollow-follow chains" do
+      user = insert(:user)
+      followed_user = insert(:user)
+      {:ok, _, _, activity} = TwitterAPI.follow(user, %{"user_id" => followed_user.id})
+      Notification.create_notification(activity, followed_user)
+      TwitterAPI.unfollow(user, %{"user_id" => followed_user.id})
+      {:ok, _, _, activity_dupe} = TwitterAPI.follow(user, %{"user_id" => followed_user.id})
+      assert nil == Notification.create_notification(activity_dupe, followed_user)
+    end
+
+    test "it doesn't create a notification for like-unlike-like chains" do
+      user = insert(:user)
+      liked_user = insert(:user)
+      {:ok, status} = TwitterAPI.create_status(liked_user, %{"status" => "Yui is best yuru"})
+      {:ok, fav_status} = TwitterAPI.fav(user, status.id)
+      Notification.create_notification(fav_status, liked_user)
+      TwitterAPI.unfav(user, status.id)
+      {:ok, dupe} = TwitterAPI.fav(user, status.id)
+      assert nil == Notification.create_notification(dupe, liked_user)
+    end
+
+    test "it doesn't create a notification for repeat-unrepeat-repeat chains" do
+      user = insert(:user)
+      retweeted_user = insert(:user)
+
+      {:ok, status} =
+        TwitterAPI.create_status(retweeted_user, %{
+          "status" => "Send dupe notifications to the shadow realm"
+        })
+
+      {:ok, retweeted_activity} = TwitterAPI.repeat(user, status.id)
+      Notification.create_notification(retweeted_activity, retweeted_user)
+      TwitterAPI.unrepeat(user, status.id)
+      {:ok, dupe} = TwitterAPI.repeat(user, status.id)
+      assert nil == Notification.create_notification(dupe, retweeted_user)
+    end
   end
 
   describe "get notification" do