Skip to content

Commit 34f9e9f

Browse files
committed
Add specs for Parameters#params
1 parent cd0844f commit 34f9e9f

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

spec/grape/dsl/parameters_spec.rb

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module DSL
55
module ParametersSpec
66
class Dummy
77
include Grape::DSL::Parameters
8-
attr_accessor :api
8+
attr_accessor :api, :element, :parent
99

1010
def validate_attributes(*args)
1111
@validate_attributes = *args
@@ -127,8 +127,34 @@ def validates_reader
127127
end
128128
end
129129

130-
xdescribe '#params' do
131-
it 'does some thing'
130+
describe '#params' do
131+
it 'inherits params from parent' do
132+
parent_params = { foo: 'bar' }
133+
subject.parent = Object.new
134+
allow(subject.parent).to receive(:params).and_return(parent_params)
135+
expect(subject.params({})).to eq parent_params
136+
end
137+
138+
describe 'when params argument is an array of hashes' do
139+
it 'returns values of each hash for @element key' do
140+
subject.element = :foo
141+
expect(subject.params([{ foo: 'bar' }, { foo: 'baz' }])).to eq(%w(bar baz))
142+
end
143+
end
144+
145+
describe 'when params argument is a hash' do
146+
it 'returns value for @element key' do
147+
subject.element = :foo
148+
expect(subject.params(foo: 'bar')).to eq('bar')
149+
end
150+
end
151+
152+
describe 'when params argument is not a array or a hash' do
153+
it 'returns empty hash' do
154+
subject.element = Object.new
155+
expect(subject.params(Object.new)).to eq({})
156+
end
157+
end
132158
end
133159
end
134160
end

0 commit comments

Comments
 (0)