3 describe 'assert_private' do
4 context 'when called from inside module' 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')
9 is_expected.to run.with_params
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')
20 is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Class foo::baz is private})
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!})
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')
35 is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Definition foo::baz is private})