summaryrefslogtreecommitdiff
path: root/test/support/factory.ex
diff options
context:
space:
mode:
authorSean King <seanking2919@protonmail.com>2021-06-04 14:42:44 -0600
committerSean King <seanking2919@protonmail.com>2021-06-04 14:42:44 -0600
commitdc4814f0cdc12a552001e5e22c979060e4f3f865 (patch)
tree38f8cb1729338768da447a27ae243c27d301c7bd /test/support/factory.ex
parent2de41770d04cf07ed8775a307b6d457a4750e265 (diff)
parent0c56f9de0d607b88fd107e0bd13ef286f0629346 (diff)
downloadpleroma-dc4814f0cdc12a552001e5e22c979060e4f3f865.tar.gz
pleroma-dc4814f0cdc12a552001e5e22c979060e4f3f865.zip
Fix merge conflicts with upstream
Diffstat (limited to 'test/support/factory.ex')
-rw-r--r--test/support/factory.ex56
1 files changed, 51 insertions, 5 deletions
diff --git a/test/support/factory.ex b/test/support/factory.ex
index af4fff45b..c267dba4e 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -4,6 +4,9 @@
defmodule Pleroma.Factory do
use ExMachina.Ecto, repo: Pleroma.Repo
+
+ require Pleroma.Constants
+
alias Pleroma.Object
alias Pleroma.User
@@ -41,23 +44,27 @@ defmodule Pleroma.Factory do
urls =
if attrs[:local] == false do
- base_domain = Enum.random(["domain1.com", "domain2.com", "domain3.com"])
+ base_domain = attrs[:domain] || Enum.random(["domain1.com", "domain2.com", "domain3.com"])
ap_id = "https://#{base_domain}/users/#{user.nickname}"
%{
ap_id: ap_id,
follower_address: ap_id <> "/followers",
- following_address: ap_id <> "/following"
+ following_address: ap_id <> "/following",
+ featured_address: ap_id <> "/collections/featured"
}
else
%{
ap_id: User.ap_id(user),
follower_address: User.ap_followers(user),
- following_address: User.ap_following(user)
+ following_address: User.ap_following(user),
+ featured_address: User.ap_featured_collection(user)
}
end
+ attrs = Map.delete(attrs, :domain)
+
user
|> Map.put(:raw_bio, user.bio)
|> Map.merge(urls)
@@ -184,8 +191,8 @@ defmodule Pleroma.Factory do
end
def article_factory do
- note_factory()
- |> Map.put("type", "Article")
+ %Pleroma.Object{data: data} = note_factory()
+ %Pleroma.Object{data: Map.merge(data, %{"type" => "Article"})}
end
def tombstone_factory do
@@ -221,6 +228,45 @@ defmodule Pleroma.Factory do
}
end
+ def add_activity_factory(attrs \\ %{}) do
+ featured_collection_activity(attrs, "Add")
+ end
+
+ def remove_activity_factor(attrs \\ %{}) do
+ featured_collection_activity(attrs, "Remove")
+ end
+
+ defp featured_collection_activity(attrs, type) do
+ user = attrs[:user] || insert(:user)
+ note = attrs[:note] || insert(:note, user: user)
+
+ data_attrs =
+ attrs
+ |> Map.get(:data_attrs, %{})
+ |> Map.put(:type, type)
+
+ attrs = Map.drop(attrs, [:user, :note, :data_attrs])
+
+ data =
+ %{
+ "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(),
+ "target" => user.featured_address,
+ "object" => note.data["object"],
+ "actor" => note.data["actor"],
+ "type" => "Add",
+ "to" => [Pleroma.Constants.as_public()],
+ "cc" => [user.follower_address]
+ }
+ |> Map.merge(data_attrs)
+
+ %Pleroma.Activity{
+ data: data,
+ actor: data["actor"],
+ recipients: data["to"]
+ }
+ |> Map.merge(attrs)
+ end
+
def note_activity_factory(attrs \\ %{}) do
user = attrs[:user] || insert(:user)
note = attrs[:note] || insert(:note, user: user)