diff --git a/app/fetchers/service_broker_list_fetcher.rb b/app/fetchers/service_broker_list_fetcher.rb index fc6cd6c7cde..0403f366c79 100644 --- a/app/fetchers/service_broker_list_fetcher.rb +++ b/app/fetchers/service_broker_list_fetcher.rb @@ -5,7 +5,7 @@ module VCAP::CloudController class ServiceBrokerListFetcher < BaseListFetcher class << self def fetch(message:, permitted_space_guids: nil, eager_loaded_associations: []) - dataset = ServiceBroker.dataset.eager(eager_loaded_associations) + dataset = ServiceBroker.dataset.eager(eager_loaded_associations).eager(:space) dataset = dataset.join(:spaces, id: Sequel[:service_brokers][:space_id]) if permitted_space_guids || message.requested?(:space_guids) diff --git a/spec/unit/fetchers/service_broker_list_fetcher_spec.rb b/spec/unit/fetchers/service_broker_list_fetcher_spec.rb index d5a34a08e2e..b567aeb3e36 100644 --- a/spec/unit/fetchers/service_broker_list_fetcher_spec.rb +++ b/spec/unit/fetchers/service_broker_list_fetcher_spec.rb @@ -45,6 +45,13 @@ module VCAP::CloudController expect(dataset.all.first.associations.key?(:labels)).to be true expect(dataset.all.first.associations.key?(:annotations)).to be false end + + it 'sets space to nil for global brokers and to the space object for space-scoped brokers' do + brokers = fetcher.fetch(message:).all.index_by(&:name) + + expect(brokers[broker.name].associations[:space]).to be_nil + expect(brokers[space_scoped_broker_1.name].associations[:space]).to eq(space_1) + end end context 'when filtering by space GUIDs' do