commit: 833117f5738c286864d525aea9a87d1a7c193ff3
parent 4afe211e50466606c898e3fbd08b617413ef2e16
Author: Mark Felder <feld@feld.me>
Date:   Fri, 29 Dec 2023 12:18:23 -0500
Fix tests
Need to handle the edge case of no valid HTTP response which has no status code
Diffstat:
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex
@@ -128,6 +128,12 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
           %{status: 410} -> {:discard, :not_found}
           _ -> {:error, e}
         end
+
+      e ->
+        unless params[:unreachable_since], do: Instances.set_unreachable(inbox)
+        Logger.metadata(activity: id, inbox: inbox)
+        Logger.error("Publisher failed to inbox #{inbox} #{inspect(e)}")
+        {:error, e}
     end
   end
 
diff --git a/test/pleroma/web/activity_pub/publisher_test.exs b/test/pleroma/web/activity_pub/publisher_test.exs
@@ -212,7 +212,8 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do
       actor = insert(:user)
       inbox = "http://404.site/users/nick1/inbox"
 
-      assert {:error, _} = Publisher.publish_one(%{inbox: inbox, json: "{}", actor: actor, id: 1})
+      assert {:discard, _} =
+               Publisher.publish_one(%{inbox: inbox, json: "{}", actor: actor, id: 1})
 
       assert called(Instances.set_unreachable(inbox))
     end