diff options
| -rw-r--r-- | lib/pleroma/web/api_spec/operations/account_operation.ex | 2 | ||||
| -rw-r--r-- | test/pagination_test.exs | 14 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/account_controller_test.exs | 19 | 
3 files changed, 35 insertions, 0 deletions
| diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index 952d9347b..50c8e0242 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -159,6 +159,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do          "Accounts which follow the given account, if network is not hidden by the account owner.",        parameters: [          %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, +        Operation.parameter(:id, :query, :string, "ID of the resource owner"),          with_relationships_param() | pagination_params()        ],        responses: %{ @@ -177,6 +178,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do          "Accounts which the given account is following, if network is not hidden by the account owner.",        parameters: [          %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, +        Operation.parameter(:id, :query, :string, "ID of the resource owner"),          with_relationships_param() | pagination_params()        ],        responses: %{200 => Operation.response("Accounts", "application/json", array_of_accounts())} diff --git a/test/pagination_test.exs b/test/pagination_test.exs index 9165427ae..e526f23e8 100644 --- a/test/pagination_test.exs +++ b/test/pagination_test.exs @@ -54,6 +54,20 @@ defmodule Pleroma.PaginationTest do        assert length(paginated) == 1      end + +    test "handles id gracefully", %{notes: notes} do +      id = Enum.at(notes, 1).id |> Integer.to_string() + +      paginated = +        Pagination.fetch_paginated(Object, %{ +          id: "9s99Hq44Cnv8PKBwWG", +          max_id: id, +          limit: 20, +          offset: 0 +        }) + +      assert length(paginated) == 1 +    end    end    describe "offset" do diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index 9c7b5e9b2..c304487ea 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -583,6 +583,15 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do                 |> get("/api/v1/accounts/#{user.id}/followers?max_id=#{follower3_id}")                 |> json_response_and_validate_schema(200) +      assert [%{"id" => ^follower2_id}, %{"id" => ^follower1_id}] = +               conn +               |> get( +                 "/api/v1/accounts/#{user.id}/followers?id=#{user.id}&limit=20&max_id=#{ +                   follower3_id +                 }" +               ) +               |> json_response_and_validate_schema(200) +        res_conn = get(conn, "/api/v1/accounts/#{user.id}/followers?limit=1&max_id=#{follower3_id}")        assert [%{"id" => ^follower2_id}] = json_response_and_validate_schema(res_conn, 200) @@ -655,6 +664,16 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        assert id1 == following1.id        res_conn = +        get( +          conn, +          "/api/v1/accounts/#{user.id}/following?id=#{user.id}&limit=20&max_id=#{following3.id}" +        ) + +      assert [%{"id" => id2}, %{"id" => id1}] = json_response_and_validate_schema(res_conn, 200) +      assert id2 == following2.id +      assert id1 == following1.id + +      res_conn =          get(conn, "/api/v1/accounts/#{user.id}/following?limit=1&max_id=#{following3.id}")        assert [%{"id" => id2}] = json_response_and_validate_schema(res_conn, 200) | 
