X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fsupport%2Fbuilders%2Factivity_builder.ex;h=7c4950bfa08a6b9559f587daa3e7bc5a49b77b24;hb=bd040fe96afaf39c1433cd3695bed0ee2c0f55ed;hp=0b7f79c5f32f7d70b6a4e1df63dc5603451eb33a;hpb=9a8850eb9ec9eba9350fcb6aadf70fd966623c94;p=akkoma diff --git a/test/support/builders/activity_builder.ex b/test/support/builders/activity_builder.ex index 0b7f79c5f..7c4950bfa 100644 --- a/test/support/builders/activity_builder.ex +++ b/test/support/builders/activity_builder.ex @@ -1,29 +1,49 @@ defmodule Pleroma.Builders.ActivityBuilder do - alias Pleroma.Builders.UserBuilder alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.User - def public_and_non_public do - {:ok, user} = UserBuilder.insert - public = %{ - "id" => 1, + def build(data \\ %{}, opts \\ %{}) do + user = opts[:user] || Pleroma.Factory.insert(:user) + + activity = %{ + "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"] } } - non_public = %{ - "id" => 2, - "actor" => user.ap_id, - "to" => [], - "object" => %{ - "type" => "Note", - "content" => "test" - } - } + Map.merge(activity, data) + end + + def insert(data \\ %{}, opts \\ %{}) do + activity = build(data, opts) + + 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(data, opts) + activity + end) + end + + def public_and_non_public do + user = Pleroma.Factory.insert(:user) + + public = build(%{"id" => 1}, %{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)