-
Notifications
You must be signed in to change notification settings - Fork 575
Expand file tree
/
Copy pathassert_private_spec.rb
More file actions
40 lines (32 loc) · 1.58 KB
/
assert_private_spec.rb
File metadata and controls
40 lines (32 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true
require 'spec_helper'
describe 'assert_private' do
context 'when called from inside module' do
it 'does not fail' do
expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('foo')
expect(subject).to run.with_params
end
end
context 'when called from private class' do
it 'fails with a class error message' do
expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
expect(scope.source).to receive(:name).and_return('foo::baz')
expect(scope.source).to receive(:type).and_return('hostclass')
expect(subject).to run.with_params.and_raise_error(Puppet::ParseError, %r{Class foo::baz is private})
end
it 'fails with an explicit failure message' do
expect(subject).to run.with_params('failure message!').and_raise_error(Puppet::ParseError, %r{failure message!})
end
end
context 'when called from private definition' do
it 'fails with a class error message' do
expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
expect(scope.source).to receive(:name).and_return('foo::baz')
expect(scope.source).to receive(:type).and_return('definition')
expect(subject).to run.with_params.and_raise_error(Puppet::ParseError, %r{Definition foo::baz is private})
end
end
end