@@ -24,6 +24,25 @@ def last_response = Rack::Response.new
2424 end . to raise_error ( OpenapiFirst ::Error )
2525 end
2626
27+ it 'runs request validation after handling the request' do
28+ OpenapiFirst ::Test . register ( './examples/openapi.yaml' )
29+ myapp = lambda do |env |
30+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_nil
31+ Rack ::Response . new ( 'hello' ) . finish
32+ end
33+
34+ minitest_class = Class . new ( Minitest ::Test ) do
35+ include OpenapiFirst ::Test ::Methods [ myapp ]
36+ end
37+
38+ expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
39+ test_app = minitest_class . new ( 1 ) . app
40+ env = Rack ::MockRequest . env_for ( '/' )
41+ expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
42+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_valid
43+ expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
44+ end
45+
2746 context 'with RSpec' do
2847 context 'with metadata' , api : :v1 do
2948 include OpenapiFirst ::Test ::Methods
@@ -88,34 +107,15 @@ def last_response = Rack::Response.new
88107 end
89108
90109 context 'with [arguments]' do
91- it 'adds an app method that wraps the default API ' do
110+ it 'can run validation before handling the request ' do
92111 OpenapiFirst ::Test . register ( './examples/openapi.yaml' )
93112 myapp = lambda do |env |
94113 expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_a ( OpenapiFirst ::ValidatedRequest )
95114 Rack ::Response . new ( 'hello' ) . finish
96115 end
97116
98117 minitest_class = Class . new ( Minitest ::Test ) do
99- include OpenapiFirst ::Test ::Methods [ myapp ]
100- end
101-
102- expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
103- test_app = minitest_class . new ( 1 ) . app
104- env = Rack ::MockRequest . env_for ( '/' )
105- expect ( test_app . call ( env ) ) . to eq ( Rack ::Response . new ( 'hello' ) . finish )
106- 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 ]
118+ include OpenapiFirst ::Test ::Methods [ myapp , validate_request_before_handling : true ]
119119 end
120120
121121 expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
@@ -129,7 +129,7 @@ def last_response = Rack::Response.new
129129 it 'adds an app method that wraps the app for a specific API' do
130130 OpenapiFirst ::Test . register ( './examples/openapi.yaml' , as : :v1 )
131131 myapp = lambda do |env |
132- expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_a ( OpenapiFirst :: ValidatedRequest )
132+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_nil
133133 Rack ::Response . new ( 'hello' ) . finish
134134 end
135135
@@ -145,15 +145,15 @@ def last_response = Rack::Response.new
145145 expect ( env [ OpenapiFirst ::Test ::RESPONSE ] ) . to be_a ( OpenapiFirst ::ValidatedResponse )
146146 end
147147
148- it 'can run validation after handling the request, for a specific API' do
148+ it 'can run validation before handling the request, for a specific API' do
149149 OpenapiFirst ::Test . register ( './examples/openapi.yaml' , as : :v1 )
150150 myapp = lambda do |env |
151- expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_nil
151+ expect ( env [ OpenapiFirst ::Test ::REQUEST ] ) . to be_a ( OpenapiFirst :: ValidatedRequest )
152152 Rack ::Response . new ( 'hello' ) . finish
153153 end
154154
155155 minitest_class = Class . new ( Minitest ::Test ) do
156- include OpenapiFirst ::Test ::Methods [ myapp , api : :v1 , validate_request_after_handling : true ]
156+ include OpenapiFirst ::Test ::Methods [ myapp , api : :v1 , validate_request_before_handling : true ]
157157 end
158158
159159 expect ( minitest_class . included_modules ) . to include ( OpenapiFirst ::Test ::MinitestHelpers )
0 commit comments