Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / spec / acceptance / fragments_are_always_replaced_spec.rb
1 require 'spec_helper_acceptance'
2
3 describe 'concat::fragment replace' do
4   before(:all) do
5     @basedir = setup_test_directory
6   end
7
8   describe 'when run should create fragment files' do
9     let(:pp1) do
10       <<-MANIFEST
11       concat { '#{@basedir}/foo': }
12       concat::fragment { '1':
13         target  => '#{@basedir}/foo',
14         content => 'caller has replace unset run 1',
15       }
16     MANIFEST
17     end
18     let(:pp2) do
19       <<-MANIFEST
20       concat { '#{@basedir}/foo': }
21       concat::fragment { '1':
22         target  => '#{@basedir}/foo',
23         content => 'caller has replace unset run 2',
24       }
25     MANIFEST
26     end
27
28     it 'applies the manifest twice with no stderr' do
29       idempotent_apply(pp1)
30       idempotent_apply(pp2)
31       expect(file("#{@basedir}/foo")).to be_file
32       expect(file("#{@basedir}/foo").content).not_to match 'caller has replace unset run 1'
33       expect(file("#{@basedir}/foo").content).to match 'caller has replace unset run 2'
34     end
35   end
36   # should create fragment files
37
38   describe 'when run should replace its own fragment files when caller has File { replace=>true } set' do
39     let(:pp1) do
40       <<-MANIFEST
41       File { replace=>true }
42       concat { '#{@basedir}/foo': }
43       concat::fragment { '1':
44         target  => '#{@basedir}/foo',
45         content => 'caller has replace true set run 1',
46       }
47     MANIFEST
48     end
49     let(:pp2) do
50       <<-MANIFEST
51       File { replace=>true }
52       concat { '#{@basedir}/foo': }
53       concat::fragment { '1':
54         target  => '#{@basedir}/foo',
55         content => 'caller has replace true set run 2',
56       }
57     MANIFEST
58     end
59
60     it 'applies the manifest twice with no stderr' do
61       idempotent_apply(pp1)
62       idempotent_apply(pp2)
63       expect(file("#{@basedir}/foo")).to be_file
64       expect(file("#{@basedir}/foo").content).not_to match 'caller has replace true set run 1'
65       expect(file("#{@basedir}/foo").content).to match 'caller has replace true set run 2'
66     end
67   end
68   # should replace its own fragment files when caller has File(replace=>true) set
69
70   describe 'when run should replace its own fragment files even when caller has File { replace=>false } set' do
71     let(:pp1) do
72       <<-MANIFEST
73       File { replace=>false }
74       concat { '#{@basedir}/foo': }
75       concat::fragment { '1':
76         target  => '#{@basedir}/foo',
77         content => 'caller has replace false set run 1',
78       }
79     MANIFEST
80     end
81     let(:pp2) do
82       <<-MANIFEST
83       File { replace=>false }
84       concat { '#{@basedir}/foo': }
85       concat::fragment { '1':
86         target  => '#{@basedir}/foo',
87         content => 'caller has replace false set run 2',
88       }
89     MANIFEST
90     end
91
92     it 'applies the manifest twice with no stderr' do
93       idempotent_apply(pp1)
94       idempotent_apply(pp2)
95       expect(file("#{@basedir}/foo")).to be_file
96       expect(file("#{@basedir}/foo").content).not_to match 'caller has replace false set run 1'
97       expect(file("#{@basedir}/foo").content).to match 'caller has replace false set run 2'
98     end
99   end
100   # should replace its own fragment files even when caller has File(replace=>false) set
101 end