spec/unit/pwsh/windows_powershell_spec.rb in ruby-pwsh-0.10.3 vs spec/unit/pwsh/windows_powershell_spec.rb in ruby-pwsh-0.11.0.rc.1

- old
+ new

@@ -4,11 +4,11 @@ RSpec.describe Pwsh::WindowsPowerShell do describe '.version' do context 'on non-Windows platforms', unless: Pwsh::Util.on_windows? do it 'is not defined' do - expect(defined?(described_class.version)).to eq(nil) + expect(defined?(described_class.version)).to be_nil end end context 'On Windows', if: Pwsh::Util.on_windows? do context 'when Windows PowerShell version is greater than three' do @@ -16,19 +16,19 @@ allow_any_instance_of(Win32::Registry).to receive(:[]).with('PowerShellVersion').and_return('5.0.10514.6') expect(described_class.version).to eq('5.0.10514.6') end it 'calls the Windows PowerShell three registry path' do - reg_key = instance_double('bob') + reg_key = instance_double(bob) allow(reg_key).to receive(:[]).with('PowerShellVersion').and_return('5.0.10514.6') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_yield(reg_key) described_class.version end it 'does not call Windows PowerShell one registry path' do - reg_key = instance_double('bob') + reg_key = instance_double(bob) allow(reg_key).to receive(:[]).with('PowerShellVersion').and_return('5.0.10514.6') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_yield(reg_key) expect_any_instance_of(Win32::Registry).not_to receive(:open).with('SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine', Win32::Registry::KEY_READ | 0x100) described_class.version @@ -41,75 +41,80 @@ expect(described_class.version).to eq('2.0') end it 'calls the Windows PowerShell one registry path' do - reg_key = instance_double('bob') + reg_key = instance_double(bob) allow(reg_key).to receive(:[]).with('PowerShellVersion').and_return('2.0') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_yield(reg_key) allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_raise(Win32::Registry::Error.new(2), 'nope') expect(described_class.version).to eq('2.0') end end - context 'when Windows PowerShell is not installed' do + context 'when Windows PowerShell is not installed' do it 'returns nil and not throw' do allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_raise(Win32::Registry::Error.new(2), 'nope') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', Win32::Registry::KEY_READ | 0x100).and_raise(Win32::Registry::Error.new(2), 'nope') - expect(described_class.version).to eq(nil) + expect(described_class.version).to be_nil end end end end describe '.compatible_version?' do context 'on non-Windows platforms', unless: Pwsh::Util.on_windows? do it 'returns false' do - expect(described_class.compatible_version?).to eq(false) + expect(described_class.compatible_version?).to be(false) end end context 'On Windows', if: Pwsh::Util.on_windows? do context 'when the Windows PowerShell major version is nil' do it 'returns false' do expect(described_class).to receive(:version).and_return(nil) - expect(described_class.compatible_version?).to eq(false) + expect(described_class.compatible_version?).to be(false) end end + context 'when the Windows PowerShell major version is less than two' do it 'returns false' do expect(described_class).to receive(:version).and_return('1.0') - expect(described_class.compatible_version?).to eq(false) + expect(described_class.compatible_version?).to be(false) end end + context 'when the Windows PowerShell major version is two' do it 'returns true if .NET 3.5 is installed' do expect(described_class).to receive(:version).and_return('2.0') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', Win32::Registry::KEY_READ | 0x100).and_yield - expect(described_class.compatible_version?).to eq(true) + expect(described_class.compatible_version?).to be(true) end + it 'returns false if .NET 3.5 is not installed' do expect(described_class).to receive(:version).and_return('2.0') allow_any_instance_of(Win32::Registry).to receive(:open).with('SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', Win32::Registry::KEY_READ | 0x100).and_raise(Win32::Registry::Error, 1) - expect(described_class.compatible_version?).to eq(false) + expect(described_class.compatible_version?).to be(false) end end + context 'when the Windows PowerShell major version is three' do it 'returns true' do expect(described_class).to receive(:version).and_return('3.0') - expect(described_class.compatible_version?).to eq(true) + expect(described_class.compatible_version?).to be(true) end end + context 'when the Windows PowerShell major version is greater than three' do it 'returns true' do expect(described_class).to receive(:version).and_return('4.0') - expect(described_class.compatible_version?).to eq(true) + expect(described_class.compatible_version?).to be(true) end end end end end