diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2019-08-02 18:16:04 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2019-08-02 18:16:04 +0300 |
commit | 9d4f34fbcb1a8e2eca424b3a3374c9f9af972574 (patch) | |
tree | c5943eb5d2652e08cc12d0b58a992376c425e66d /test/notification_test.exs | |
parent | d2da3d30f3349946500423bab53e0c1221ab7b9b (diff) | |
parent | 5ff8f07ca906d77a6ec1d5ba912a787f855364f9 (diff) | |
download | pleroma-9d4f34fbcb1a8e2eca424b3a3374c9f9af972574.tar.gz pleroma-9d4f34fbcb1a8e2eca424b3a3374c9f9af972574.zip |
Merge branch 'develop' into feature/digest-email
Diffstat (limited to 'test/notification_test.exs')
-rw-r--r-- | test/notification_test.exs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/notification_test.exs b/test/notification_test.exs index dd7bbacc4..80ea2a085 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -611,6 +611,64 @@ defmodule Pleroma.NotificationTest do assert Enum.empty?(Notification.for_user(user)) end + + test "notifications are deleted if a local user is deleted" do + user = insert(:user) + other_user = insert(:user) + + {:ok, _activity} = + CommonAPI.post(user, %{"status" => "hi @#{other_user.nickname}", "visibility" => "direct"}) + + refute Enum.empty?(Notification.for_user(other_user)) + + User.delete(user) + + assert Enum.empty?(Notification.for_user(other_user)) + end + + test "notifications are deleted if a remote user is deleted" do + remote_user = insert(:user) + local_user = insert(:user) + + dm_message = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "type" => "Create", + "actor" => remote_user.ap_id, + "id" => remote_user.ap_id <> "/activities/test", + "to" => [local_user.ap_id], + "cc" => [], + "object" => %{ + "type" => "Note", + "content" => "Hello!", + "tag" => [ + %{ + "type" => "Mention", + "href" => local_user.ap_id, + "name" => "@#{local_user.nickname}" + } + ], + "to" => [local_user.ap_id], + "cc" => [], + "attributedTo" => remote_user.ap_id + } + } + + {:ok, _dm_activity} = Transmogrifier.handle_incoming(dm_message) + + refute Enum.empty?(Notification.for_user(local_user)) + + delete_user_message = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "id" => remote_user.ap_id <> "/activities/delete", + "actor" => remote_user.ap_id, + "type" => "Delete", + "object" => remote_user.ap_id + } + + {:ok, _delete_activity} = Transmogrifier.handle_incoming(delete_user_message) + + assert Enum.empty?(Notification.for_user(local_user)) + end end describe "for_user" do |