spec/unit/command/install_spec.rb in chef-dk-2.4.17 vs spec/unit/command/install_spec.rb in chef-dk-2.5.3
- old
+ new
@@ -1,179 +1,179 @@
-#
-# Copyright:: Copyright (c) 2014 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
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require "spec_helper"
-require "shared/command_with_ui_object"
-require "chef-dk/command/install"
-
-describe ChefDK::Command::Install do
-
- it_behaves_like "a command with a UI object"
-
- let(:params) { [] }
-
- let(:command) do
- c = described_class.new
- c.apply_params!(params)
- c
- end
-
- let(:install_service) { instance_double(ChefDK::PolicyfileServices::Install) }
-
- it "disables debug by default" do
- expect(command.debug?).to be(false)
- end
-
- it "doesn't set a config path by default" do
- expect(command.config_path).to be_nil
- end
-
- context "when debug mode is set" do
-
- let(:params) { [ "-D" ] }
-
- it "enables debug" do
- expect(command.debug?).to be(true)
- end
- end
-
- context "when an explicit config file path is given" do
-
- let(:params) { %w{ -c ~/.chef/alternate_config.rb } }
-
- let(:chef_config_loader) { instance_double("Chef::WorkstationConfigLoader") }
-
- it "sets the config file path to the given value" do
- expect(command.config_path).to eq("~/.chef/alternate_config.rb")
- end
-
- it "loads the config from the given path" do
- expect(Chef::WorkstationConfigLoader).to receive(:new).
- with("~/.chef/alternate_config.rb").
- and_return(chef_config_loader)
- expect(chef_config_loader).to receive(:load)
- expect(command.chef_config).to eq(Chef::Config)
- end
-
- end
-
- context "with no arguments" do
-
- it "does not specify a policyfile relative path" do
- expect(command.policyfile_relative_path).to be(nil)
- end
-
- it "creates the installer service with a `nil` policyfile path" do
- expect(ChefDK::PolicyfileServices::Install).to receive(:new).
- with(hash_including(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, config: Chef::Config)).
- and_return(install_service)
- expect(command.installer).to eq(install_service)
- end
-
- end
-
- context "with an explicit policyfile relative path" do
-
- let(:params) { [ "MyPolicy.rb" ] }
-
- it "respects the user-supplied path" do
- expect(command.policyfile_relative_path).to eq("MyPolicy.rb")
- end
-
- it "creates the installer service with the specified policyfile path" do
- expect(ChefDK::PolicyfileServices::Install).to receive(:new).
- with(hash_including(policyfile: "MyPolicy.rb", ui: command.ui, root_dir: Dir.pwd, config: Chef::Config)).
- and_return(install_service)
- expect(command.installer).to eq(install_service)
- end
-
- end
-
- describe "running the install" do
-
- let(:ui) { TestHelpers::TestUI.new }
-
- before do
- command.ui = ui
- allow(command).to receive(:installer).and_return(install_service)
- end
-
- context "when the command is successful" do
- before do
- expect(install_service).to receive(:run)
- end
-
- it "returns 0" do
- expect(command.run).to eq(0)
- end
- end
-
- context "when the command is unsuccessful" do
-
- let(:backtrace) { caller[0...3] }
-
- let(:cause) do
- e = StandardError.new("some operation failed")
- e.set_backtrace(backtrace)
- e
- end
-
- let(:exception) do
- ChefDK::PolicyfileInstallError.new("install failed", cause)
- end
-
- before do
- expect(install_service).to receive(:run).and_raise(exception)
- end
-
- it "returns 1" do
- expect(command.run).to eq(1)
- end
-
- it "displays the exception and cause" do
- expected_error_text = <<-E
-Error: install failed
-Reason: (StandardError) some operation failed
-
-E
-
- command.run
- expect(ui.output).to eq(expected_error_text)
- end
-
- context "and debug is enabled" do
-
- let(:params) { ["-D"] }
-
- it "displays the exception and cause with backtrace" do
- expected_error_text = <<-E
-Error: install failed
-Reason: (StandardError) some operation failed
-
-
-E
-
- expected_error_text << backtrace.join("\n") << "\n"
-
- command.run
- expect(ui.output).to eq(expected_error_text)
- end
- end
-
- end
-
- end
-end
+#
+# Copyright:: Copyright (c) 2014 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
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require "spec_helper"
+require "shared/command_with_ui_object"
+require "chef-dk/command/install"
+
+describe ChefDK::Command::Install do
+
+ it_behaves_like "a command with a UI object"
+
+ let(:params) { [] }
+
+ let(:command) do
+ c = described_class.new
+ c.apply_params!(params)
+ c
+ end
+
+ let(:install_service) { instance_double(ChefDK::PolicyfileServices::Install) }
+
+ it "disables debug by default" do
+ expect(command.debug?).to be(false)
+ end
+
+ it "doesn't set a config path by default" do
+ expect(command.config_path).to be_nil
+ end
+
+ context "when debug mode is set" do
+
+ let(:params) { [ "-D" ] }
+
+ it "enables debug" do
+ expect(command.debug?).to be(true)
+ end
+ end
+
+ context "when an explicit config file path is given" do
+
+ let(:params) { %w{ -c ~/.chef/alternate_config.rb } }
+
+ let(:chef_config_loader) { instance_double("Chef::WorkstationConfigLoader") }
+
+ it "sets the config file path to the given value" do
+ expect(command.config_path).to eq("~/.chef/alternate_config.rb")
+ end
+
+ it "loads the config from the given path" do
+ expect(Chef::WorkstationConfigLoader).to receive(:new).
+ with("~/.chef/alternate_config.rb").
+ and_return(chef_config_loader)
+ expect(chef_config_loader).to receive(:load)
+ expect(command.chef_config).to eq(Chef::Config)
+ end
+
+ end
+
+ context "with no arguments" do
+
+ it "does not specify a policyfile relative path" do
+ expect(command.policyfile_relative_path).to be(nil)
+ end
+
+ it "creates the installer service with a `nil` policyfile path" do
+ expect(ChefDK::PolicyfileServices::Install).to receive(:new).
+ with(hash_including(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, config: Chef::Config)).
+ and_return(install_service)
+ expect(command.installer).to eq(install_service)
+ end
+
+ end
+
+ context "with an explicit policyfile relative path" do
+
+ let(:params) { [ "MyPolicy.rb" ] }
+
+ it "respects the user-supplied path" do
+ expect(command.policyfile_relative_path).to eq("MyPolicy.rb")
+ end
+
+ it "creates the installer service with the specified policyfile path" do
+ expect(ChefDK::PolicyfileServices::Install).to receive(:new).
+ with(hash_including(policyfile: "MyPolicy.rb", ui: command.ui, root_dir: Dir.pwd, config: Chef::Config)).
+ and_return(install_service)
+ expect(command.installer).to eq(install_service)
+ end
+
+ end
+
+ describe "running the install" do
+
+ let(:ui) { TestHelpers::TestUI.new }
+
+ before do
+ command.ui = ui
+ allow(command).to receive(:installer).and_return(install_service)
+ end
+
+ context "when the command is successful" do
+ before do
+ expect(install_service).to receive(:run)
+ end
+
+ it "returns 0" do
+ expect(command.run).to eq(0)
+ end
+ end
+
+ context "when the command is unsuccessful" do
+
+ let(:backtrace) { caller[0...3] }
+
+ let(:cause) do
+ e = StandardError.new("some operation failed")
+ e.set_backtrace(backtrace)
+ e
+ end
+
+ let(:exception) do
+ ChefDK::PolicyfileInstallError.new("install failed", cause)
+ end
+
+ before do
+ expect(install_service).to receive(:run).and_raise(exception)
+ end
+
+ it "returns 1" do
+ expect(command.run).to eq(1)
+ end
+
+ it "displays the exception and cause" do
+ expected_error_text = <<-E
+Error: install failed
+Reason: (StandardError) some operation failed
+
+E
+
+ command.run
+ expect(ui.output).to eq(expected_error_text)
+ end
+
+ context "and debug is enabled" do
+
+ let(:params) { ["-D"] }
+
+ it "displays the exception and cause with backtrace" do
+ expected_error_text = <<-E
+Error: install failed
+Reason: (StandardError) some operation failed
+
+
+E
+
+ expected_error_text << backtrace.join("\n") << "\n"
+
+ command.run
+ expect(ui.output).to eq(expected_error_text)
+ end
+ end
+
+ end
+
+ end
+end