spec/mixlib/config_spec.rb in mixlib-config-2.2.8 vs spec/mixlib/config_spec.rb in mixlib-config-2.2.10
- old
+ new
@@ -1,8 +1,8 @@
#
# Author:: Adam Jacob (<adam@chef.io>)
-# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc.
+# Copyright:: Copyright (c) 2008-2018, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -140,11 +140,11 @@
describe "when a block has been used to set config values" do
before do
ConfigIt.configure { |c| c[:cookbook_path] = "monkey_rabbit"; c[:otherthing] = "boo" }
end
- { :cookbook_path => "monkey_rabbit", :otherthing => "boo" }.each do |k, v|
+ { cookbook_path: "monkey_rabbit", otherthing: "boo" }.each do |k, v|
it "allows you to retrieve the config value for #{k} via []" do
expect(ConfigIt[k]).to eql(v)
end
it "allows you to retrieve the config value for #{k} via method_missing" do
expect(ConfigIt.send(k)).to eql(v)
@@ -160,10 +160,16 @@
expect(ConfigIt.has_key?(:monkey)).to be false
ConfigIt[:monkey] = "gotcha"
expect(ConfigIt.has_key?(:monkey)).to be true
end
+ it "returns true or false with key?" do
+ expect(ConfigIt.key?(:monkey2)).to be false
+ ConfigIt[:monkey2] = "gotcha"
+ expect(ConfigIt.key?(:monkey2)).to be true
+ end
+
describe "when a class method override writer exists" do
before do
@klass = Class.new
@klass.extend(::Mixlib::Config)
@klass.class_eval do
@@ -299,29 +305,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => 4 })
+ expect(@klass.save(true)).to eql({ attr: 4 })
end
it "saves the new value if it gets set" do
@klass.attr 5
- expect((saved = @klass.save)).to eql({ :attr => 5 })
+ expect((saved = @klass.save)).to eql({ attr: 5 })
@klass.reset
expect(@klass.attr).to eql(4)
@klass.restore(saved)
expect(@klass.attr).to eql(5)
end
it "saves the new value even if it is set to its default value" do
@klass.attr 4
- expect((saved = @klass.save)).to eql({ :attr => 4 })
+ expect((saved = @klass.save)).to eql({ attr: 4 })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => 4 })
+ expect(@klass.save).to eql({ attr: 4 })
end
end
describe "When config has a default value block" do
before :each do
@@ -367,29 +373,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => 8, :x => 4 })
+ expect(@klass.save(true)).to eql({ attr: 8, x: 4 })
end
it "saves the new value if it gets set" do
@klass.attr 5
- expect((saved = @klass.save)).to eql({ :attr => 5 })
+ expect((saved = @klass.save)).to eql({ attr: 5 })
@klass.reset
expect(@klass.attr).to eql(8)
@klass.restore(saved)
expect(@klass.attr).to eql(5)
end
it "saves the new value even if it is set to its default value" do
@klass.attr 8
- expect((saved = @klass.save)).to eql({ :attr => 8 })
+ expect((saved = @klass.save)).to eql({ attr: 8 })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => 8 })
+ expect(@klass.save).to eql({ attr: 8 })
end
end
describe "When config has an array default value" do
before :each do
@@ -408,29 +414,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => [] })
+ expect(@klass.save(true)).to eql({ attr: [] })
end
it "saves the new value if it gets set" do
@klass.attr << "x"
- expect((saved = @klass.save)).to eql({ :attr => [ "x" ] })
+ expect((saved = @klass.save)).to eql({ attr: [ "x" ] })
@klass.reset
expect(@klass.attr).to eql([])
@klass.restore(saved)
expect(@klass.attr).to eql([ "x" ])
end
it "saves the new value even if it is set to its default value" do
@klass.attr = []
- expect((saved = @klass.save)).to eql({ :attr => [] })
+ expect((saved = @klass.save)).to eql({ attr: [] })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => [] })
+ expect(@klass.save).to eql({ attr: [] })
end
end
describe "When config has a hash default value" do
before :each do
@@ -449,29 +455,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => {} })
+ expect(@klass.save(true)).to eql({ attr: {} })
end
it "saves the new value if it gets set" do
@klass.attr[:hi] = "lo"
- expect((saved = @klass.save)).to eql({ :attr => { :hi => "lo" } })
+ expect((saved = @klass.save)).to eql({ attr: { hi: "lo" } })
@klass.reset
expect(@klass.attr).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => { :hi => "lo" } })
+ expect(@klass.save).to eql({ attr: { hi: "lo" } })
end
it "saves the new value even if it is set to its default value" do
@klass.attr = {}
- expect((saved = @klass.save)).to eql({ :attr => {} })
+ expect((saved = @klass.save)).to eql({ attr: {} })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => {} })
+ expect(@klass.save).to eql({ attr: {} })
end
end
describe "When config has a string default value" do
before :each do
@@ -490,29 +496,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => "hello" })
+ expect(@klass.save(true)).to eql({ attr: "hello" })
end
it "saves the new value if it gets set" do
@klass.attr << " world"
- expect((saved = @klass.save)).to eql({ :attr => "hello world" })
+ expect((saved = @klass.save)).to eql({ attr: "hello world" })
@klass.reset
expect(@klass.attr).to eql("hello")
@klass.restore(saved)
expect(@klass.attr).to eql("hello world")
end
it "saves the new value even if it is set to its default value" do
@klass.attr "hello world"
- expect((saved = @klass.save)).to eql({ :attr => "hello world" })
+ expect((saved = @klass.save)).to eql({ attr: "hello world" })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => "hello world" })
+ expect(@klass.save).to eql({ attr: "hello world" })
end
end
describe "When config has a a default value block" do
before :each do
@@ -552,29 +558,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => 4 })
+ expect(@klass.save(true)).to eql({ attr: 4 })
end
it "saves the new value if it gets set" do
@klass.attr 5
- expect((saved = @klass.save)).to eql({ :attr => 5 })
+ expect((saved = @klass.save)).to eql({ attr: 5 })
@klass.reset
expect(@klass.attr).to eql(4)
@klass.restore(saved)
expect(@klass.attr).to eql(5)
end
it "saves the new value even if it is set to its default value" do
@klass.attr 4
- expect((saved = @klass.save)).to eql({ :attr => 4 })
+ expect((saved = @klass.save)).to eql({ attr: 4 })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => 4 })
+ expect(@klass.save).to eql({ attr: 4 })
end
end
describe "When a configurable exists with writer and default value" do
before :each do
@@ -629,29 +635,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => 4 })
+ expect(@klass.save(true)).to eql({ attr: 4 })
end
it "saves the new value if it gets set" do
@klass.attr 5
- expect((saved = @klass.save)).to eql({ :attr => 10 })
+ expect((saved = @klass.save)).to eql({ attr: 10 })
@klass.reset
expect(@klass.attr).to eql(4)
@klass.restore(saved)
expect(@klass.attr).to eql(10)
end
it "saves the new value even if it is set to its default value" do
@klass.attr 4
- expect((saved = @klass.save)).to eql({ :attr => 8 })
+ expect((saved = @klass.save)).to eql({ attr: 8 })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => 8 })
+ expect(@klass.save).to eql({ attr: 8 })
end
end
describe "When a configurable exists with writer and default value set in chained form" do
before :each do
@@ -703,29 +709,29 @@
it "save should not save anything for it" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :attr => 4 })
+ expect(@klass.save(true)).to eql({ attr: 4 })
end
it "saves the new value if it gets set" do
@klass.attr 5
- expect((saved = @klass.save)).to eql({ :attr => 10 })
+ expect((saved = @klass.save)).to eql({ attr: 10 })
@klass.reset
expect(@klass.attr).to eql(4)
@klass.restore(saved)
expect(@klass.attr).to eql(10)
end
it "saves the new value even if it is set to its default value" do
@klass.attr 2
- expect((saved = @klass.save)).to eql({ :attr => 4 })
+ expect((saved = @klass.save)).to eql({ attr: 4 })
@klass.reset
expect(@klass.save).to eql({})
@klass.restore(saved)
- expect(@klass.save).to eql({ :attr => 4 })
+ expect(@klass.save).to eql({ attr: 4 })
end
end
describe "When a configurable exists with a context" do
before :each do
@@ -753,24 +759,24 @@
expect(@klass.x).to eql(10)
expect(@klass.blah.x).to eql(5)
end
it "setting the entire context to a hash with default value overridden sets the value" do
- @klass.blah = { :x => 10 }
+ @klass.blah = { x: 10 }
expect(@klass.blah.x).to eql(10)
end
it "setting the entire context to a hash sets non-default values" do
- @klass.blah = { :y => 10 }
+ @klass.blah = { y: 10 }
expect(@klass.blah.x).to eql(5)
expect(@klass.blah.y).to eql(10)
end
it "setting the entire context to a hash deletes any non-default values and resets default values" do
@klass.blah.x = 10
@klass.blah.y = 10
- @klass.blah = { :z => 10 }
+ @klass.blah = { z: 10 }
expect(@klass.blah.x).to eql(5)
expect(@klass.blah.y).to be_nil
expect(@klass.blah.z).to eql(10)
end
@@ -802,21 +808,21 @@
it "save should not save anything for it by default" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :blah => { :x => 5 } })
+ expect(@klass.save(true)).to eql({ blah: { x: 5 } })
end
it "saves any new values that are set in the context" do
@klass.blah.x = 10
- expect((saved = @klass.save)).to eql({ :blah => { :x => 10 } })
+ expect((saved = @klass.save)).to eql({ blah: { x: 10 } })
@klass.reset
expect(@klass.blah.x).to eql(5)
@klass.restore(saved)
expect(@klass.blah.x).to eql(10)
- expect(@klass.save).to eql({ :blah => { :x => 10 } })
+ expect(@klass.save).to eql({ blah: { x: 10 } })
end
# this tests existing (somewhat bizzare) behavior of mixlib-config where testing to
# see if a key exists is equivalent to testing if the key has been set -- we can still
# retrieve the default value if it was set. the code in chef/chef which merges
@@ -878,41 +884,41 @@
it "save should not save anything for it by default" do
expect(@klass.save).to eql({})
end
it "save with include_defaults should save all defaults" do
- expect(@klass.save(true)).to eql({ :blah => { :yarr => { :x => 5, :y => 6 } } })
+ expect(@klass.save(true)).to eql({ blah: { yarr: { x: 5, y: 6 } } })
end
it "saves any new values that are set in the context" do
@klass.blah.yarr.x = 10
@klass.blah.yarr.y = 11
- expect((saved = @klass.save)).to eql({ :blah => { :yarr => { :x => 10, :y => 11 } } })
+ expect((saved = @klass.save)).to eql({ blah: { yarr: { x: 10, y: 11 } } })
@klass.reset
expect(@klass.blah.yarr.x).to eql(5)
expect(@klass.blah.yarr.y).to eql(6)
@klass.restore(saved)
expect(@klass.blah.yarr.x).to eql(10)
expect(@klass.blah.yarr.y).to eql(11)
- expect(@klass.save).to eql({ :blah => { :yarr => { :x => 10, :y => 11 } } })
+ expect(@klass.save).to eql({ blah: { yarr: { x: 10, y: 11 } } })
end
it "restores defaults not included in saved data" do
- @klass.restore( :blah => { :yarr => { :x => 10 } } )
+ @klass.restore( blah: { yarr: { x: 10 } } )
expect(@klass.blah.yarr.x).to eql(10)
expect(@klass.blah.yarr.y).to eql(6)
end
it "removes added properties not included in saved state" do
@klass.blah.yarr.z = 12
- @klass.restore( :blah => { :yarr => { :x => 10 } } )
+ @klass.restore( blah: { yarr: { x: 10 } } )
expect(@klass.blah.yarr.x).to eql(10)
expect(@klass.blah.yarr.z).to eql(nil)
end
it "can set a config context from another context" do
- @klass.blah.blyme = { :x => 7 }
+ @klass.blah.blyme = { x: 7 }
blyme = @klass.blah.blyme
@klass.blah.yarr.x = 12
@klass.blah.yarr = blyme
expect(@klass.blah.yarr.x).to eql(7)
end
@@ -932,11 +938,11 @@
it "save does not save the hash for the config_context" do
expect(@klass.save).to eql({})
end
it "save with defaults saves the hash for the config_context" do
- expect(@klass.save(true)).to eql({ :blah => {} })
+ expect(@klass.save(true)).to eql({ blah: {} })
end
end
describe "When a config_context with no configurables exists" do
before :each do
@@ -950,10 +956,10 @@
it "save does not save the hash for the config_context" do
expect(@klass.save).to eql({})
end
it "save with defaults saves the hash for the config_context" do
- expect(@klass.save(true)).to eql({ :blah => {} })
+ expect(@klass.save(true)).to eql({ blah: {} })
end
end
describe "When a nested context has strict mode on" do
class StrictClass2