spec/grape/validations/validators/values_spec.rb in grape-1.0.0 vs spec/grape/validations/validators/values_spec.rb in grape-1.0.1
- old
+ new
@@ -109,10 +109,17 @@
get '/lambda_val' do
{ type: params[:type] }
end
params do
+ requires :number, type: Integer, values: ->(v) { v > 0 }
+ end
+ get '/lambda_int_val' do
+ { number: params[:number] }
+ end
+
+ params do
requires :type, values: -> { [] }
end
get '/empty_lambda'
params do
@@ -353,9 +360,27 @@
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 'does not allow non-numeric string value for int value using lambda' do
+ get('/lambda_int_val', number: 'foo')
+ expect(last_response.status).to eq 400
+ expect(last_response.body).to eq({ error: 'number is invalid, number does not have a valid value' }.to_json)
+ end
+
+ it 'does not allow nil for int value using lambda' do
+ get('/lambda_int_val', number: nil)
+ expect(last_response.status).to eq 400
+ expect(last_response.body).to eq({ error: 'number does not have a valid value' }.to_json)
+ end
+
+ it 'allows numeric string for int value using lambda' do
+ get('/lambda_int_val', number: '3')
+ expect(last_response.status).to eq 200
+ expect(last_response.body).to eq({ number: 3 }.to_json)
end
it 'allows value using lambda' do
get('/lambda_val', type: 'valid-type1')
expect(last_response.status).to eq 200