alias Pleroma.{User, Repo}
alias Pleroma.Web.OStatus
alias Pleroma.Web.Websub.WebsubClientSubscription
+ alias Pleroma.Web.CommonAPI
use Pleroma.DataCase
import Pleroma.Factory
followed = User.get_by_ap_id(followed.ap_id)
assert followed.info["follower_count"] == 1
- assert user.following == [User.ap_followers(followed)]
+ assert User.ap_followers(followed) in user.following
end
test "following a remote user will ensure a websub subscription is present" do
assert followed.local == false
{:ok, user} = User.follow(user, followed)
- assert user.following == [User.ap_followers(followed)]
+ assert User.ap_followers(followed) in user.following
query = from w in WebsubClientSubscription,
where: w.topic == ^followed.info["topic"]
assert user.following == []
end
+ test "unfollow doesn't unfollow yourself" do
+ user = insert(:user)
+
+ {:error, _} = User.unfollow(user, user)
+
+ assert user.following == [user.ap_id]
+ end
+
+
test "test if a user is following another user" do
followed = insert(:user)
user = insert(:user, %{following: [User.ap_followers(followed)]})
refute User.blocks?(user, blocked_user)
end
end
+
+ test "get recipients from activity" do
+ actor = insert(:user)
+ user = insert(:user, local: true)
+ user_two = insert(:user, local: false)
+ addressed = insert(:user, local: true)
+ addressed_remote = insert(:user, local: false)
+ {:ok, activity} = CommonAPI.post(actor, %{"status" => "hey @#{addressed.nickname} @#{addressed_remote.nickname}"})
+
+ assert [addressed] == User.get_recipients_from_activity(activity)
+
+ {:ok, user} = User.follow(user, actor)
+ {:ok, user_two} = User.follow(user_two, actor)
+ recipients = User.get_recipients_from_activity(activity)
+ assert length(recipients) == 2
+ assert user in recipients
+ assert addressed in recipients
+ end
end