summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2019-08-24 17:41:53 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2019-08-24 17:41:53 +0300
commit654d291b6d151bc372bca849ce0b42f723e2bd94 (patch)
tree5df43e9a594bc4948d111c50943f83b9679130af
parent6062017493bd8c8749fcbe590121d20ef94df44f (diff)
update tests
-rw-r--r--lib/pleroma/web/activity_pub/relay.ex27
-rw-r--r--test/web/activity_pub/relay_test.exs36
2 files changed, 45 insertions, 18 deletions
diff --git a/lib/pleroma/web/activity_pub/relay.ex b/lib/pleroma/web/activity_pub/relay.ex
index ce3e30874..c2ac38907 100644
--- a/lib/pleroma/web/activity_pub/relay.ex
+++ b/lib/pleroma/web/activity_pub/relay.ex
@@ -22,13 +22,7 @@ defmodule Pleroma.Web.ActivityPub.Relay do
Logger.info("relay: followed instance: #{target_instance}; id=#{activity.data["id"]}")
{:ok, activity}
else
- {:error, _} = error ->
- Logger.error("error: #{inspect(error)}")
- error
-
- e ->
- Logger.error("error: #{inspect(e)}")
- {:error, e}
+ error -> format_error(error)
end
end
@@ -41,13 +35,7 @@ defmodule Pleroma.Web.ActivityPub.Relay do
Logger.info("relay: unfollowed instance: #{target_instance}: id=#{activity.data["id"]}")
{:ok, activity}
else
- {:error, _} = error ->
- Logger.error("error: #{inspect(error)}")
- error
-
- e ->
- Logger.error("error: #{inspect(e)}")
- {:error, e}
+ error -> format_error(error)
end
end
@@ -57,11 +45,16 @@ defmodule Pleroma.Web.ActivityPub.Relay do
%Object{} = object <- Object.normalize(activity) do
ActivityPub.announce(user, object, nil, true, false)
else
- e ->
- Logger.error("error: #{inspect(e)}")
- {:error, inspect(e)}
+ error -> format_error(error)
end
end
def publish(_), do: {:error, "Not implemented"}
+
+ defp format_error({:error, error}), do: format_error(error)
+
+ defp format_error(error) do
+ Logger.error("error: #{inspect(error)}")
+ {:error, error}
+ end
end
diff --git a/test/web/activity_pub/relay_test.exs b/test/web/activity_pub/relay_test.exs
index aeef91cda..4f7d592a6 100644
--- a/test/web/activity_pub/relay_test.exs
+++ b/test/web/activity_pub/relay_test.exs
@@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.RelayTest do
alias Pleroma.Web.ActivityPub.Relay
import Pleroma.Factory
+ import Mock
test "gets an actor for the relay" do
user = Relay.get_actor()
@@ -56,6 +57,8 @@ defmodule Pleroma.Web.ActivityPub.RelayTest do
end
describe "publish/1" do
+ clear_config([:instance, :federating])
+
test "returns error when activity not `Create` type" do
activity = insert(:like_activity)
assert Relay.publish(activity) == {:error, "Not implemented"}
@@ -66,13 +69,44 @@ defmodule Pleroma.Web.ActivityPub.RelayTest do
assert Relay.publish(activity) == {:error, false}
end
- test "returns announce activity" do
+ test "returns error when object is unknown" do
+ activity =
+ insert(:note_activity,
+ data: %{
+ "type" => "Create",
+ "object" => "http://mastodon.example.org/eee/99541947525187367"
+ }
+ )
+
+ assert Relay.publish(activity) == {:error, nil}
+ end
+
+ test_with_mock "returns announce activity and publish to federate",
+ Pleroma.Web.Federator,
+ [:passthrough],
+ [] do
+ Pleroma.Config.put([:instance, :federating], true)
+ 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"]
+ assert called(Pleroma.Web.Federator.publish(activity, 5))
+ end
+
+ test_with_mock "returns announce activity and not publish to federate",
+ Pleroma.Web.Federator,
+ [:passthrough],
+ [] do
+ Pleroma.Config.put([:instance, :federating], false)
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"]
+ refute called(Pleroma.Web.Federator.publish(activity, 5))
end
end
end