Resolve follow activity from accept/reject without ID (#328)
[akkoma] / test / pleroma / following_relationship_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.FollowingRelationshipTest do
6 use Pleroma.DataCase, async: true
7
8 alias Pleroma.FollowingRelationship
9 alias Pleroma.Web.ActivityPub.InternalFetchActor
10 alias Pleroma.Web.ActivityPub.Relay
11
12 import Pleroma.Factory
13
14 describe "following/1" do
15 test "returns following addresses without internal.fetch" do
16 user = insert(:user)
17 fetch_actor = InternalFetchActor.get_actor()
18 FollowingRelationship.follow(fetch_actor, user, :follow_accept)
19 assert FollowingRelationship.following(fetch_actor) == [user.follower_address]
20 end
21
22 test "returns following addresses without relay" do
23 user = insert(:user)
24 relay_actor = Relay.get_actor()
25 FollowingRelationship.follow(relay_actor, user, :follow_accept)
26 assert FollowingRelationship.following(relay_actor) == [user.follower_address]
27 end
28
29 test "returns following addresses without remote user" do
30 user = insert(:user)
31 actor = insert(:user, local: false)
32 FollowingRelationship.follow(actor, user, :follow_accept)
33 assert FollowingRelationship.following(actor) == [user.follower_address]
34 end
35
36 test "returns following addresses with local user" do
37 user = insert(:user)
38 actor = insert(:user, local: true)
39 FollowingRelationship.follow(actor, user, :follow_accept)
40
41 assert FollowingRelationship.following(actor) == [
42 actor.follower_address,
43 user.follower_address
44 ]
45 end
46 end
47 end