fix order favorites activites

This commit is contained in:
Maksim Pechnikov 2019-11-19 20:19:41 +03:00
parent 7d727dbfec
commit 708fd234bd
2 changed files with 6 additions and 2 deletions

View file

@ -1066,7 +1066,7 @@ def fetch_favourites(user, params \\ %{}, pagination \\ :keyset) do
|> Activity.with_joined_object() |> Activity.with_joined_object()
|> Object.with_joined_activity() |> Object.with_joined_activity()
|> select([_like, object, activity], %{activity | object: object}) |> select([_like, object, activity], %{activity | object: object})
|> order_by([like, _, _], desc: like.updated_at) |> order_by([like, _, _], desc: like.id)
|> Pagination.fetch_paginated( |> Pagination.fetch_paginated(
Map.merge(params, %{"skip_order" => true}), Map.merge(params, %{"skip_order" => true}),
pagination, pagination,

View file

@ -1559,6 +1559,7 @@ test "detects hidden follows" do
describe "fetch_favourites/3" do describe "fetch_favourites/3" do
test "returns a favourite activities sorted by adds to favorite" do test "returns a favourite activities sorted by adds to favorite" do
user = insert(:user) user = insert(:user)
other_user = insert(:user)
user1 = insert(:user) user1 = insert(:user)
user2 = insert(:user) user2 = insert(:user)
{:ok, a1} = CommonAPI.post(user1, %{"status" => "bla"}) {:ok, a1} = CommonAPI.post(user1, %{"status" => "bla"})
@ -1568,13 +1569,16 @@ test "returns a favourite activities sorted by adds to favorite" do
{:ok, a5} = CommonAPI.post(user1, %{"status" => "Red or Blue "}) {:ok, a5} = CommonAPI.post(user1, %{"status" => "Red or Blue "})
{:ok, _, _} = CommonAPI.favorite(a4.id, user) {:ok, _, _} = CommonAPI.favorite(a4.id, user)
{:ok, _, _} = CommonAPI.favorite(a3.id, other_user)
Process.sleep(1000) Process.sleep(1000)
{:ok, _, _} = CommonAPI.favorite(a3.id, user) {:ok, _, _} = CommonAPI.favorite(a3.id, user)
{:ok, _, _} = CommonAPI.favorite(a5.id, other_user)
Process.sleep(1000) Process.sleep(1000)
{:ok, _, _} = CommonAPI.favorite(a5.id, user) {:ok, _, _} = CommonAPI.favorite(a5.id, user)
{:ok, _, _} = CommonAPI.favorite(a4.id, other_user)
Process.sleep(1000) Process.sleep(1000)
{:ok, _, _} = CommonAPI.favorite(a1.id, user) {:ok, _, _} = CommonAPI.favorite(a1.id, user)
{:ok, _, _} = CommonAPI.favorite(a1.id, other_user)
result = ActivityPub.fetch_favourites(user) result = ActivityPub.fetch_favourites(user)
assert Enum.map(result, & &1.id) == [a1.id, a5.id, a3.id, a4.id] assert Enum.map(result, & &1.id) == [a1.id, a5.id, a3.id, a4.id]