Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / functions / assert_private_spec.rb
1 require 'spec_helper'
2
3 describe 'assert_private' do
4   context 'when called from inside module' do
5     it 'does not fail' do
6       expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
7       expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('foo')
8
9       is_expected.to run.with_params
10     end
11   end
12
13   context 'when called from private class' do
14     it 'fails with a class error message' do
15       expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
16       expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
17       expect(scope.source).to receive(:name).and_return('foo::baz')
18       expect(scope.source).to receive(:type).and_return('hostclass')
19
20       is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Class foo::baz is private})
21     end
22
23     it 'fails with an explicit failure message' do
24       is_expected.to run.with_params('failure message!').and_raise_error(Puppet::ParseError, %r{failure message!})
25     end
26   end
27
28   context 'when called from private definition' do
29     it 'fails with a class error message' do
30       expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
31       expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
32       expect(scope.source).to receive(:name).and_return('foo::baz')
33       expect(scope.source).to receive(:type).and_return('definition')
34
35       is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Definition foo::baz is private})
36     end
37   end
38 end