OpenAPI: MastodonAPI Timeline Controller

This commit is contained in:
Haelwenn (lanodan) Monnier 2021-02-16 23:23:35 +01:00
parent 19fbe5b860
commit 7eecc3b61d
No known key found for this signature in database
GPG key ID: D5B7A8E43C997DEE
2 changed files with 10 additions and 9 deletions

View file

@ -115,7 +115,8 @@ def hashtag_operation do
], ],
operationId: "TimelineController.hashtag", operationId: "TimelineController.hashtag",
responses: %{ responses: %{
200 => Operation.response("Array of Status", "application/json", array_of_statuses()) 200 => Operation.response("Array of Status", "application/json", array_of_statuses()),
401 => Operation.response("Error", "application/json", ApiError)
} }
} }
end end

View file

@ -905,10 +905,10 @@ defp ensure_authenticated_access(base_uri) do
%{conn: auth_conn} = oauth_access(["read:statuses"]) %{conn: auth_conn} = oauth_access(["read:statuses"])
res_conn = get(auth_conn, "#{base_uri}?local=true") res_conn = get(auth_conn, "#{base_uri}?local=true")
assert length(json_response(res_conn, 200)) == 1 assert length(json_response_and_validate_schema(res_conn, 200)) == 1
res_conn = get(auth_conn, "#{base_uri}?local=false") res_conn = get(auth_conn, "#{base_uri}?local=false")
assert length(json_response(res_conn, 200)) == 2 assert length(json_response_and_validate_schema(res_conn, 200)) == 2
end end
test "with default settings on private instances, returns 403 for unauthenticated users", %{ test "with default settings on private instances, returns 403 for unauthenticated users", %{
@ -922,7 +922,7 @@ test "with default settings on private instances, returns 403 for unauthenticate
for local <- [true, false] do for local <- [true, false] do
res_conn = get(conn, "#{base_uri}?local=#{local}") res_conn = get(conn, "#{base_uri}?local=#{local}")
assert json_response(res_conn, :unauthorized) == error_response assert json_response_and_validate_schema(res_conn, :unauthorized) == error_response
end end
ensure_authenticated_access(base_uri) ensure_authenticated_access(base_uri)
@ -939,7 +939,7 @@ test "with `%{local: true, federated: true}`, returns 403 for unauthenticated us
for local <- [true, false] do for local <- [true, false] do
res_conn = get(conn, "#{base_uri}?local=#{local}") res_conn = get(conn, "#{base_uri}?local=#{local}")
assert json_response(res_conn, :unauthorized) == error_response assert json_response_and_validate_schema(res_conn, :unauthorized) == error_response
end end
ensure_authenticated_access(base_uri) ensure_authenticated_access(base_uri)
@ -951,10 +951,10 @@ test "with `%{local: false, federated: true}`, forbids unauthenticated access to
clear_config([:restrict_unauthenticated, :timelines, :federated], true) clear_config([:restrict_unauthenticated, :timelines, :federated], true)
res_conn = get(conn, "#{base_uri}?local=true") res_conn = get(conn, "#{base_uri}?local=true")
assert length(json_response(res_conn, 200)) == 1 assert length(json_response_and_validate_schema(res_conn, 200)) == 1
res_conn = get(conn, "#{base_uri}?local=false") res_conn = get(conn, "#{base_uri}?local=false")
assert json_response(res_conn, :unauthorized) == error_response assert json_response_and_validate_schema(res_conn, :unauthorized) == error_response
ensure_authenticated_access(base_uri) ensure_authenticated_access(base_uri)
end end
@ -966,11 +966,11 @@ test "with `%{local: true, federated: false}`, forbids unauthenticated access to
clear_config([:restrict_unauthenticated, :timelines, :federated], false) clear_config([:restrict_unauthenticated, :timelines, :federated], false)
res_conn = get(conn, "#{base_uri}?local=true") res_conn = get(conn, "#{base_uri}?local=true")
assert json_response(res_conn, :unauthorized) == error_response assert json_response_and_validate_schema(res_conn, :unauthorized) == error_response
# Note: local activities get delivered as part of federated timeline # Note: local activities get delivered as part of federated timeline
res_conn = get(conn, "#{base_uri}?local=false") res_conn = get(conn, "#{base_uri}?local=false")
assert length(json_response(res_conn, 200)) == 2 assert length(json_response_and_validate_schema(res_conn, 200)) == 2
ensure_authenticated_access(base_uri) ensure_authenticated_access(base_uri)
end end