X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=test%2Fnotification_test.exs;h=f2e0f0b0d8ccfa26ae7b6cc5c3f4cc33893e07c1;hb=f3a1f9c3bbb7321876a09b3846b5e10ecf4af94f;hp=abaafd60ef217efd7eb92b71ed94264063d2715a;hpb=8277b29790dfd283d94b995539dcb28e51131150;p=akkoma diff --git a/test/notification_test.exs b/test/notification_test.exs index abaafd60e..f2e0f0b0d 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -179,17 +179,19 @@ defmodule Pleroma.NotificationTest do describe "create_notification" do @tag needs_streamer: true test "it creates a notification for user and send to the 'user' and the 'user:notification' stream" do - user = insert(:user) + %{user: user, token: oauth_token} = oauth_access(["read"]) task = Task.async(fn -> - Streamer.get_topic_and_add_socket("user", user) + {:ok, _topic} = Streamer.get_topic_and_add_socket("user", user, oauth_token) assert_receive {:render_with_user, _, _, _}, 4_000 end) task_user_notification = Task.async(fn -> - Streamer.get_topic_and_add_socket("user:notification", user) + {:ok, _topic} = + Streamer.get_topic_and_add_socket("user:notification", user, oauth_token) + assert_receive {:render_with_user, _, _, _}, 4_000 end) @@ -217,7 +219,10 @@ defmodule Pleroma.NotificationTest do muter = Repo.get(User, muter.id) {:ok, activity} = CommonAPI.post(muted, %{status: "Hi @#{muter.nickname}"}) - assert Notification.create_notification(activity, muter) + notification = Notification.create_notification(activity, muter) + + assert notification.id + assert notification.seen end test "notification created if user is muted without notifications" do @@ -243,52 +248,24 @@ defmodule Pleroma.NotificationTest do in_reply_to_status_id: activity.id }) - assert Notification.create_notification(activity, muter) - end - - test "it disables notifications from followers" do - follower = insert(:user) - - followed = - insert(:user, notification_settings: %Pleroma.User.NotificationSetting{followers: false}) + notification = Notification.create_notification(activity, muter) - User.follow(follower, followed) - {:ok, activity} = CommonAPI.post(follower, %{status: "hey @#{followed.nickname}"}) - refute Notification.create_notification(activity, followed) + assert notification.id + assert notification.seen end - test "it disables notifications from non-followers" do + test "it disables notifications from strangers" do follower = insert(:user) followed = insert(:user, - notification_settings: %Pleroma.User.NotificationSetting{non_followers: false} + notification_settings: %Pleroma.User.NotificationSetting{block_from_strangers: true} ) {:ok, activity} = CommonAPI.post(follower, %{status: "hey @#{followed.nickname}"}) refute Notification.create_notification(activity, followed) end - test "it disables notifications from people the user follows" do - follower = - insert(:user, notification_settings: %Pleroma.User.NotificationSetting{follows: false}) - - followed = insert(:user) - User.follow(follower, followed) - follower = Repo.get(User, follower.id) - {:ok, activity} = CommonAPI.post(followed, %{status: "hey @#{follower.nickname}"}) - refute Notification.create_notification(activity, follower) - end - - test "it disables notifications from people the user does not follow" do - follower = - insert(:user, notification_settings: %Pleroma.User.NotificationSetting{non_follows: false}) - - followed = insert(:user) - {:ok, activity} = CommonAPI.post(followed, %{status: "hey @#{follower.nickname}"}) - refute Notification.create_notification(activity, follower) - end - test "it doesn't create a notification for user if he is the activity author" do activity = insert(:note_activity) author = User.get_cached_by_ap_id(activity.data["actor"]) @@ -332,9 +309,9 @@ defmodule Pleroma.NotificationTest do User.subscribe(subscriber, user) insert(:filter, user: subscriber, phrase: "cofe", hide: true) - {:ok, status} = CommonAPI.post(user, %{"status" => "got cofe?"}) + {:ok, status} = CommonAPI.post(user, %{status: "got cofe?"}) - assert {:ok, [nil]} == Notification.create_notifications(status) + assert {:ok, []} == Notification.create_notifications(status) end test "it creates notifications if content matches with a not irreversible filter" do @@ -344,10 +321,11 @@ defmodule Pleroma.NotificationTest do User.subscribe(subscriber, user) insert(:filter, user: subscriber, phrase: "cofe", hide: false) - {:ok, status} = CommonAPI.post(user, %{"status" => "got cofe?"}) + {:ok, status} = CommonAPI.post(user, %{status: "got cofe?"}) {:ok, [notification]} = Notification.create_notifications(status) assert notification + refute notification.seen end test "it creates notifications when someone likes user's status with a filtered word" do @@ -355,12 +333,13 @@ defmodule Pleroma.NotificationTest do other_user = insert(:user) insert(:filter, user: user, phrase: "tesla", hide: true) - {:ok, activity_one} = CommonAPI.post(user, %{"status" => "wow tesla"}) - {:ok, activity_two, _} = CommonAPI.favorite(activity_one.id, other_user) + {:ok, activity_one} = CommonAPI.post(user, %{status: "wow tesla"}) + {:ok, activity_two} = CommonAPI.favorite(other_user, activity_one.id) {:ok, [notification]} = Notification.create_notifications(activity_two) assert notification + refute notification.seen end end @@ -1043,6 +1022,7 @@ defmodule Pleroma.NotificationTest do [notification] = Notification.for_user(user) assert notification.activity.object + assert notification.seen end test "it doesn't return notifications for muted user with notifications", %{user: user} do @@ -1133,21 +1113,20 @@ defmodule Pleroma.NotificationTest do assert length(Notification.for_user(user, %{with_muted: true})) == 1 end - test "it doesn't return notifications about mentiones with filtered word", %{user: user} do + test "it doesn't return notifications about mentions with filtered word", %{user: user} do insert(:filter, user: user, phrase: "cofe", hide: true) another_user = insert(:user) - {:ok, _activity} = - CommonAPI.post(another_user, %{"status" => "@#{user.nickname} got cofe?"}) + {:ok, _activity} = CommonAPI.post(another_user, %{status: "@#{user.nickname} got cofe?"}) assert Enum.empty?(Notification.for_user(user)) end - test "it returns notifications about mentiones with not hidden filtered word", %{user: user} do + test "it returns notifications about mentions with not hidden filtered word", %{user: user} do insert(:filter, user: user, phrase: "test", hide: false) another_user = insert(:user) - {:ok, _} = CommonAPI.post(another_user, %{"status" => "@#{user.nickname} test"}) + {:ok, _} = CommonAPI.post(another_user, %{status: "@#{user.nickname} test"}) assert length(Notification.for_user(user)) == 1 end @@ -1156,8 +1135,8 @@ defmodule Pleroma.NotificationTest do insert(:filter, user: user, phrase: "cofe", hide: true) another_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Give me my cofe!"}) - {:ok, _, _} = CommonAPI.favorite(activity.id, another_user) + {:ok, activity} = CommonAPI.post(user, %{status: "Give me my cofe!"}) + {:ok, _} = CommonAPI.favorite(another_user, activity.id) assert length(Notification.for_user(user)) == 1 end