From 5c3a0dd26e8ba818388ca6965e71600fd2ec07a1 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Mon, 31 May 2021 10:06:06 +0200 Subject: factory: Fix article_factory --- test/support/factory.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/support/factory.ex') diff --git a/test/support/factory.ex b/test/support/factory.ex index 5c4e65c81..c267dba4e 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -191,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 -- cgit v1.2.3 From 0114754db2d9dde25b31729644f898f20121de27 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 17 Jul 2021 20:35:35 -0500 Subject: MastodonAPI: Support poll notification --- test/support/factory.ex | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'test/support/factory.ex') diff --git a/test/support/factory.ex b/test/support/factory.ex index af4fff45b..e87e54e7b 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -201,6 +201,36 @@ defmodule Pleroma.Factory do } end + def question_factory(attrs \\ %{}) do + user = attrs[:user] || insert(:user) + + data = %{ + "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(), + "type" => "Question", + "actor" => user.ap_id, + "attachment" => [], + "to" => ["https://www.w3.org/ns/activitystreams#Public"], + "cc" => [user.follower_address], + "context" => Pleroma.Web.ActivityPub.Utils.generate_context_id(), + "oneOf" => [ + %{ + "type" => "Note", + "name" => "chocolate", + "replies" => %{"totalItems" => 0, "type" => "Collection"} + }, + %{ + "type" => "Note", + "name" => "vanilla", + "replies" => %{"totalItems" => 0, "type" => "Collection"} + } + ] + } + + %Pleroma.Object{ + data: merge_attributes(data, Map.get(attrs, :data, %{})) + } + end + def direct_note_activity_factory do dm = insert(:direct_note) @@ -350,6 +380,33 @@ defmodule Pleroma.Factory do } end + def question_activity_factory(attrs \\ %{}) do + user = attrs[:user] || insert(:user) + question = attrs[:question] || insert(:question, user: user) + + data_attrs = attrs[:data_attrs] || %{} + attrs = Map.drop(attrs, [:user, :question, :data_attrs]) + + data = + %{ + "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(), + "type" => "Create", + "actor" => question.data["actor"], + "to" => question.data["to"], + "object" => question.data["id"], + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "context" => question.data["context"] + } + |> Map.merge(data_attrs) + + %Pleroma.Activity{ + data: data, + actor: data["actor"], + recipients: data["to"] + } + |> Map.merge(attrs) + end + def oauth_app_factory do %Pleroma.Web.OAuth.App{ client_name: sequence(:client_name, &"Some client #{&1}"), -- cgit v1.2.3 From 0b1c05ca1e387d4a929dce3cac7214fdaf1c2444 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sun, 18 Jul 2021 10:49:57 -0500 Subject: Poll notification: trigger PollWorker through common_pipeline --- test/support/factory.ex | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test/support/factory.ex') diff --git a/test/support/factory.ex b/test/support/factory.ex index e87e54e7b..b5232a1c8 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -208,10 +208,12 @@ defmodule Pleroma.Factory do "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(), "type" => "Question", "actor" => user.ap_id, + "attributedTo" => user.ap_id, "attachment" => [], "to" => ["https://www.w3.org/ns/activitystreams#Public"], "cc" => [user.follower_address], "context" => Pleroma.Web.ActivityPub.Utils.generate_context_id(), + "closed" => DateTime.utc_now() |> DateTime.add(86_400) |> DateTime.to_iso8601(), "oneOf" => [ %{ "type" => "Note", -- cgit v1.2.3 From dd947d9bc8320ec828df97353733bed4d4e2b5b8 Mon Sep 17 00:00:00 2001 From: Ilja Date: Fri, 25 Sep 2020 23:36:19 +0200 Subject: Add tests for setting `:instance, :quarantined_instances` No test was done for quarantined instances yet. I added a factory for followers_only notes and checked * That no followers only post is send when the target server is quarantined * That a followers only post is send when the target server is not quarantined --- test/support/factory.ex | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'test/support/factory.ex') diff --git a/test/support/factory.ex b/test/support/factory.ex index c267dba4e..f31f64a50 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -142,6 +142,11 @@ defmodule Pleroma.Factory do } end + def followers_only_note_factory(attrs \\ %{}) do + %Pleroma.Object{data: data} = note_factory(attrs) + %Pleroma.Object{data: Map.merge(data, %{"to" => [data["actor"] <> "/followers"]})} + end + def audio_factory(attrs \\ %{}) do text = sequence(:text, &"lain radio episode #{&1}") @@ -267,6 +272,33 @@ defmodule Pleroma.Factory do |> Map.merge(attrs) end + def followers_only_note_activity_factory(attrs \\ %{}) do + user = attrs[:user] || insert(:user) + note = insert(:followers_only_note, user: user) + + data_attrs = attrs[:data_attrs] || %{} + attrs = Map.drop(attrs, [:user, :note, :data_attrs]) + + data = + %{ + "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(), + "type" => "Create", + "actor" => note.data["actor"], + "to" => note.data["to"], + "object" => note.data, + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "context" => note.data["context"] + } + |> 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) -- cgit v1.2.3