Merge pull request #514 from psoloway/readme
[puppet-modules/puppetlabs-apt.git] / spec / defines / conf_spec.rb
1 require 'spec_helper'
2 describe 'apt::conf', :type => :define do
3   let :pre_condition do
4     'class { "apt": }'
5   end
6   let(:facts) { { :lsbdistid => 'Debian', :osfamily => 'Debian', :lsbdistcodename => 'wheezy', :puppetversion   => '3.5.0', } }
7   let :title do
8     'norecommends'
9   end
10
11   describe "when creating an apt preference" do
12     let :params do
13       {
14         :priority => '00',
15         :content  => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n"
16       }
17     end
18
19     let :filename do
20       "/etc/apt/apt.conf.d/00norecommends"
21     end
22
23     it { is_expected.to contain_file(filename).with({
24           'ensure'    => 'present',
25           'content'   => /Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;/,
26           'owner'     => 'root',
27           'group'     => 'root',
28           'mode'      => '0644',
29         })
30       }
31   end
32
33   describe "when creating a preference without content" do
34     let :params do
35       {
36         :priority => '00',
37       }
38     end
39
40     it 'fails' do
41       expect { subject.call } .to raise_error(/pass in content/)
42     end
43   end
44
45   describe "when removing an apt preference" do
46     let :params do
47       {
48         :ensure   => 'absent',
49         :priority => '00',
50       }
51     end
52
53     let :filename do
54       "/etc/apt/apt.conf.d/00norecommends"
55     end
56
57     it { is_expected.to contain_file(filename).with({
58         'ensure'    => 'absent',
59         'owner'     => 'root',
60         'group'     => 'root',
61         'mode'      => '0644',
62       })
63     }
64   end
65 end