Add tests for subscriptions
authorSadposter <hannah+pleroma@coffee-and-dreams.uk>
Fri, 5 Apr 2019 14:14:19 +0000 (15:14 +0100)
committerHannah Ward <Hannah.ward9001@gmail.com>
Fri, 5 Apr 2019 14:30:29 +0000 (15:30 +0100)
test/notification_test.exs

index 12b4292aa8c4259aa977303b3a0695abb9dbcf5c..3a11d493b0ce4f2aa42d1bcc8cf62b7d63c5a48a 100644 (file)
@@ -29,6 +29,18 @@ defmodule Pleroma.NotificationTest do
       assert notification.activity_id == activity.id
       assert other_notification.activity_id == activity.id
     end
+
+
+    test "it creates a notification for subscribed users" do
+      user = insert(:user)
+      subscriber = insert(:user)
+
+      {:ok, _, _} = TwitterAPI.subscribe(subscriber, %{"user_id" => user.id})
+      {:ok, status} = TwitterAPI.create_status(user, %{"status" => "Akariiiin"})
+      {:ok, [notification]} = Notification.create_notifications(status)
+      
+      assert notification.user_id == subscriber.id
+    end
   end
 
   describe "create_notification" do
@@ -84,6 +96,16 @@ defmodule Pleroma.NotificationTest do
       {:ok, dupe} = TwitterAPI.repeat(user, status.id)
       assert nil == Notification.create_notification(dupe, retweeted_user)
     end
+
+    test "it doesn't create duplicate notifications for follow+subscribed users" do
+      user = insert(:user)
+      subscriber = insert(:user)
+
+      {:ok, _, _, _} = TwitterAPI.follow(subscriber, %{"user_id" => user.id})
+      {:ok, _, _} = TwitterAPI.subscribe(subscriber, %{"user_id" => user.id})
+      {:ok, status} = TwitterAPI.create_status(user, %{"status" => "Akariiiin"})
+      {:ok, [_notif]} = Notification.create_notifications(status)
+    end
   end
 
   describe "get notification" do