Resource: do not mutate passed-in specs hash
This commit is contained in:
parent
40c0ed8a9a
commit
167017f89a
@ -99,8 +99,8 @@ class Resource
|
||||
def url val=nil, specs={}
|
||||
return @url if val.nil?
|
||||
@url = val
|
||||
@using = specs.delete(:using)
|
||||
@specs.merge!(specs)
|
||||
@using = @specs.delete(:using)
|
||||
end
|
||||
|
||||
def version val=nil
|
||||
|
||||
@ -40,6 +40,14 @@ class ResourceTests < Test::Unit::TestCase
|
||||
assert_equal GitDownloadStrategy, @resource.download_strategy
|
||||
end
|
||||
|
||||
def test_does_not_mutate_specs_hash
|
||||
specs = { :using => :git, :branch => 'master' }
|
||||
@resource.url('foo', specs)
|
||||
assert_equal({ :branch => 'master' }, @resource.specs)
|
||||
assert_equal(:git, @resource.using)
|
||||
assert_equal({ :using => :git, :branch => 'master' }, specs)
|
||||
end
|
||||
|
||||
def test_version
|
||||
@resource.version('1.0')
|
||||
assert_version_equal '1.0', @resource.version
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user