Sha256: cc2590c69d2c1a8f6e90820db7be6b30f42d66cbfbc6972179f16fb78d7f583d
Contents?: true
Size: 1.84 KB
Versions: 20
Compression:
Stored size: 1.84 KB
Contents
require "spec_helper" require "support/shared/integration/integration_helper" require "chef/mixin/shell_out" describe "LWRPs" do include IntegrationSupport include Chef::Mixin::ShellOut let(:chef_dir) { File.expand_path("../../..", __dir__) } # Invoke `chef-client` as `ruby PATH/TO/chef-client`. This ensures the # following constraints are satisfied: # * Windows: windows can only run batch scripts as bare executables. Rubygems # creates batch wrappers for installed gems, but we don't have batch wrappers # in the source tree. # * Other `chef-client` in PATH: A common case is running the tests on a # machine that has omnibus chef installed. In that case we need to ensure # we're running `chef-client` from the source tree and not the external one. # cf. CHEF-4914 let(:chef_client) { "bundle exec #{ChefUtils::Dist::Infra::CLIENT} --minimal-ohai --always-dump-stacktrace" } when_the_repository "has a cookbook named l-w-r-p" do before do directory "cookbooks/l-w-r-p" do file "resources/foo.rb", <<~EOM unified_mode true default_action :create EOM file "providers/foo.rb", <<~EOM action :create do end EOM file "recipes/default.rb", <<~EOM l_w_r_p_foo "me" EOM end # directory 'cookbooks/x' end it "should complete with success" do file "config/client.rb", <<~EOM local_mode true cookbook_path "#{path_to("cookbooks")}" log_level :warn EOM result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" --no-color -F doc -o 'l-w-r-p::default'", cwd: chef_dir) expect(result.stdout).to match(/\* l_w_r_p_foo\[me\] action create \(up to date\)/) expect(result.stdout).not_to match(/WARN: You are overriding l_w_r_p_foo/) result.error! end end end
Version data entries
20 entries across 20 versions & 1 rubygems