spec/grape/validations/validators/values_spec.rb in grape-1.7.0 vs spec/grape/validations/validators/values_spec.rb in grape-1.7.1
- old
+ new
@@ -113,10 +113,17 @@
get '/lambda' do
{ type: params[:type] }
end
params do
+ optional :type, type: Integer, values: 1..
+ end
+ get '/endless' do
+ { type: params[:type] }
+ end
+
+ params do
requires :type, values: ->(v) { ValuesModel.include? v }
end
get '/lambda_val' do
{ type: params[:type] }
end
@@ -368,9 +375,21 @@
expect(last_response.body).to eq({ type: 'valid-type4' }.to_json)
end
it 'does not allow an invalid value for a parameter using lambda' do
get('/lambda', type: 'invalid-type')
+ expect(last_response.status).to eq 400
+ expect(last_response.body).to eq({ error: 'type does not have a valid value' }.to_json)
+ end
+
+ it 'validates against values in an endless range', if: ActiveSupport::VERSION::MAJOR >= 6 do
+ get('/endless', type: 10)
+ expect(last_response.status).to eq 200
+ expect(last_response.body).to eq({ type: 10 }.to_json)
+ end
+
+ it 'does not allow an invalid value for a parameter using an endless range', if: ActiveSupport::VERSION::MAJOR >= 6 do
+ get('/endless', type: 0)
expect(last_response.status).to eq 400
expect(last_response.body).to eq({ error: 'type does not have a valid value' }.to_json)
end
it 'does not allow non-numeric string value for int value using lambda' do