|
13 | 13 | end
|
14 | 14 |
|
15 | 15 | context 'contains install.pp' do
|
16 |
| - ['c:\local_folder', 'C:\\ProgramData\\chocolatey'].each do |param_value| |
17 |
| - context "choco_install_location => #{param_value}" do |
18 |
| - let(:params) { { choco_install_location: param_value } } |
| 16 | + let(:exec_environment) { catalogue.resource('exec', 'install_chocolatey_official').send(:parameters)[:environment] } |
19 | 17 |
|
20 |
| - it { is_expected.to contain_exec('install_chocolatey_official').with_creates("#{param_value}\\bin\\choco.exe") } |
| 18 | + ['c:\local_folder', 'C:\\ProgramData\\chocolatey', 'C:\Program Files\chocolatey'].each do |choco_install_path| |
| 19 | + context "choco_install_location => #{choco_install_path}" do |
| 20 | + let(:params) { { choco_install_location: choco_install_path } } |
| 21 | + |
| 22 | + it { is_expected.to contain_exec('install_chocolatey_official').with_creates("#{choco_install_path}\\bin\\choco.exe") } |
| 23 | + it { expect(exec_environment).to include("ChocolateyInstall=#{choco_install_path}") } |
| 24 | + it { is_expected.to contain_registry_value('ChocolateyInstall environment value').with_data(choco_install_path) } |
21 | 25 | end
|
22 | 26 | end
|
23 | 27 |
|
|
32 | 36 | context 'use_7zip => false' do
|
33 | 37 | let(:params) { { use_7zip: false } }
|
34 | 38 |
|
35 |
| - it { |
36 |
| - expect(subject).not_to contain_file('C:\Temp\7za.exe') |
37 |
| - } |
| 39 | + it { expect(exec_environment).to include('chocolateyUseWindowsCompression=true') } |
38 | 40 | end
|
39 | 41 |
|
40 | 42 | context 'use_7zip => true' do
|
| 43 | + let(:params) { { use_7zip: true } } |
| 44 | + |
41 | 45 | context 'seven_zip_download_url default' do
|
42 |
| - let(:params) { { use_7zip: true } } |
| 46 | + it { expect(exec_environment).to include('chocolateyUseWindowsCompression=false') } |
| 47 | + end |
43 | 48 |
|
44 |
| - it { is_expected.to contain_file('C:\Temp\7za.exe').with_source('https://chocolatey.org/7za.exe') } |
| 49 | + ['https://packages.organization.net/7za.exe'].each do |seven_zip_url| |
| 50 | + context "seven_zip_download_url => '#{seven_zip_url}'" do |
| 51 | + let(:params) do |
| 52 | + super().merge({ seven_zip_download_url: seven_zip_url }) |
| 53 | + end |
| 54 | + |
| 55 | + it { is_expected.to contain_exec('install_chocolatey_official').with_command(%r{.*Request-File -Url #{seven_zip_url}.*}) } |
| 56 | + end |
45 | 57 | end
|
| 58 | + end |
| 59 | + |
| 60 | + ['http://proxy.megacorp.com:3128'].each do |proxy_url| |
| 61 | + context "install_proxy => '#{proxy_url}'" do |
| 62 | + let(:params) { { install_proxy: proxy_url } } |
| 63 | + |
| 64 | + it { expect(exec_environment).to include("chocolateyProxyLocation=#{proxy_url}") } |
| 65 | + |
| 66 | + context 'install_proxy_user => \'Bob\'' do |
| 67 | + let(:params) do |
| 68 | + super().merge({ install_proxy_user: 'Bob' }) |
| 69 | + end |
| 70 | + |
| 71 | + it { expect(exec_environment).to include('chocolateyProxyUser=Bob') } |
| 72 | + end |
46 | 73 |
|
47 |
| - context "seven_zip_download_url => 'https://packages.organization.net/7za.exe'" do |
48 |
| - let(:params) do |
49 |
| - { |
50 |
| - use_7zip: true, |
51 |
| - seven_zip_download_url: 'https://packages.organization.net/7za.exe' |
52 |
| - } |
| 74 | + context 'install_proxy_password => \'SomeP@$$\'' do |
| 75 | + let(:params) do |
| 76 | + super().merge({ install_proxy_password: sensitive('SomeP@$$') }) |
| 77 | + end |
| 78 | + |
| 79 | + it { expect(exec_environment).to include('chocolateyProxyPassword=SomeP@$$') } |
| 80 | + end |
| 81 | + |
| 82 | + context 'install_proxy_ignore => true' do |
| 83 | + let(:params) do |
| 84 | + super().merge({ install_ignore_proxy: true }) |
| 85 | + end |
| 86 | + |
| 87 | + it { expect(exec_environment).to include('chocolateyIgnoreProxy=true') } |
53 | 88 | end
|
| 89 | + end |
| 90 | + end |
| 91 | + |
| 92 | + ['https://internalurl/to/chocolatey.nupkg'].each do |param_value| |
| 93 | + context "download_url => '#{param_value}'" do |
| 94 | + let(:params) { { chocolatey_download_url: param_value } } |
| 95 | + |
| 96 | + it { expect(exec_environment).to include("chocolateyDownloadUrl=#{param_value}") } |
| 97 | + end |
| 98 | + end |
| 99 | + |
| 100 | + ['C:/temp'].each do |param_value| |
| 101 | + context "install_tempdir => '#{param_value}'" do |
| 102 | + let(:params) { { install_tempdir: param_value } } |
54 | 103 |
|
55 |
| - it { is_expected.to contain_file('C:\Temp\7za.exe').with_source('https://packages.organization.net/7za.exe') } |
| 104 | + it { expect(exec_environment).to include("TEMP=#{param_value}") } |
56 | 105 | end
|
57 | 106 | end
|
58 | 107 | end
|
|
0 commit comments