diff options
-rw-r--r-- | spec/data/knife_subcommand/test_yourself.rb | 8 | ||||
-rw-r--r-- | spec/unit/knife_spec.rb | 21 |
2 files changed, 29 insertions, 0 deletions
diff --git a/spec/data/knife_subcommand/test_yourself.rb b/spec/data/knife_subcommand/test_yourself.rb index 4b3f6b039c..f18f565885 100644 --- a/spec/data/knife_subcommand/test_yourself.rb +++ b/spec/data/knife_subcommand/test_yourself.rb @@ -1,6 +1,14 @@ module KnifeSpecs class TestYourself < Chef::Knife + class << self + attr_reader :test_deps_loaded + end + + deps do + @test_deps_loaded = true + end + option :scro, :short => '-s SCRO', :long => '--scro SCRO', :description => 'a configurable setting' attr_reader :ran diff --git a/spec/unit/knife_spec.rb b/spec/unit/knife_spec.rb index d4d721a20d..4c5bb3e207 100644 --- a/spec/unit/knife_spec.rb +++ b/spec/unit/knife_spec.rb @@ -99,6 +99,9 @@ describe Chef::Knife do Chef::Knife.subcommands_by_category['cookbook site'].should include('test_explicit_category') end + it "has empty dependency_loader list by default" do + KnifeSpecs::TestNameMapping.dependency_loaders.should be_empty + end end describe "after loading all subcommands" do @@ -180,6 +183,21 @@ describe Chef::Knife do lambda {Chef::Knife.run(%w{fuuu uuuu fuuuu})}.should raise_error(SystemExit) { |e| e.status.should_not == 0 } end + it "loads lazy dependencies" do + command = Chef::Knife.run(%w{test yourself}) + KnifeSpecs::TestYourself.test_deps_loaded.should be_true + end + + it "loads lazy dependencies from multiple deps calls" do + other_deps_loaded = false + KnifeSpecs::TestYourself.class_eval do + deps { other_deps_loaded = true } + end + command = Chef::Knife.run(%w{test yourself}) + KnifeSpecs::TestYourself.test_deps_loaded.should be_true + other_deps_loaded.should be_true + end + describe "merging configuration options" do before do KnifeSpecs::TestYourself.option(:opt_with_default, @@ -228,6 +246,9 @@ describe Chef::Knife do @knife.name_args.should == %w{with some args} end + it "does not have lazy dependencies loaded" do + @knife.class.test_deps_loaded.should_not be_true + end end describe "when formatting exceptions" do |