2 require 'facter/util/puppet_settings'
4 describe Facter::Util::PuppetSettings do
5 describe '#with_puppet' do
6 context 'without Puppet loaded' do
8 allow(Module).to receive(:const_get).with('Puppet').and_raise(NameError)
12 expect(subject.with_puppet { Puppet[:vardir] }).to be_nil
14 it 'does not yield to the block' do
15 expect(Puppet).to receive(:[]).never
16 expect(subject.with_puppet { Puppet[:vardir] }).to be_nil
19 context 'with Puppet loaded' do
22 let(:vardir) { '/var/lib/puppet' }
25 allow(Puppet).to receive(:[]).with(:vardir).and_return(vardir)
28 it 'yields to the block' do
29 subject.with_puppet { Puppet[:vardir] }
31 it 'returns the nodes vardir' do
32 expect(subject.with_puppet { Puppet[:vardir] }).to eq vardir