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