Sha256: 15098d14e075fc6eb95671a990470bfe47c5567f6ffb51d93ec2a25a05207ac8
Contents?: true
Size: 1.47 KB
Versions: 3
Compression:
Stored size: 1.47 KB
Contents
# frozen_string_literal: true require 'spec_helper' describe Grape::API do subject { Class.new(described_class) } let(:app) { subject } context 'an endpoint with documentation' do it 'documents parameters' do subject.params do requires 'price', type: Float, desc: 'Sales price' end subject.get '/' expect(subject.routes.first.params['price']).to eq(required: true, type: 'Float', desc: 'Sales price') end it 'allows documentation with a hash' do documentation = { example: 'Joe' } subject.params do requires 'first_name', documentation: documentation end subject.get '/' expect(subject.routes.first.params['first_name'][:documentation]).to eq(documentation) end end context 'an endpoint without documentation' do before do subject.do_not_document! subject.params do requires :city, type: String, desc: 'Should be ignored' optional :postal_code, type: Integer end subject.post '/' do declared(params).to_json end end it 'does not document parameters for the endpoint' do expect(subject.routes.first.params).to eq({}) end it 'still declares params internally' do data = { city: 'Berlin', postal_code: 10_115 } post '/', data expect(last_response.body).to eq(data.to_json) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
grape-1.8.0 | spec/grape/api/documentation_spec.rb |
grape-1.7.1 | spec/grape/api/documentation_spec.rb |
grape-1.7.0 | spec/grape/api/documentation_spec.rb |