Merge branch 'develop' into 'remove-twitter-api'
[akkoma] / test / support / builders / activity_builder.ex
index 0f9cd0d15cae388bc0122bfa47cbab75f6aa9586..7c4950bfa08a6b9559f587daa3e7bc5a49b77b24 100644 (file)
@@ -1,29 +1,40 @@
 defmodule Pleroma.Builders.ActivityBuilder do
-  alias Pleroma.Builders.UserBuilder
   alias Pleroma.Web.ActivityPub.ActivityPub
 
   def build(data \\ %{}, opts \\ %{}) do
     user = opts[:user] || Pleroma.Factory.insert(:user)
+
     activity = %{
-      "id" => 1,
+      "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(),
       "actor" => user.ap_id,
       "to" => ["https://www.w3.org/ns/activitystreams#Public"],
+      "type" => "Create",
       "object" => %{
         "type" => "Note",
-        "content" => "test"
+        "content" => "test",
+        "to" => ["https://www.w3.org/ns/activitystreams#Public"]
       }
     }
+
     Map.merge(activity, data)
   end
 
   def insert(data \\ %{}, opts \\ %{}) do
     activity = build(data, opts)
-    ActivityPub.insert(activity)
+
+    case ActivityPub.insert(activity) do
+      ok = {:ok, activity} ->
+        ActivityPub.notify_and_stream(activity)
+        ok
+
+      error ->
+        error
+    end
   end
 
   def insert_list(times, data \\ %{}, opts \\ %{}) do
-    Enum.map(1..times, fn (n) ->
-      {:ok, activity} = insert(Map.merge(data, %{"id" => n}))
+    Enum.map(1..times, fn _n ->
+      {:ok, activity} = insert(data, opts)
       activity
     end)
   end
@@ -32,7 +43,7 @@ defmodule Pleroma.Builders.ActivityBuilder do
     user = Pleroma.Factory.insert(:user)
 
     public = build(%{"id" => 1}, %{user: user})
-    non_public = build(%{"id" => 2, "to" => []}, %{user: user})
+    non_public = build(%{"id" => 2, "to" => [user.follower_address]}, %{user: user})
 
     {:ok, public} = ActivityPub.insert(public)
     {:ok, non_public} = ActivityPub.insert(non_public)