@@ -90,7 +90,10 @@ def last_response = Rack::Response.new
9090 context 'with [arguments]' do
9191 it 'adds an app method that wraps the default API' do
9292 OpenapiFirst ::Test . register ( './examples/openapi.yaml' )
93- myapp = -> ( _env ) { Rack ::Response . new ( 'hello' ) . finish }
93+ myapp = lambda do |env |
94+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_a ( OpenapiFirst ::ValidatedRequest )
95+ Rack ::Response . new ( 'hello' ) . finish
96+ end
9497
9598 minitest_class = Class . new ( Minitest ::Test ) do
9699 include OpenapiFirst ::Test ::Methods [ myapp ]
@@ -101,11 +104,34 @@ def last_response = Rack::Response.new
101104 env = Rack ::MockRequest . env_for ( '/' )
102105 expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
103106 expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_valid
107+ expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
108+ end
109+
110+ it 'can run validation after handling the request, for the default API' do
111+ OpenapiFirst ::Test . register ( './examples/openapi.yaml' )
112+ myapp = lambda do |env |
113+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_nil
114+ Rack ::Response . new ( 'hello' ) . finish
115+ end
116+
117+ minitest_class = Class . new ( Minitest ::Test ) do
118+ include OpenapiFirst ::Test ::Methods [ myapp , validate_request_after_handling : true ]
119+ end
120+
121+ expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
122+ test_app = minitest_class . new ( 1 ) . app
123+ env = Rack ::MockRequest . env_for ( '/' )
124+ expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
125+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_valid
126+ expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
104127 end
105128
106129 it 'adds an app method that wraps the app for a specific API' do
107130 OpenapiFirst ::Test . register ( './examples/openapi.yaml' , as : :v1 )
108- myapp = -> ( _env ) { Rack ::Response . new ( 'hello' ) . finish }
131+ myapp = lambda do |env |
132+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_a ( OpenapiFirst ::ValidatedRequest )
133+ Rack ::Response . new ( 'hello' ) . finish
134+ end
109135
110136 minitest_class = Class . new ( Minitest ::Test ) do
111137 include OpenapiFirst ::Test ::Methods [ myapp , api : :v1 ]
@@ -116,6 +142,26 @@ def last_response = Rack::Response.new
116142 env = Rack ::MockRequest . env_for ( '/' )
117143 expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
118144 expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_valid
145+ expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
146+ end
147+
148+ it 'can run validation after handling the request, for a specific API' do
149+ OpenapiFirst ::Test . register ( './examples/openapi.yaml' , as : :v1 )
150+ myapp = lambda do |env |
151+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_nil
152+ Rack ::Response . new ( 'hello' ) . finish
153+ end
154+
155+ minitest_class = Class . new ( Minitest ::Test ) do
156+ include OpenapiFirst ::Test ::Methods [ myapp , api : :v1 , validate_request_after_handling : true ]
157+ end
158+
159+ expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
160+ test_app = minitest_class . new ( 1 ) . app
161+ env = Rack ::MockRequest . env_for ( '/' )
162+ expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
163+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_valid
164+ expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
119165 end
120166
121167 it 'adds an assert_api_conform method that targets the specified API' do
0 commit comments