diff --git a/lib/puppet/resource_api/transport/wrapper.rb b/lib/puppet/resource_api/transport/wrapper.rb index caabc5af..81febbcb 100644 --- a/lib/puppet/resource_api/transport/wrapper.rb +++ b/lib/puppet/resource_api/transport/wrapper.rb @@ -17,11 +17,13 @@ def initialize(name, url_or_config) end @transport = Puppet::ResourceApi::Transport.connect(name, config) + @schema = Puppet::ResourceApi::Transport.list[name] end def facts + context = Puppet::ResourceApi::PuppetContext.new(@schema) # @transport.facts + custom_facts # look into custom facts work by TP - @transport.facts(nil) + @transport.facts(context) end def respond_to_missing?(name, _include_private) diff --git a/spec/puppet/resource_api/transport/wrapper_spec.rb b/spec/puppet/resource_api/transport/wrapper_spec.rb index b5757a7a..b6652424 100644 --- a/spec/puppet/resource_api/transport/wrapper_spec.rb +++ b/spec/puppet/resource_api/transport/wrapper_spec.rb @@ -37,12 +37,15 @@ describe '#facts' do context 'when called' do let(:instance) { described_class.new('wibble', {}) } + let(:context) { instance_double(Puppet::ResourceApi::PuppetContext, 'context') } let(:facts) { { 'foo' => 'bar' } } let(:transport) { instance_double(Puppet::Transport::TestDevice, 'transport') } it 'will return the facts provided by the transport' do allow(Puppet::ResourceApi::Transport).to receive(:connect).and_return(transport) - allow(transport).to receive(:facts).with(nil).and_return(facts) + allow(Puppet::ResourceApi::Transport).to receive(:list).and_return(schema: :dummy) + allow(Puppet::ResourceApi::PuppetContext).to receive(:new).and_return(context) + allow(transport).to receive(:facts).with(context).and_return(facts) expect(instance.facts).to eq(facts) end