diff options
Diffstat (limited to 'test/support')
-rw-r--r-- | test/support/builders/activity_builder.ex | 4 | ||||
-rw-r--r-- | test/support/factory.ex | 67 |
2 files changed, 69 insertions, 2 deletions
diff --git a/test/support/builders/activity_builder.ex b/test/support/builders/activity_builder.ex index a82dc29d4..0f9cd0d15 100644 --- a/test/support/builders/activity_builder.ex +++ b/test/support/builders/activity_builder.ex @@ -3,7 +3,7 @@ defmodule Pleroma.Builders.ActivityBuilder do alias Pleroma.Web.ActivityPub.ActivityPub def build(data \\ %{}, opts \\ %{}) do - user = opts[:user] || UserBuilder.build + user = opts[:user] || Pleroma.Factory.insert(:user) activity = %{ "id" => 1, "actor" => user.ap_id, @@ -29,7 +29,7 @@ defmodule Pleroma.Builders.ActivityBuilder do end def public_and_non_public do - {:ok, user} = UserBuilder.insert + user = Pleroma.Factory.insert(:user) public = build(%{"id" => 1}, %{user: user}) non_public = build(%{"id" => 2, "to" => []}, %{user: user}) diff --git a/test/support/factory.ex b/test/support/factory.ex new file mode 100644 index 000000000..3fc9cf710 --- /dev/null +++ b/test/support/factory.ex @@ -0,0 +1,67 @@ +defmodule Pleroma.Factory do + use ExMachina.Ecto, repo: Pleroma.Repo + + def user_factory do + user = %Pleroma.User{ + name: sequence(:name, &"Test User #{&1}"), + email: sequence(:email, &"user#{&1}@example.com"), + nickname: sequence(:nickname, &"nick#{&1}"), + password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), + bio: sequence(:bio, &"Tester Number #{&1}"), + } + %{ user | ap_id: Pleroma.User.ap_id(user) } + end + + def note_factory do + text = sequence(:text, &"This is note #{&1}") + + user = insert(:user) + data = %{ + "type" => "Note", + "content" => text, + "id" => Pleroma.Web.ActivityPub.ActivityPub.generate_object_id, + "actor" => user.ap_id, + "to" => ["https://www.w3.org/ns/activitystreams#Public"], + "published_at" => DateTime.utc_now() |> DateTime.to_iso8601, + "likes" => [], + "like_count" => 0 + } + + %Pleroma.Object{ + data: data + } + end + + def note_activity_factory do + note = insert(:note) + data = %{ + "id" => Pleroma.Web.ActivityPub.ActivityPub.generate_activity_id, + "type" => "Create", + "actor" => note.data["actor"], + "to" => note.data["to"], + "object" => note.data, + "published_at" => DateTime.utc_now() |> DateTime.to_iso8601 + } + + %Pleroma.Activity{ + data: data + } + end + + def like_activity_factory do + note_activity = insert(:note_activity) + user = insert(:user) + + data = %{ + "id" => Pleroma.Web.ActivityPub.ActivityPub.generate_activity_id, + "actor" => user.ap_id, + "type" => "Like", + "object" => note_activity.data["object"]["id"], + "published_at" => DateTime.utc_now() |> DateTime.to_iso8601 + } + + %Pleroma.Activity{ + data: data + } + end +end |