У меня очень простой API на основе винограда. Допустим, это выглядит так:
class MyApi < Grape::API
params do
requires :name, type: String
requires :id, type: Integer, positive_value: true
end
get '/' do
# whatever...
end
end
У меня есть собственный валидатор PositiveValue, который отлично работает для id
.
Я хотел бы создать spe c, который гарантирует что у моих параметров есть правильные параметры. Я бы не хотел делать полные спецификации запросов, но вместо этого я хотел бы проверить, имеет ли name
param type: String
, и убедиться, что он необходим:
# my_api_spec.rb
describe 'params' do
let(:params) { described_class.new.router.map['GET'].first.options[:params] }
specify do
expect(params['name']).to include(type: 'String') # this one works fine
expect(params['id']].to include(type: 'Integer', positive_value: true) # this one fails
end
end
Оказывается, это параметры имеют {:required=>true, :type=>"Integer"}
га sh. Как я могу проверить и убедиться, что мои пользовательские валидаторы используются для данного параметра?
Спасибо за помощь заранее.