summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2020-06-26 10:20:50 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2020-06-26 10:20:50 -0700
commit9d75e3b7cc2e87eb3c7950561a2c064feeb243f1 (patch)
treed05d6939fdffa3e4324eb75462dbe6fef86aeff1
parent696ecf12ff818f86c1d0853b407c0dd6cac9bc9f (diff)
downloadchef-lcg/win-unit-test-cherrypick.tar.gz
Pick some of the unit test fixes from #10068lcg/win-unit-test-cherrypick
This picks some of the more obviously correct looking fixes from #10068 Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r--spec/support/shared/unit/provider/file.rb20
-rw-r--r--spec/unit/application/solo_spec.rb6
-rw-r--r--spec/unit/client_spec.rb5
-rw-r--r--spec/unit/cookbook/synchronizer_spec.rb50
-rw-r--r--spec/unit/data_bag_spec.rb9
-rw-r--r--spec/unit/environment_spec.rb6
-rw-r--r--spec/unit/knife/cookbook_upload_spec.rb11
-rw-r--r--spec/unit/knife/core/windows_bootstrap_context_spec.rb18
-rw-r--r--spec/unit/mixin/powershell_out_spec.rb6
-rw-r--r--spec/unit/provider/batch_spec.rb2
-rw-r--r--spec/unit/resource/chef_client_cron_spec.rb30
-rw-r--r--spec/unit/resource/chef_client_systemd_timer_spec.rb11
-rw-r--r--spec/unit/resource/file/verification_spec.rb3
13 files changed, 108 insertions, 69 deletions
diff --git a/spec/support/shared/unit/provider/file.rb b/spec/support/shared/unit/provider/file.rb
index 509ab15bb6..f624a6ae44 100644
--- a/spec/support/shared/unit/provider/file.rb
+++ b/spec/support/shared/unit/provider/file.rb
@@ -484,19 +484,23 @@ shared_examples_for Chef::Provider::File do
it "raises an exception if any verification fails" do
allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
- provider.new_resource.verify windows? ? "REM" : "true"
- provider.new_resource.verify windows? ? "cmd.exe /c exit 1" : "false"
- msg = "Proposed content for #{provider.new_resource.path} failed verification #{windows? ? "cmd.exe /c exit 1" : "false"}"
- expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, /#{msg}/)
+ allow(provider).to receive(:tempfile).and_return(tempfile)
+ provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
+ provider.new_resource.verify.each do |v|
+ allow(v).to receive(:verify).and_return(false)
+ end
+ expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "does not show verification for sensitive resources" do
allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
- provider.new_resource.verify windows? ? "REM" : "true"
- provider.new_resource.verify windows? ? "cmd.exe /c exit 1" : "false"
+ allow(provider).to receive(:tempfile).and_return(tempfile)
provider.new_resource.sensitive true
- msg = "Proposed content for #{provider.new_resource.path} failed verification [sensitive]\nTemporary file moved to #{backupfile}"
- expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, msg)
+ provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
+ provider.new_resource.verify.each do |v|
+ allow(v).to receive(:verify).and_return(false)
+ end
+ expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, /sensitive/)
end
end
end
diff --git a/spec/unit/application/solo_spec.rb b/spec/unit/application/solo_spec.rb
index 01c506c60a..0824f8b5b3 100644
--- a/spec/unit/application/solo_spec.rb
+++ b/spec/unit/application/solo_spec.rb
@@ -164,6 +164,8 @@ describe Chef::Application::Solo do
end
context "in local mode" do
+ let(:root_path) { windows? ? "C:/var/chef" : "/var/chef" }
+
before do
Chef::Config[:solo_legacy_mode] = false
end
@@ -197,10 +199,10 @@ describe Chef::Application::Solo do
end
it "sets the repo path" do
- expect(Chef::Config).to receive(:find_chef_repo_path).and_return("/var/chef")
+ expect(Chef::Config).to receive(:find_chef_repo_path).and_return(root_path)
app.reconfigure
expect(Chef::Config.key?(:chef_repo_path)).to be_truthy
- expect(Chef::Config[:chef_repo_path]).to eq ("/var/chef")
+ expect(Chef::Config[:chef_repo_path]).to eq (root_path)
end
it "runs chef-client in local mode" do
diff --git a/spec/unit/client_spec.rb b/spec/unit/client_spec.rb
index 831fe9c9b6..34c0a2c548 100644
--- a/spec/unit/client_spec.rb
+++ b/spec/unit/client_spec.rb
@@ -749,9 +749,12 @@ describe Chef::Client do
context "when any directory of cookbook_path contains no cookbook" do
it "raises CookbookNotFound error" do
+ invalid_cookbook_path = windows? ? "C:/path/to/invalid/cookbook_path" : "/path/to/invalid/cookbook_path"
+ msg = "None of the cookbook paths set in Chef::Config[:cookbook_path], [\"#{invalid_cookbook_path}\"], contain any cookbooks"
+
expect do
client.send(:assert_cookbook_path_not_empty, nil)
- end.to raise_error(Chef::Exceptions::CookbookNotFound, 'None of the cookbook paths set in Chef::Config[:cookbook_path], ["/path/to/invalid/cookbook_path"], contain any cookbooks')
+ end.to raise_error(Chef::Exceptions::CookbookNotFound, msg)
end
end
end
diff --git a/spec/unit/cookbook/synchronizer_spec.rb b/spec/unit/cookbook/synchronizer_spec.rb
index 0762a11771..a1d312836b 100644
--- a/spec/unit/cookbook/synchronizer_spec.rb
+++ b/spec/unit/cookbook/synchronizer_spec.rb
@@ -217,6 +217,8 @@ describe Chef::CookbookSynchronizer do
path: "/tmp/cookbook_a_template_default_tempfile")
end
+ let(:root) { windows? ? "C:/file-cache/cookbooks/cookbook_a" : "/file-cache/cookbooks/cookbook_a" }
+
def setup_common_files_missing_expectations
# Files are not in the cache:
expect(file_cache).to receive(:key?)
@@ -234,7 +236,7 @@ describe Chef::CookbookSynchronizer do
.with("/tmp/cookbook_a_recipes_default_rb", "cookbooks/cookbook_a/recipes/default.rb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/recipes/default.rb", false)
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .and_return("#{root}/recipes/default.rb")
# Fetch and copy default.rb attribute file
expect(server_api).to receive(:streaming_request)
@@ -244,7 +246,7 @@ describe Chef::CookbookSynchronizer do
.with("/tmp/cookbook_a_attributes_default_rb", "cookbooks/cookbook_a/attributes/default.rb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/attributes/default.rb", false)
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .and_return("#{root}/attributes/default.rb")
end
def setup_no_lazy_files_and_templates_missing_expectations
@@ -262,7 +264,7 @@ describe Chef::CookbookSynchronizer do
.with("/tmp/cookbook_a_file_default_tempfile", "cookbooks/cookbook_a/files/default/megaman.conf")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
+ .and_return("#{root}/default/megaman.conf")
expect(server_api).to receive(:streaming_request)
.with("http://chef.example.com/ffffff")
@@ -271,7 +273,7 @@ describe Chef::CookbookSynchronizer do
.with("/tmp/cookbook_a_template_default_tempfile", "cookbooks/cookbook_a/templates/default/apache2.conf.erb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .and_return("#{root}/templates/default/apache2.conf.erb")
end
def setup_common_files_chksum_mismatch_expectations
@@ -292,11 +294,11 @@ describe Chef::CookbookSynchronizer do
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/recipes/default.rb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .and_return("#{root}/recipes/default.rb")
# Current file has fff000, want abc123
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .with("#{root}/recipes/default.rb")
.and_return("fff000").at_least(:once)
# Fetch and copy default.rb attribute file
@@ -308,11 +310,11 @@ describe Chef::CookbookSynchronizer do
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/attributes/default.rb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .and_return("#{root}/attributes/default.rb")
# Current file has fff000, want abc456
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .with("#{root}/attributes/default.rb")
.and_return("fff000").at_least(:once)
end
@@ -334,7 +336,7 @@ describe Chef::CookbookSynchronizer do
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
+ .and_return("#{root}/default/megaman.conf")
# Fetch and copy apache2.conf template
expect(server_api).to receive(:streaming_request)
@@ -345,16 +347,16 @@ describe Chef::CookbookSynchronizer do
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .and_return("#{root}/templates/default/apache2.conf.erb")
# Current file has fff000
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
+ .with("#{root}/default/megaman.conf")
.and_return("fff000")
# Current file has fff000
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .with("#{root}/templates/default/apache2.conf.erb")
.and_return("fff000")
end
@@ -369,23 +371,23 @@ describe Chef::CookbookSynchronizer do
# Current file has abc123, want abc123
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .with("#{root}/recipes/default.rb")
.and_return("abc123").at_least(:once)
# Current file has abc456, want abc456
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .with("#{root}/attributes/default.rb")
.and_return("abc456").at_least(:once)
# :load called twice
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/recipes/default.rb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .and_return("#{root}/recipes/default.rb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/attributes/default.rb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .and_return("#{root}/attributes/default.rb")
end
def setup_no_lazy_files_and_templates_present_expectations
@@ -399,23 +401,23 @@ describe Chef::CookbookSynchronizer do
# Current file has abc124, want abc124
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
+ .with("#{root}/default/megaman.conf")
.and_return("abc124")
# Current file has abc125, want abc125
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
- .with("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .with("#{root}/templates/default/apache2.conf.erb")
.and_return("abc125")
# :load called twice
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
+ .and_return("#{root}/default/megaman.conf")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
.twice
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .and_return("#{root}/templates/default/apache2.conf.erb")
end
describe "#server_api" do
@@ -535,19 +537,19 @@ describe Chef::CookbookSynchronizer do
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/recipes/default.rb", false)
.once
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
+ .and_return("#{root}/recipes/default.rb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/attributes/default.rb", false)
.once
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
+ .and_return("#{root}/attributes/default.rb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
.once
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
+ .and_return("#{root}/templates/default/apache2.conf.erb")
expect(file_cache).to receive(:load)
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
.once
- .and_return("/file-cache/cookbooks/cookbook_a/files/default/megaman.conf")
+ .and_return("#{root}/files/default/megaman.conf")
expect(Chef::Log).to receive(:warn)
.with("skipping cookbook synchronization! DO NOT LEAVE THIS ENABLED IN PRODUCTION!!!")
.once
diff --git a/spec/unit/data_bag_spec.rb b/spec/unit/data_bag_spec.rb
index 7e5ef46d58..2a7ddddd5b 100644
--- a/spec/unit/data_bag_spec.rb
+++ b/spec/unit/data_bag_spec.rb
@@ -240,20 +240,23 @@ describe Chef::DataBag do
it "should raise an error if the configured data_bag_path is invalid" do
file_dir_stub(@paths.first, false)
+ msg = "Data bag path '#{windows? ? "C:/var/chef" : "/var/chef"}/data_bags' not found. Please create this directory."
expect do
Chef::DataBag.load("foo")
- end.to raise_error Chef::Exceptions::InvalidDataBagPath, "Data bag path '/var/chef/data_bags' not found. Please create this directory."
+ end.to raise_error Chef::Exceptions::InvalidDataBagPath, msg
end
end
describe "data bag with string path" do
- it_should_behave_like "data bag in solo mode", "/var/chef/data_bags"
+ it_should_behave_like "data bag in solo mode", "#{windows? ? "C:/var/chef" : "/var/chef"}/data_bags"
end
describe "data bag with array path" do
- it_should_behave_like "data bag in solo mode", ["/var/chef/data_bags", "/var/chef/data_bags_2"]
+ it_should_behave_like "data bag in solo mode", %w{data_bags data_bags_2}.map { |data_bag|
+ "#{windows? ? "C:/var/chef" : "/var/chef"}/#{data_bag}"
+ }
end
end
diff --git a/spec/unit/environment_spec.rb b/spec/unit/environment_spec.rb
index 2918a9a65e..93b4a5011c 100644
--- a/spec/unit/environment_spec.rb
+++ b/spec/unit/environment_spec.rb
@@ -454,7 +454,11 @@ describe Chef::Environment do
expect do
Chef::Environment.load("foo")
- end.to raise_error Chef::Exceptions::InvalidEnvironmentPath, "Environment path '/var/chef/environments' is invalid"
+ end.to raise_error(
+ an_instance_of(Chef::Exceptions::InvalidEnvironmentPath).and having_attributes(
+ message: "Environment path '#{windows? ? "C:/var/chef/environments" : "/var/chef/environments"}' is invalid"
+ )
+ )
end
it "should raise an error if the file does not exist" do
diff --git a/spec/unit/knife/cookbook_upload_spec.rb b/spec/unit/knife/cookbook_upload_spec.rb
index 661eb779ea..a81fddeb1d 100644
--- a/spec/unit/knife/cookbook_upload_spec.rb
+++ b/spec/unit/knife/cookbook_upload_spec.rb
@@ -323,19 +323,18 @@ describe Chef::Knife::CookbookUpload do
context "when cookbook path is an array" do
it "should warn users that no cookbooks exist" do
- knife.config[:cookbook_path] = ["/chef-repo/cookbooks", "/home/user/cookbooks"]
- expect(knife.ui).to receive(:warn).with(
- /Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path].join(', ')}'\. Use --cookbook-path to specify the desired path\./
- )
+ coockbook_path = windows? ? "C:/chef-repo/cookbooks" : "C:/chef-repo/cookbooks"
+ knife.config[:cookbook_path] = [coockbook_path, "/home/user/cookbooks"]
+ expect(knife.ui).to receive(:warn).with("Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path].join(", ")}'. Use --cookbook-path to specify the desired path.")
knife.run
end
end
context "when cookbook path is a string" do
it "should warn users that no cookbooks exist" do
- knife.config[:cookbook_path] = "/chef-repo/cookbooks"
+ knife.config[:cookbook_path] = windows? ? "C:/chef-repo/cookbooks" : "C:/chef-repo/cookbooks"
expect(knife.ui).to receive(:warn).with(
- /Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path]}'\. Use --cookbook-path to specify the desired path\./
+ "Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path]}'. Use --cookbook-path to specify the desired path."
)
knife.run
end
diff --git a/spec/unit/knife/core/windows_bootstrap_context_spec.rb b/spec/unit/knife/core/windows_bootstrap_context_spec.rb
index 6b041c5311..56467d12ab 100644
--- a/spec/unit/knife/core/windows_bootstrap_context_spec.rb
+++ b/spec/unit/knife/core/windows_bootstrap_context_spec.rb
@@ -148,22 +148,26 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
describe "#config_content" do
before do
+ root_path = windows? ? "c:/chef" : "/chef"
+
bootstrap_context.instance_variable_set(:@chef_config, Mash.new(config_log_level: :info,
config_log_location: STDOUT,
chef_server_url: "http://chef.example.com:4444",
validation_client_name: "chef-validator-testing",
- file_cache_path: "c:/chef/cache",
- file_backup_path: "c:/chef/backup",
- cache_options: ({ path: "c:/chef/cache/checksums", skip_expires: true })))
+ file_cache_path: windows? ? "#{root_path}/cache" : "#{root_path}/cache",
+ file_backup_path: windows? ? "#{root_path}/backup" : "#{root_path}/backup",
+ cache_options: ({ path: "#{root_path}/cache/checksums", skip_expires: true })))
end
it "generates the config file data" do
+ root_path = windows? ? "C:\\chef" : "\\chef"
+
expected = <<~EXPECTED
echo.chef_server_url "http://chef.example.com:4444"
echo.validation_client_name "chef-validator-testing"
- echo.file_cache_path "C:/chef/cache"
- echo.file_backup_path "C:/chef/backup"
- echo.cache_options ^({:path =^> "C:/chef/cache/checksums", :skip_expires =^> true}^)
+ echo.file_cache_path "#{root_path}/cache"
+ echo.file_backup_path "#{root_path}/backup"
+ echo.cache_options ^({:path =^> "#{root_path}/cache/checksums", :skip_expires =^> true}^)
echo.# Using default node name ^(fqdn^)
echo.log_level :info
echo.log_location STDOUT
@@ -183,7 +187,7 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
describe "#start_chef" do
it "returns the expected string" do
- expect(bootstrap_context.start_chef).to match(%r{SET \"PATH=%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;C:\\ruby\\bin;C:\/opscode\/chef\\bin;C:\/opscode\/chef\\embedded\\bin\;%PATH%\"\n})
+ expect(bootstrap_context.start_chef).to match(/SET \"PATH=%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;C:\\ruby\\bin;C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin\;%PATH%\"\n/)
end
end
diff --git a/spec/unit/mixin/powershell_out_spec.rb b/spec/unit/mixin/powershell_out_spec.rb
index e6a9186a77..7306332057 100644
--- a/spec/unit/mixin/powershell_out_spec.rb
+++ b/spec/unit/mixin/powershell_out_spec.rb
@@ -30,8 +30,7 @@ describe Chef::Mixin::PowershellOut, :windows_only do
it "runs a command and returns the shell_out object" do
ret = double("Mixlib::ShellOut")
expect(object).to receive(:shell_out).with(
- "powershell.exe #{flags} -Command \"Get-Process\"",
- {}
+ "powershell.exe #{flags} -Command \"Get-Process\""
).and_return(ret)
expect(object.powershell_out("Get-Process")).to eql(ret)
end
@@ -62,8 +61,7 @@ describe Chef::Mixin::PowershellOut, :windows_only do
it "runs a command and returns the shell_out object" do
mixlib_shellout = double("Mixlib::ShellOut")
expect(object).to receive(:shell_out).with(
- "powershell.exe #{flags} -Command \"Get-Process\"",
- {}
+ "powershell.exe #{flags} -Command \"Get-Process\""
).and_return(mixlib_shellout)
expect(mixlib_shellout).to receive(:error!)
expect(object.powershell_out!("Get-Process")).to eql(mixlib_shellout)
diff --git a/spec/unit/provider/batch_spec.rb b/spec/unit/provider/batch_spec.rb
index 3ca1334489..80e914beaa 100644
--- a/spec/unit/provider/batch_spec.rb
+++ b/spec/unit/provider/batch_spec.rb
@@ -94,7 +94,7 @@ describe Chef::Provider::Batch do
end
describe "#command" do
- let(:basepath) { "C:\\Windows\\system32" }
+ let(:basepath) { "C:\\Windows\\system32\\" }
let(:interpreter) { File.join(basepath, "cmd.exe") }
before do
diff --git a/spec/unit/resource/chef_client_cron_spec.rb b/spec/unit/resource/chef_client_cron_spec.rb
index f1261917a4..b6b28329a9 100644
--- a/spec/unit/resource/chef_client_cron_spec.rb
+++ b/spec/unit/resource/chef_client_cron_spec.rb
@@ -76,13 +76,19 @@ describe Chef::Resource::ChefClientCron do
allow(provider).to receive(:splay_sleep_time).and_return("123")
end
+ let(:root_path) { windows? ? "C:\\chef/client.rb" : "/etc/chef/client.rb" }
+
it "creates a valid command if using all default properties" do
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client -c /etc/chef/client.rb -L /var/log/chef/client.log")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client -c #{root_path} -L /var/log/chef/client.log"
+ )
end
it "uses daemon_options if set" do
resource.daemon_options ["--foo 1", "--bar 2"]
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client --foo 1 --bar 2 -c /etc/chef/client.rb -L /var/log/chef/client.log")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client --foo 1 --bar 2 -c #{root_path} -L /var/log/chef/client.log"
+ )
end
it "uses custom config dir if set" do
@@ -93,27 +99,37 @@ describe Chef::Resource::ChefClientCron do
it "uses custom log files / paths if set" do
resource.log_file_name "my-client.log"
resource.log_directory "/var/log/my-chef/"
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client -c /etc/chef/client.rb -L /var/log/my-chef/my-client.log")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client -c #{root_path} -L /var/log/my-chef/my-client.log"
+ )
end
it "uses mailto if set" do
resource.mailto "bob@example.com"
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client -c /etc/chef/client.rb -L /var/log/chef/client.log || echo \"Chef Infra Client execution failed\"")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client -c #{root_path} -L /var/log/chef/client.log || echo \"Chef Infra Client execution failed\""
+ )
end
it "uses custom chef-client binary if set" do
resource.chef_binary_path "/usr/local/bin/chef-client"
- expect(provider.cron_command).to eql("/bin/sleep 123; /usr/local/bin/chef-client -c /etc/chef/client.rb -L /var/log/chef/client.log")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /usr/local/bin/chef-client -c #{root_path} -L /var/log/chef/client.log"
+ )
end
it "appends to the log file appending if set to false" do
resource.append_log_file false
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client -c /etc/chef/client.rb > /var/log/chef/client.log 2>&1")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client -c #{root_path} > /var/log/chef/client.log 2>&1"
+ )
end
it "sets the license acceptance flag if set" do
resource.accept_chef_license true
- expect(provider.cron_command).to eql("/bin/sleep 123; /opt/chef/bin/chef-client -c /etc/chef/client.rb --chef-license accept -L /var/log/chef/client.log")
+ expect(provider.cron_command).to eql(
+ "/bin/sleep 123; /opt/chef/bin/chef-client -c #{root_path} --chef-license accept -L /var/log/chef/client.log"
+ )
end
end
end
diff --git a/spec/unit/resource/chef_client_systemd_timer_spec.rb b/spec/unit/resource/chef_client_systemd_timer_spec.rb
index b175bb27ec..1866060530 100644
--- a/spec/unit/resource/chef_client_systemd_timer_spec.rb
+++ b/spec/unit/resource/chef_client_systemd_timer_spec.rb
@@ -43,13 +43,16 @@ describe Chef::Resource::ChefClientSystemdTimer do
end
describe "#chef_client_cmd" do
+
+ let(:root_path) { windows? ? "C:\\chef/client.rb" : "/etc/chef/client.rb" }
+
it "creates a valid command if using all default properties" do
- expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client -c /etc/chef/client.rb")
+ expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client -c #{root_path}")
end
it "uses daemon_options if set" do
resource.daemon_options ["--foo 1", "--bar 2"]
- expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client --foo 1 --bar 2 -c /etc/chef/client.rb")
+ expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client --foo 1 --bar 2 -c #{root_path}")
end
it "uses custom config dir if set" do
@@ -59,12 +62,12 @@ describe Chef::Resource::ChefClientSystemdTimer do
it "uses custom chef-client binary if set" do
resource.chef_binary_path "/usr/local/bin/chef-client"
- expect(provider.chef_client_cmd).to eql("/usr/local/bin/chef-client -c /etc/chef/client.rb")
+ expect(provider.chef_client_cmd).to eql("/usr/local/bin/chef-client -c #{root_path}")
end
it "sets the license acceptance flag if set" do
resource.accept_chef_license true
- expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client --chef-license accept -c /etc/chef/client.rb")
+ expect(provider.chef_client_cmd).to eql("/opt/chef/bin/chef-client --chef-license accept -c #{root_path}")
end
end
end
diff --git a/spec/unit/resource/file/verification_spec.rb b/spec/unit/resource/file/verification_spec.rb
index d0e697a1cd..d1fe863891 100644
--- a/spec/unit/resource/file/verification_spec.rb
+++ b/spec/unit/resource/file/verification_spec.rb
@@ -112,7 +112,8 @@ describe Chef::Resource::File::Verification do
end
it "returns true if the command succeeds" do
- v = Chef::Resource::File::Verification.new(parent_resource, "true", {})
+ test_command = platform_specific_verify_command("path")
+ v = Chef::Resource::File::Verification.new(parent_resource, test_command, {})
expect(v.verify(temp_path)).to eq(true)
end