Browse Source

OpenAPI: Add :id to follower/following endpoints, fixes #1958

chores/our-libs-hex-releases
Alex Gleason 4 years ago
parent
commit
48f8b26c92
No known key found for this signature in database GPG Key ID: 7211D1F99744FBB7
3 changed files with 35 additions and 0 deletions
  1. +2
    -0
      lib/pleroma/web/api_spec/operations/account_operation.ex
  2. +14
    -0
      test/pagination_test.exs
  3. +19
    -0
      test/web/mastodon_api/controllers/account_controller_test.exs

+ 2
- 0
lib/pleroma/web/api_spec/operations/account_operation.ex View File

@@ -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())}


+ 14
- 0
test/pagination_test.exs View File

@@ -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


+ 19
- 0
test/web/mastodon_api/controllers/account_controller_test.exs View File

@@ -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)


Loading…
Cancel
Save