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"],
context: data["context"],
type: "tombstone",
type: "Tombstone",
published: data["published"],
deleted: deleted
}
end
def swap_data_with_tombstone(activity) do
tombstone = get_tombstone(activity)
with tombstone = get_tombstone(activity),
Notification.clear(activity),
{:ok, changed_activity} =
activity
|> change(%{data: tombstone})
|> Repo.update()
|> Repo.update() do
{:ok, changed_activity}
end
end
end

View File

@ -75,10 +75,14 @@ def get(%{id: user_id} = _user, id) do
end
end
def clear(user) do
query = from(n in Notification, where: n.user_id == ^user.id)
def clear(%User{} = user) do
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
def dismiss(%{id: user_id} = _user, id) do

View File

@ -586,7 +586,8 @@ def get_obj_helper(id) do
end
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
Map.put(object, "inReplyTo", replied_to_object["external_url"] || inReplyTo)
else

View File

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

View File

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