summaryrefslogtreecommitdiff
path: root/spec/unit/provider/powershell_script_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/provider/powershell_script_spec.rb')
-rw-r--r--spec/unit/provider/powershell_script_spec.rb78
1 files changed, 52 insertions, 26 deletions
diff --git a/spec/unit/provider/powershell_script_spec.rb b/spec/unit/provider/powershell_script_spec.rb
index 855c18af9b..121973763d 100644
--- a/spec/unit/provider/powershell_script_spec.rb
+++ b/spec/unit/provider/powershell_script_spec.rb
@@ -38,41 +38,67 @@ describe Chef::Provider::PowershellScript, "action_run" do
}
context 'when setting interpreter flags' do
- it "should set the -File flag as the last flag" do
- expect(provider.flags.split(' ').pop).to eq("-File")
+ 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(:os_info).and_return(os_info_double)
+ allow(os_info_double).to receive(: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
end
- let(:execution_policy_flag) do
- execution_policy_index = 0
- provider_flags = provider.flags.split(' ')
- execution_policy_specified = false
+ 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(:os_info).and_return(os_info_double)
+ allow(os_info_double).to receive(:system_directory).and_return("C:\\Windows\\system32")
+ end
- provider_flags.find do | value |
- execution_policy_index += 1
- execution_policy_specified = value.downcase == '-ExecutionPolicy'.downcase
+ 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
- execution_policy = execution_policy_specified ? provider_flags[execution_policy_index] : nil
- end
+ let(:execution_policy_flag) do
+ execution_policy_index = 0
+ provider_flags = provider.flags.split(' ')
+ execution_policy_specified = false
- context 'when running with an unspecified PowerShell version' do
- let(:powershell_version) { nil }
- it "should set the -ExecutionPolicy flag to 'Unrestricted' by default" do
- expect(execution_policy_flag.downcase).to eq('unrestricted'.downcase)
+ provider_flags.find do | value |
+ execution_policy_index += 1
+ execution_policy_specified = value.downcase == '-ExecutionPolicy'.downcase
+ end
+
+ execution_policy = execution_policy_specified ? provider_flags[execution_policy_index] : nil
+ end
+
+ context 'when running with an unspecified PowerShell version' do
+ let(:powershell_version) { nil }
+ it "sets the -ExecutionPolicy flag to 'Unrestricted' by default" do
+ expect(execution_policy_flag.downcase).to eq('unrestricted'.downcase)
+ end
end
- end
- { '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
+ { '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 }
- it "should set the -ExecutionPolicy flag to '#{version_policy[1]}'" do
- expect(execution_policy_flag.downcase).to eq(version_policy[1].downcase)
+ context "when running PowerShell version #{version_policy[0]}" do
+ let(:powershell_version) { version_policy[0].to_f }
+ it "sets the -ExecutionPolicy flag to '#{version_policy[1]}'" do
+ expect(execution_policy_flag.downcase).to eq(version_policy[1].downcase)
+ end
end
end
end