forked from AkkomaGang/akkoma
unpin when deleting a status
This commit is contained in:
parent
e4b2cfa7b5
commit
b594a54d0c
2 changed files with 24 additions and 0 deletions
|
@ -14,6 +14,7 @@ def delete(activity_id, user) 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
|
||||
|
|
|
@ -109,6 +109,11 @@ test "favoriting a status twice returns an error" 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 @@ test "max pinned statuses", %{user: user, activity: activity_one} 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 status 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…
Reference in a new issue