summaryrefslogtreecommitdiff
path: root/spec/unit/run_context/cookbook_compiler_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/run_context/cookbook_compiler_spec.rb')
-rw-r--r--spec/unit/run_context/cookbook_compiler_spec.rb64
1 files changed, 37 insertions, 27 deletions
diff --git a/spec/unit/run_context/cookbook_compiler_spec.rb b/spec/unit/run_context/cookbook_compiler_spec.rb
index feb39615b6..4d744edc3a 100644
--- a/spec/unit/run_context/cookbook_compiler_spec.rb
+++ b/spec/unit/run_context/cookbook_compiler_spec.rb
@@ -1,6 +1,6 @@
#
# Author:: Daniel DeLeo (<dan@chef.io>)
-# Copyright:: Copyright 2012-2016, Chef Software Inc.
+# Copyright:: Copyright (c) Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -51,6 +51,14 @@ describe Chef::RunContext::CookbookCompiler do
Chef::RunContext::CookbookCompiler.new(run_context, run_list_expansion, events)
end
+ describe "loading a cookbook fully" do
+ it "does not error" do
+ run_context.instance_variable_set(:@cookbook_compiler, compiler)
+ node.run_list("dependency1::default")
+ compiler.compile
+ end
+ end
+
describe "loading attribute files" do
# Attribute files in the fixture data will append their
@@ -107,7 +115,11 @@ describe Chef::RunContext::CookbookCompiler do
node.run_list("test-with-deps::default", "test-with-circular-deps::default")
compiler.compile_libraries
- expect(LibraryLoadOrder.load_order).to eq(["dependency1", "dependency2", "test-with-deps", "circular-dep2", "circular-dep1", "test-with-circular-deps"])
+ expect(LibraryLoadOrder.load_order).to eq(%w{dependency1 dependency2 test-with-deps circular-dep2 circular-dep1 test-with-circular-deps})
+
+ # additionally test that we only load them once
+ compiler.compile_libraries
+ expect(LibraryLoadOrder.load_order).to eq(%w{dependency1 dependency2 test-with-deps circular-dep2 circular-dep1 test-with-circular-deps})
end
end
@@ -121,18 +133,18 @@ describe Chef::RunContext::CookbookCompiler do
node.run_list("test-with-deps::default", "test-with-circular-deps::default")
compiler.compile_lwrps
- expect(LibraryLoadOrder.load_order).to eq(["dependency1-provider",
- "dependency1-resource",
- "dependency2-provider",
- "dependency2-resource",
- "test-with-deps-provider",
- "test-with-deps-resource",
- "circular-dep2-provider",
- "circular-dep2-resource",
- "circular-dep1-provider",
- "circular-dep1-resource",
- "test-with-circular-deps-provider",
- "test-with-circular-deps-resource"])
+ expect(LibraryLoadOrder.load_order).to eq(%w{dependency1-provider
+ dependency1-resource
+ dependency2-provider
+ dependency2-resource
+ test-with-deps-provider
+ test-with-deps-resource
+ circular-dep2-provider
+ circular-dep2-resource
+ circular-dep1-provider
+ circular-dep1-resource
+ test-with-circular-deps-provider
+ test-with-circular-deps-resource})
end
end
@@ -147,12 +159,12 @@ describe Chef::RunContext::CookbookCompiler do
node.run_list("test-with-deps::default", "test-with-circular-deps::default")
compiler.compile_resource_definitions
- expect(LibraryLoadOrder.load_order).to eq(["dependency1-definition",
- "dependency2-definition",
- "test-with-deps-definition",
- "circular-dep2-definition",
- "circular-dep1-definition",
- "test-with-circular-deps-definition"])
+ expect(LibraryLoadOrder.load_order).to eq(%w{dependency1-definition
+ dependency2-definition
+ test-with-deps-definition
+ circular-dep2-definition
+ circular-dep1-definition
+ test-with-circular-deps-definition})
end
end
@@ -163,9 +175,7 @@ describe Chef::RunContext::CookbookCompiler do
describe "event dispatch" do
let(:recipe) { "dependency1::default" }
let(:recipe_path) do
- File.expand_path("../../../data/run_context/cookbooks/dependency1/recipes/default.rb", __FILE__).tap do |path|
- path.gsub!(File::SEPARATOR, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
- end
+ File.expand_path("../../data/run_context/cookbooks/dependency1/recipes/default.rb", __dir__)
end
before do
node.run_list(recipe)
@@ -207,14 +217,14 @@ describe Chef::RunContext::CookbookCompiler do
it "should return an array of cookbook names as symbols without duplicates" do
node.run_list("test-with-circular-deps::default", "circular-dep1::default", "circular-dep2::default")
- expect(compiler.cookbook_order).to eq([:"circular-dep2",
- :"circular-dep1",
- :"test-with-circular-deps"])
+ expect(compiler.cookbook_order).to eq(%i{circular-dep2
+ circular-dep1
+ test-with-circular-deps})
end
it "determines if a cookbook is in the list of cookbooks reachable by dependency" do
node.run_list("test-with-deps::default", "test-with-deps::server")
- expect(compiler.cookbook_order).to eq([:dependency1, :dependency2, :"test-with-deps"])
+ expect(compiler.cookbook_order).to eq(%i{dependency1 dependency2 test-with-deps})
expect(compiler.unreachable_cookbook?(:dependency1)).to be_falsey
expect(compiler.unreachable_cookbook?(:dependency2)).to be_falsey
expect(compiler.unreachable_cookbook?(:'test-with-deps')).to be_falsey