summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLain Soykaf <lain@lain.com>2021-11-24 11:00:47 -0500
committerLain Soykaf <lain@lain.com>2021-11-24 11:00:47 -0500
commitca87b60fa8b8a5f3b5938b3906c28896fb715415 (patch)
treeccb1abc1254d9a6b3ec61f29d9d003a82a552fe6
parentc97f99ccf2a51c7f1078d7a20006deae2df3d12c (diff)
Fix the timeline of users with a `nil` pinned_objects field.2788-fix-user-timeline-when-pins-are-nil
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex2
-rw-r--r--test/pleroma/web/mastodon_api/controllers/account_controller_test.exs11
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 8324ca22c..b99fcb646 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -641,7 +641,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> Map.put(:type, ["Create", "Announce"])
|> Map.put(:user, reading_user)
|> Map.put(:actor_id, user.ap_id)
- |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects))
+ |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects || %{}))
params =
if User.blocks?(reading_user, user) do
diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
index a92a58224..9b2ebf133 100644
--- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
+++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
@@ -267,6 +267,17 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
describe "user timelines" do
setup do: oauth_access(["read:statuses"])
+ test "works with a user who has an empty pinned objects field", %{conn: conn} do
+ user = insert(:user, pinned_objects: nil)
+
+ assert resp =
+ conn
+ |> get("/api/v1/accounts/#{user.id}/statuses")
+ |> json_response_and_validate_schema(200)
+
+ assert [] == resp
+ end
+
test "works with announces that are just addressed to public", %{conn: conn} do
user = insert(:user, ap_id: "https://honktest/u/test", local: false)
other_user = insert(:user)