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