summaryrefslogtreecommitdiff
path: root/test/web/activity_pub/relay_test.exs
diff options
context:
space:
mode:
authorMaxim Filippov <colixer@gmail.com>2019-08-14 22:45:32 +0000
committerMaxim Filippov <colixer@gmail.com>2019-08-14 22:45:32 +0000
commitec969eec5149c5fe2a3e676ea07384b4597487f1 (patch)
treeb725022b93c7f354116e50d54009e0dc5dc19eaf /test/web/activity_pub/relay_test.exs
parentb27fafe161241c954b713281bebd6ffe1e990884 (diff)
parent27b747546a7796de57e88f454b2c2810c7523f97 (diff)
downloadpleroma-ec969eec5149c5fe2a3e676ea07384b4597487f1.tar.gz
pleroma-ec969eec5149c5fe2a3e676ea07384b4597487f1.zip
Merge branch 'develop' into 'fix/admin-api-user-deletion'
# Conflicts: # CHANGELOG.md
Diffstat (limited to 'test/web/activity_pub/relay_test.exs')
-rw-r--r--test/web/activity_pub/relay_test.exs62
1 files changed, 61 insertions, 1 deletions
diff --git a/test/web/activity_pub/relay_test.exs b/test/web/activity_pub/relay_test.exs
index 21a63c493..e10b808f7 100644
--- a/test/web/activity_pub/relay_test.exs
+++ b/test/web/activity_pub/relay_test.exs
@@ -5,11 +5,71 @@
defmodule Pleroma.Web.ActivityPub.RelayTest do
use Pleroma.DataCase
+ alias Pleroma.Activity
+ alias Pleroma.Object
+ alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.Relay
+ import Pleroma.Factory
+
test "gets an actor for the relay" do
user = Relay.get_actor()
+ assert user.ap_id == "#{Pleroma.Web.Endpoint.url()}/relay"
+ end
+
+ describe "follow/1" do
+ test "returns errors when user not found" do
+ assert Relay.follow("test-ap-id") == {:error, "Could not fetch by AP id"}
+ end
+
+ test "returns activity" do
+ user = insert(:user)
+ service_actor = Relay.get_actor()
+ assert {:ok, %Activity{} = activity} = Relay.follow(user.ap_id)
+ assert activity.actor == "#{Pleroma.Web.Endpoint.url()}/relay"
+ assert user.ap_id in activity.recipients
+ assert activity.data["type"] == "Follow"
+ assert activity.data["actor"] == service_actor.ap_id
+ assert activity.data["object"] == user.ap_id
+ end
+ end
+
+ describe "unfollow/1" do
+ test "returns errors when user not found" do
+ assert Relay.unfollow("test-ap-id") == {:error, "Could not fetch by AP id"}
+ end
+
+ test "returns activity" do
+ user = insert(:user)
+ service_actor = Relay.get_actor()
+ ActivityPub.follow(service_actor, user)
+ assert {:ok, %Activity{} = activity} = Relay.unfollow(user.ap_id)
+ assert activity.actor == "#{Pleroma.Web.Endpoint.url()}/relay"
+ assert user.ap_id in activity.recipients
+ assert activity.data["type"] == "Undo"
+ assert activity.data["actor"] == service_actor.ap_id
+ assert activity.data["to"] == [user.ap_id]
+ end
+ end
+
+ describe "publish/1" do
+ test "returns error when activity not `Create` type" do
+ activity = insert(:like_activity)
+ assert Relay.publish(activity) == {:error, "Not implemented"}
+ end
+
+ test "returns error when activity not public" do
+ activity = insert(:direct_note_activity)
+ assert Relay.publish(activity) == {:error, false}
+ end
- assert user.ap_id =~ "/relay"
+ test "returns announce activity" do
+ service_actor = Relay.get_actor()
+ note = insert(:note_activity)
+ assert {:ok, %Activity{} = activity, %Object{} = obj} = Relay.publish(note)
+ assert activity.data["type"] == "Announce"
+ assert activity.data["actor"] == service_actor.ap_id
+ assert activity.data["object"] == obj.data["id"]
+ end
end
end