summaryrefslogtreecommitdiff
path: root/spec/unit/knife_spec.rb
diff options
context:
space:
mode:
authorTeemu Matilainen <teemu.matilainen@iki.fi>2013-03-08 13:03:18 -0300
committerBryan McLellan <btm@opscode.com>2013-04-11 13:33:53 -0700
commitcecfe75c82a2977f04cd34abb71996c5acd80273 (patch)
tree710036a3065a1fc2fdccfc9f403d640bbffc994e /spec/unit/knife_spec.rb
parentb1d50b3b86acf033f8ab8a479e4dea9fb0cd131a (diff)
downloadchef-cecfe75c82a2977f04cd34abb71996c5acd80273.tar.gz
[CHEF-3932] Add unit tests for Knife's lazy dependency loading
Diffstat (limited to 'spec/unit/knife_spec.rb')
-rw-r--r--spec/unit/knife_spec.rb21
1 files changed, 21 insertions, 0 deletions
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