diff options
| author | kaniini <nenolod@gmail.com> | 2019-01-05 22:54:25 +0000 | 
|---|---|---|
| committer | kaniini <nenolod@gmail.com> | 2019-01-05 22:54:25 +0000 | 
| commit | b0e8e521fbbae4f601c6d2f449ea0e3effe57932 (patch) | |
| tree | 474e47d1886b569bae046009077e4dc9009a4cf6 /test | |
| parent | 8d047c7a72c961f84518b879b6bd92e7a40dabb2 (diff) | |
| parent | 042852ecf344b4ede15a22ea0279fff8a67b75f0 (diff) | |
| download | pleroma-b0e8e521fbbae4f601c6d2f449ea0e3effe57932.tar.gz pleroma-b0e8e521fbbae4f601c6d2f449ea0e3effe57932.zip  | |
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.exs | 37 | 
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  | 
