aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-01-05 22:54:25 +0000
committerkaniini <nenolod@gmail.com>2019-01-05 22:54:25 +0000
commitb0e8e521fbbae4f601c6d2f449ea0e3effe57932 (patch)
tree474e47d1886b569bae046009077e4dc9009a4cf6 /test
parent8d047c7a72c961f84518b879b6bd92e7a40dabb2 (diff)
parent042852ecf344b4ede15a22ea0279fff8a67b75f0 (diff)
downloadpleroma-b0e8e521fbbae4f601c6d2f449ea0e3effe57932.tar.gz
Merge branch 'fix/multiple-follow-notifications-from-same-user' into 'develop'
Add check to prevent multiple follow notifications from the same user Closes #397 See merge request pleroma/pleroma!591
Diffstat (limited to 'test')
-rw-r--r--test/notification_test.exs37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/notification_test.exs b/test/notification_test.exs
index 31c0d2c64..94fb0ab15 100644
--- a/test/notification_test.exs
+++ b/test/notification_test.exs
@@ -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