Browse Source

Merge branch 'bugfix/pinned-statuses' into 'develop'

Unpin when deleting a status

See merge request pleroma/pleroma!655
tags/v0.9.9
kaniini 5 years ago
parent
commit
19b6a82393
2 changed files with 24 additions and 0 deletions
  1. +1
    -0
      lib/pleroma/web/common_api/common_api.ex
  2. +23
    -0
      test/web/common_api/common_api_test.exs

+ 1
- 0
lib/pleroma/web/common_api/common_api.ex View File

@@ -14,6 +14,7 @@ defmodule Pleroma.Web.CommonAPI do
with %Activity{data: %{"object" => %{"id" => object_id}}} <- Repo.get(Activity, activity_id),
%Object{} = object <- Object.normalize(object_id),
true <- user.info.is_moderator || user.ap_id == object.data["actor"],
{:ok, _} <- unpin(activity_id, user),
{:ok, delete} <- ActivityPub.delete(object) do
{:ok, delete}
end


+ 23
- 0
test/web/common_api/common_api_test.exs View File

@@ -109,6 +109,11 @@ defmodule Pleroma.Web.CommonAPI.Test do

test "pin status", %{user: user, activity: activity} do
assert {:ok, ^activity} = CommonAPI.pin(activity.id, user)

id = activity.id
user = refresh_record(user)

assert %User{info: %{pinned_activities: [^id]}} = user
end

test "only self-authored can be pinned", %{activity: activity} do
@@ -131,7 +136,25 @@ defmodule Pleroma.Web.CommonAPI.Test do
test "unpin status", %{user: user, activity: activity} do
{:ok, activity} = CommonAPI.pin(activity.id, user)

user = refresh_record(user)

assert {:ok, ^activity} = CommonAPI.unpin(activity.id, user)

user = refresh_record(user)

assert %User{info: %{pinned_activities: []}} = user
end

test "should unpin when deleting a status", %{user: user, activity: activity} do
{:ok, activity} = CommonAPI.pin(activity.id, user)

user = refresh_record(user)

assert {:ok, _} = CommonAPI.delete(activity.id, user)

user = refresh_record(user)

assert %User{info: %{pinned_activities: []}} = user
end
end
end

Loading…
Cancel
Save