Fix failing tests

This commit is contained in:
Maxim Filippov 2018-12-25 00:29:13 +03:00
parent 18a4cbb244
commit 2bbec33c71
5 changed files with 22 additions and 14 deletions

View File

@ -108,17 +108,20 @@ def get_tombstone(%Activity{data: data}, deleted \\ DateTime.utc_now()) do
%{ %{
id: data["id"], id: data["id"],
context: data["context"], context: data["context"],
type: "tombstone", type: "Tombstone",
published: data["published"], published: data["published"],
deleted: deleted deleted: deleted
} }
end end
def swap_data_with_tombstone(activity) do def swap_data_with_tombstone(activity) do
tombstone = get_tombstone(activity) with tombstone = get_tombstone(activity),
Notification.clear(activity),
activity {:ok, changed_activity} =
|> change(%{data: tombstone}) activity
|> Repo.update() |> change(%{data: tombstone})
|> Repo.update() do
{:ok, changed_activity}
end
end end
end end

View File

@ -75,10 +75,14 @@ def get(%{id: user_id} = _user, id) do
end end
end end
def clear(user) do def clear(%User{} = user) do
query = from(n in Notification, where: n.user_id == ^user.id) from(n in Notification, where: n.user_id == ^user.id)
|> Repo.delete_all()
end
Repo.delete_all(query) def clear(%Activity{} = activity) do
from(n in Notification, where: n.activity_id == ^activity.id)
|> Repo.delete_all()
end end
def dismiss(%{id: user_id} = _user, id) do def dismiss(%{id: user_id} = _user, id) do

View File

@ -586,7 +586,8 @@ def get_obj_helper(id) do
end end
def set_reply_to_uri(%{"inReplyTo" => inReplyTo} = object) do def set_reply_to_uri(%{"inReplyTo" => inReplyTo} = object) do
with false <- String.starts_with?(inReplyTo, "http"), with false <- is_nil(inReplyTo),
false <- String.starts_with?(inReplyTo, "http"),
{:ok, %{data: replied_to_object}} <- get_obj_helper(inReplyTo) do {:ok, %{data: replied_to_object}} <- get_obj_helper(inReplyTo) do
Map.put(object, "inReplyTo", replied_to_object["external_url"] || inReplyTo) Map.put(object, "inReplyTo", replied_to_object["external_url"] || inReplyTo)
else else

View File

@ -31,7 +31,7 @@ test "returns tombstone" do
deleted = DateTime.utc_now() deleted = DateTime.utc_now()
assert Pleroma.Activity.get_tombstone(activity, deleted) == %{ assert Pleroma.Activity.get_tombstone(activity, deleted) == %{
id: activity.data["object"]["id"], id: activity.data["id"],
context: activity.data["context"], context: activity.data["context"],
type: "Tombstone", type: "Tombstone",
published: activity.data["published"], published: activity.data["published"],

View File

@ -23,9 +23,9 @@ test "it removes the mentioned activity" do
{:ok, [delete]} = OStatus.handle_incoming(incoming) {:ok, [delete]} = OStatus.handle_incoming(incoming)
refute Repo.get(Activity, note.id) assert Repo.get(Activity, note.id).data["type"] == "Tombstone"
refute Repo.get(Activity, like.id) assert Repo.get(Activity, like.id).data["type"] == "Tombstone"
refute Object.get_by_ap_id(note.data["object"]["id"]) assert Object.get_by_ap_id(note.data["object"]["id"]).data["type"] == "Tombstone"
assert Repo.get(Activity, second_note.id) assert Repo.get(Activity, second_note.id)
assert Object.get_by_ap_id(second_note.data["object"]["id"]) assert Object.get_by_ap_id(second_note.data["object"]["id"])