logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 15cb1f6804fde19330a3c1f06eb24802c7503be3
parent: 72d767998c389ea4c9896d8748b0529d134bd8a6
Author: rinpatch <rinpatch@sdf.org>
Date:   Wed,  5 Feb 2020 21:04:16 +0000

Merge branch 'fix/unpinnable-polls' into 'develop'

fix not being able to pin polls

See merge request pleroma/pleroma!2172

Diffstat:

Mlib/pleroma/web/common_api/common_api.ex3++-
Mtest/web/common_api/common_api_test.exs15+++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex @@ -315,8 +315,9 @@ defmodule Pleroma.Web.CommonAPI do with %Activity{ actor: ^user_ap_id, data: %{"type" => "Create"}, - object: %Object{data: %{"type" => "Note"}} + object: %Object{data: %{"type" => object_type}} } = activity <- get_by_id_or_ap_id(id_or_ap_id), + true <- object_type in ["Note", "Article", "Question"], true <- Visibility.is_public?(activity), {:ok, _user} <- User.add_pinnned_activity(user, activity) do {:ok, activity} diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs @@ -324,6 +324,21 @@ defmodule Pleroma.Web.CommonAPITest do assert %User{pinned_activities: [^id]} = user end + test "pin poll", %{user: user} do + {:ok, activity} = + CommonAPI.post(user, %{ + "status" => "How is fediverse today?", + "poll" => %{"options" => ["Absolutely outstanding", "Not good"], "expires_in" => 20} + }) + + assert {:ok, ^activity} = CommonAPI.pin(activity.id, user) + + id = activity.id + user = refresh_record(user) + + assert %User{pinned_activities: [^id]} = user + end + test "unlisted statuses can be pinned", %{user: user} do {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!!!", "visibility" => "unlisted"}) assert {:ok, ^activity} = CommonAPI.pin(activity.id, user)