@@ -63,21 +63,6 @@ def default_excepts
6363 get '/lambda' do
6464 { type : params [ :type ] }
6565 end
66-
67- params do
68- requires :type , except_values : { value : ValuesModel . excepts , message : 'value is on exclusions list' } , default : 'default exclude message'
69- end
70- get '/exclude/exclude_message'
71-
72- params do
73- requires :type , except_values : { value : -> { ValuesModel . excepts } , message : 'value is on exclusions list' }
74- end
75- get '/exclude/lambda/exclude_message'
76-
77- params do
78- requires :type , except_values : { value : ValuesModel . excepts , message : 'default exclude message' }
79- end
80- get '/exclude/fallback_message'
8166 end
8267
8368 params do
@@ -106,13 +91,6 @@ def default_excepts
10691 { type : params [ :type ] }
10792 end
10893
109- params do
110- optional :type , except_values : ValuesModel . excepts , default : 'valid-type2'
111- end
112- get '/default/except' do
113- { type : params [ :type ] }
114- end
115-
11694 params do
11795 optional :type , values : -> { ValuesModel . values } , default : 'valid-type2'
11896 end
@@ -188,41 +166,6 @@ def default_excepts
188166 end
189167 get '/optional_with_required_values'
190168
191- params do
192- requires :type , except_values : ValuesModel . excepts
193- end
194- get '/except/exclusive' do
195- { type : params [ :type ] }
196- end
197-
198- params do
199- requires :type , type : String , except_values : ValuesModel . excepts
200- end
201- get '/except/exclusive/type' do
202- { type : params [ :type ] }
203- end
204-
205- params do
206- requires :type , except_values : ValuesModel . excepts
207- end
208- get '/except/exclusive/lambda' do
209- { type : params [ :type ] }
210- end
211-
212- params do
213- requires :type , type : String , except_values : -> { ValuesModel . excepts }
214- end
215- get '/except/exclusive/lambda/type' do
216- { type : params [ :type ] }
217- end
218-
219- params do
220- requires :type , type : Integer , except_values : -> { [ 3 , 4 , 5 ] }
221- end
222- get '/except/exclusive/lambda/coercion' do
223- { type : params [ :type ] }
224- end
225-
226169 params do
227170 requires :type , type : Integer , values : 1 ..5 , except_values : [ 3 ]
228171 end
@@ -324,30 +267,6 @@ def default_excepts
324267 end
325268 end
326269
327- context 'with a custom exclude validation message' do
328- it 'does not allow an invalid value for a parameter' do
329- get ( '/custom_message/exclude/exclude_message' , type : 'invalid-type1' )
330- expect ( last_response . status ) . to eq 400
331- expect ( last_response . body ) . to eq ( { error : 'type value is on exclusions list' } . to_json )
332- end
333- end
334-
335- context 'with a custom exclude validation message' do
336- it 'does not allow an invalid value for a parameter' do
337- get ( '/custom_message/exclude/lambda/exclude_message' , type : 'invalid-type1' )
338- expect ( last_response . status ) . to eq 400
339- expect ( last_response . body ) . to eq ( { error : 'type value is on exclusions list' } . to_json )
340- end
341- end
342-
343- context 'exclude with a standard custom validation message' do
344- it 'does not allow an invalid value for a parameter' do
345- get ( '/custom_message/exclude/fallback_message' , type : 'invalid-type1' )
346- expect ( last_response . status ) . to eq 400
347- expect ( last_response . body ) . to eq ( { error : 'type default exclude message' } . to_json )
348- end
349- end
350-
351270 it 'allows a valid value for a parameter' do
352271 get ( '/' , type : 'valid-type1' )
353272 expect ( last_response . status ) . to eq 200
@@ -390,12 +309,6 @@ def default_excepts
390309 expect ( last_response . body ) . to eq ( { type : 'valid-type2' } . to_json )
391310 end
392311
393- it 'allows a default value with except' do
394- get ( '/default/except' )
395- expect ( last_response . status ) . to eq 200
396- expect ( last_response . body ) . to eq ( { type : 'valid-type2' } . to_json )
397- end
398-
399312 it 'allows a valid default value' do
400313 get ( '/default/hash/valid' )
401314 expect ( last_response . status ) . to eq 200
@@ -631,66 +544,6 @@ def app
631544 end
632545 end
633546
634- context 'exclusive excepts' do
635- it 'allows any other value outside excepts' do
636- get '/except/exclusive' , type : 'value'
637- expect ( last_response . status ) . to eq 200
638- expect ( last_response . body ) . to eq ( { type : 'value' } . to_json )
639- end
640-
641- it 'allows any other value outside excepts when type is included' do
642- get '/except/exclusive/type' , type : 'value'
643- expect ( last_response . status ) . to eq 200
644- expect ( last_response . body ) . to eq ( { type : 'value' } . to_json )
645- end
646-
647- it 'rejects values that matches except' do
648- get '/except/exclusive' , type : 'invalid-type1'
649- expect ( last_response . status ) . to eq 400
650- expect ( last_response . body ) . to eq ( { error : 'type has a value not allowed' } . to_json )
651- end
652-
653- it 'rejects an array of values if any of them matches except' do
654- get '/except/exclusive' , type : %w[ valid1 valid2 invalid-type1 valid4 ]
655- expect ( last_response . status ) . to eq 400
656- expect ( last_response . body ) . to eq ( { error : 'type has a value not allowed' } . to_json )
657- end
658- end
659-
660- context 'exclusive excepts with lambda' do
661- it 'allows any other value outside excepts when type is included' do
662- get '/except/exclusive/lambda/type' , type : 'value'
663- expect ( last_response . status ) . to eq 200
664- expect ( last_response . body ) . to eq ( { type : 'value' } . to_json )
665- end
666-
667- it 'allows any other value outside excepts' do
668- get '/except/exclusive/lambda' , type : 'value'
669- expect ( last_response . status ) . to eq 200
670- expect ( last_response . body ) . to eq ( { type : 'value' } . to_json )
671- end
672-
673- it 'rejects values that matches except' do
674- get '/except/exclusive/lambda' , type : 'invalid-type1'
675- expect ( last_response . status ) . to eq 400
676- expect ( last_response . body ) . to eq ( { error : 'type has a value not allowed' } . to_json )
677- end
678- end
679-
680- context 'exclusive excepts with lambda and coercion' do
681- it 'allows any other value outside excepts' do
682- get '/except/exclusive/lambda/coercion' , type : '10010000'
683- expect ( last_response . status ) . to eq 200
684- expect ( last_response . body ) . to eq ( { type : 10_010_000 } . to_json )
685- end
686-
687- it 'rejects values that matches except' do
688- get '/except/exclusive/lambda/coercion' , type : '3'
689- expect ( last_response . status ) . to eq 400
690- expect ( last_response . body ) . to eq ( { error : 'type has a value not allowed' } . to_json )
691- end
692- end
693-
694547 context 'with mixed values and excepts' do
695548 it 'allows value, but not in except' do
696549 get '/mixed/value/except' , type : 2
0 commit comments