diff options
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/mastodon_api/controllers/status_controller_test.exs | 43 | 
1 files changed, 38 insertions, 5 deletions
| diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index 700c82e4f..648e6f2ce 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -1541,14 +1541,49 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do             } = response    end +  test "favorites paginate correctly" do +    %{user: user, conn: conn} = oauth_access(["read:favourites"]) +    other_user = insert(:user) +    {:ok, first_post} = CommonAPI.post(other_user, %{status: "bla"}) +    {:ok, second_post} = CommonAPI.post(other_user, %{status: "bla"}) +    {:ok, third_post} = CommonAPI.post(other_user, %{status: "bla"}) + +    {:ok, _first_favorite} = CommonAPI.favorite(user, third_post.id) +    {:ok, _second_favorite} = CommonAPI.favorite(user, first_post.id) +    {:ok, third_favorite} = CommonAPI.favorite(user, second_post.id) + +    result = +      conn +      |> get("/api/v1/favourites?limit=1") + +    assert [%{"id" => post_id}] = json_response_and_validate_schema(result, 200) +    assert post_id == second_post.id + +    # Using the header for pagination works correctly +    [next, _] = get_resp_header(result, "link") |> hd() |> String.split(", ") +    [_, max_id] = Regex.run(~r/max_id=(.*)>;/, next) + +    assert max_id == third_favorite.id + +    result = +      conn +      |> get("/api/v1/favourites?max_id=#{max_id}") + +    assert [%{"id" => first_post_id}, %{"id" => third_post_id}] = +             json_response_and_validate_schema(result, 200) + +    assert first_post_id == first_post.id +    assert third_post_id == third_post.id +  end +    test "returns the favorites of a user" do      %{user: user, conn: conn} = oauth_access(["read:favourites"])      other_user = insert(:user)      {:ok, _} = CommonAPI.post(other_user, %{status: "bla"}) -    {:ok, activity} = CommonAPI.post(other_user, %{status: "traps are happy"}) +    {:ok, activity} = CommonAPI.post(other_user, %{status: "trees are happy"}) -    {:ok, _} = CommonAPI.favorite(user, activity.id) +    {:ok, last_like} = CommonAPI.favorite(user, activity.id)      first_conn = get(conn, "/api/v1/favourites") @@ -1566,9 +1601,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do      {:ok, _} = CommonAPI.favorite(user, second_activity.id) -    last_like = status["id"] - -    second_conn = get(conn, "/api/v1/favourites?since_id=#{last_like}") +    second_conn = get(conn, "/api/v1/favourites?since_id=#{last_like.id}")      assert [second_status] = json_response_and_validate_schema(second_conn, 200)      assert second_status["id"] == to_string(second_activity.id) | 
