Skip to content

Commit c71c312

Browse files
authored
Fix assert_operation_response/2 references (#673)
* Support references in assert_operation_response/2 * fixup! Support references in assert_operation_response/2
1 parent 61d5951 commit c71c312

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

lib/open_api_spex/test/test_assertions.ex

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,17 @@ defmodule OpenApiSpex.TestAssertions do
166166
Map.get(responses, code_range) ||
167167
Map.get(responses, :"#{code_range}", %{})
168168

169+
resolved_response =
170+
case response do
171+
%OpenApiSpex.Reference{} = ref ->
172+
OpenApiSpex.Reference.resolve_response(ref, spec.components.responses)
173+
174+
_ ->
175+
response
176+
end
177+
169178
resolved_schema =
170-
response
179+
resolved_response
171180
|> Map.get(:content, %{})
172181
|> Map.get(content_type, %{})
173182
|> Map.get(:schema)

test/support/api_spec.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ defmodule OpenApiSpexTest.ApiSpec do
7676
}
7777
},
7878
responses: %{
79-
unprocessable_entity: %Response{
79+
"unprocessable_entity" => %Response{
8080
description: "Unprocessable Entity",
8181
content: %{"application/json" => %MediaType{schema: %Schema{type: :object}}}
8282
}

test/support/pet_controller.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ defmodule OpenApiSpexTest.PetController do
4747
],
4848
responses: [
4949
ok: {"Pet list", "application/json", Schemas.PetsResponse},
50-
unprocessable_entity: OpenApiSpex.JsonErrorResponse.response()
50+
unprocessable_entity: %OpenApiSpex.Reference{
51+
"$ref": "#/components/responses/unprocessable_entity"
52+
}
5153
],
5254
operation_id: "listPets"
5355
def index(conn, _params) do

0 commit comments

Comments
 (0)