diff options
Diffstat (limited to 'spec/unit/provider/powershell_script_spec.rb')
-rw-r--r-- | spec/unit/provider/powershell_script_spec.rb | 94 |
1 files changed, 38 insertions, 56 deletions
diff --git a/spec/unit/provider/powershell_script_spec.rb b/spec/unit/provider/powershell_script_spec.rb index cca0f34067..0bb0bf701b 100644 --- a/spec/unit/provider/powershell_script_spec.rb +++ b/spec/unit/provider/powershell_script_spec.rb @@ -53,73 +53,55 @@ describe Chef::Provider::PowershellScript, "action_run" do end context "when setting interpreter flags" do - context "on nano" do - before(:each) do - allow(Chef::Platform).to receive(:windows_nano_server?).and_return(true) - allow(provider).to receive(:is_forced_32bit).and_return(false) - os_info_double = double("os_info") - allow(provider.run_context.node["kernel"]).to receive(:[]).with("os_info").and_return(os_info_double) - allow(os_info_double).to receive(:[]).with("system_directory").and_return("C:\\Windows\\system32") - end - - it "sets the -Command flag as the last flag" do - flags = provider.command.split(" ").keep_if { |flag| flag =~ /^-/ } - expect(flags.pop).to eq("-Command") - end + before(:each) do + allow(provider).to receive(:is_forced_32bit).and_return(false) + os_info_double = double("os_info") + allow(provider.run_context.node["kernel"]).to receive(:[]).with("os_info").and_return(os_info_double) + allow(os_info_double).to receive(:[]).with("system_directory").and_return("C:\\Windows\\system32") end - context "not on nano" do - before(:each) do - allow(Chef::Platform).to receive(:windows_nano_server?).and_return(false) - allow(provider).to receive(:is_forced_32bit).and_return(false) - os_info_double = double("os_info") - allow(provider.run_context.node["kernel"]).to receive(:[]).with("os_info").and_return(os_info_double) - allow(os_info_double).to receive(:[]).with("system_directory").and_return("C:\\Windows\\system32") - end + it "sets the -File flag as the last flag" do + flags = provider.command.split(" ").keep_if { |flag| flag =~ /^-/ } + expect(flags.pop).to eq("-File") + end - it "sets the -File flag as the last flag" do - flags = provider.command.split(" ").keep_if { |flag| flag =~ /^-/ } - expect(flags.pop).to eq("-File") - end + let(:execution_policy_flag) do + provider_flags = provider.flags.split(" ") + # Last occurance of "executionpolicy" + execution_policy_index = provider_flags.map(&:downcase).rindex("-executionpolicy") - let(:execution_policy_flag) do - provider_flags = provider.flags.split(" ") - # Last occurance of "executionpolicy" - execution_policy_index = provider_flags.map(&:downcase).rindex("-executionpolicy") + execution_policy_index ? provider_flags[execution_policy_index + 1] : nil + end - execution_policy_index ? provider_flags[execution_policy_index + 1] : nil + context "when running with an unspecified PowerShell version" do + let(:powershell_version) { nil } + it "sets default -ExecutionPolicy flag to 'Unrestricted'" do + expect(execution_policy_flag.downcase).to eq("unrestricted".downcase) end - - context "when running with an unspecified PowerShell version" do - let(:powershell_version) { nil } - it "sets default -ExecutionPolicy flag to 'Unrestricted'" do - expect(execution_policy_flag.downcase).to eq("unrestricted".downcase) - end - it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do - set_user_defined_flag - expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase) - end + it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do + set_user_defined_flag + expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase) end + end - { "2.0" => "Unrestricted", - "2.5" => "Unrestricted", - "3.0" => "Bypass", - "3.6" => "Bypass", - "4.0" => "Bypass", - "5.0" => "Bypass" }.each do |version_policy| + { "2.0" => "Unrestricted", + "2.5" => "Unrestricted", + "3.0" => "Bypass", + "3.6" => "Bypass", + "4.0" => "Bypass", + "5.0" => "Bypass" }.each do |version_policy| + let(:powershell_version) { version_policy[0].to_f } + context "when running PowerShell version #{version_policy[0]}" do let(:powershell_version) { version_policy[0].to_f } - context "when running PowerShell version #{version_policy[0]}" do - let(:powershell_version) { version_policy[0].to_f } - it "sets default -ExecutionPolicy flag to '#{version_policy[1]}'" do - expect(execution_policy_flag.downcase).to eq(version_policy[1].downcase) - end - it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do - set_user_defined_flag - expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase) - end + it "sets default -ExecutionPolicy flag to '#{version_policy[1]}'" do + expect(execution_policy_flag.downcase).to eq(version_policy[1].downcase) + end + it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do + set_user_defined_flag + expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase) end end - end + end end end |