Add test to the follow backend

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-11-27 14:02:51 +01:00
parent 824b1a969e
commit b99625afab
3 changed files with 42 additions and 7 deletions

View File

@@ -579,6 +579,31 @@ defmodule Mobilizon.ActorsTest do
follower = create_test_follower(context)
assert %Ecto.Changeset{} = Actors.change_follower(follower)
end
test "follow/3 makes an actor follow another", %{actor: actor, target_actor: target_actor} do
# Preloading followers/followings
actor = Actors.get_actor_with_everything!(actor.id)
target_actor = Actors.get_actor_with_everything!(target_actor.id)
{:ok, follower} = Actor.follow(actor, target_actor)
assert follower.actor.id == actor.id
# Referesh followers/followings
actor = Actors.get_actor_with_everything!(actor.id)
target_actor = Actors.get_actor_with_everything!(target_actor.id)
assert target_actor.followers |> Enum.map(&(&1.actor_id)) == [actor.id]
assert actor.followings |> Enum.map(&(&1.target_actor_id)) == [target_actor.id]
# Test if actor is already following target actor
{:error, msg} = Actor.follow(actor, target_actor)
assert msg =~ "already following"
# Test if target actor is suspended
target_actor = %{target_actor | suspended: true}
{:error, msg} = Actor.follow(actor, target_actor)
assert msg =~ "suspended"
end
end
describe "members" do