Browse Source

update tests

tags/v1.1.4
Maksim Pechnikov 4 years ago
parent
commit
654d291b6d
2 changed files with 45 additions and 18 deletions
  1. +10
    -17
      lib/pleroma/web/activity_pub/relay.ex
  2. +35
    -1
      test/web/activity_pub/relay_test.exs

+ 10
- 17
lib/pleroma/web/activity_pub/relay.ex View File

@@ -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

+ 35
- 1
test/web/activity_pub/relay_test.exs View File

@@ -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

Loading…
Cancel
Save