2016-03-16 08:18:07 +08:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe GrapeSwagger::DocMethods::OptionalObject do
|
|
|
|
subject { described_class }
|
|
|
|
|
|
|
|
specify { expect(subject).to eql GrapeSwagger::DocMethods::OptionalObject }
|
|
|
|
specify { expect(subject).to respond_to :build }
|
|
|
|
|
|
|
|
describe 'build' do
|
|
|
|
let(:key) { :bar }
|
|
|
|
let(:request) { 'somes/request/string' }
|
|
|
|
|
|
|
|
describe 'no option given for key' do
|
2016-05-07 03:00:36 +08:00
|
|
|
let(:options) { { foo: 'foo' } }
|
2016-03-16 08:18:07 +08:00
|
|
|
specify do
|
|
|
|
expect(subject.build(key, options)).to be_nil
|
|
|
|
expect(subject.build(key, options, request)).to eql request
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
let(:value) { 'some optional value' }
|
|
|
|
|
|
|
|
describe 'option is a string' do
|
2016-05-07 03:00:36 +08:00
|
|
|
let(:options) { { bar: value } }
|
2016-03-16 08:18:07 +08:00
|
|
|
specify do
|
|
|
|
expect(subject.build(key, options)).to eql value
|
|
|
|
expect(subject.build(key, options, request)).to eql value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'option is a proc' do
|
2016-05-07 03:00:36 +08:00
|
|
|
let(:options) { { bar: -> { value } } }
|
2016-03-16 08:18:07 +08:00
|
|
|
specify do
|
|
|
|
expect(subject.build(key, options)).to eql value
|
|
|
|
expect(subject.build(key, options, request)).to eql value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|