Pluck :id when querying active distributors for serializer data

This commit is contained in:
Matt-Yorkley
2020-03-23 16:23:14 +01:00
parent 5b481c19cc
commit c82c54873c
5 changed files with 8 additions and 7 deletions

View File

@@ -107,7 +107,7 @@ module Api
end
def active
data.active_distributors.andand.include? enterprise
data.active_distributor_ids.andand.include? enterprise.id
end
# Map svg icons.

View File

@@ -9,7 +9,7 @@ module Api
end
def active
options[:data].active_distributors.andand.include? object
options[:data].active_distributor_ids.andand.include? object.id
end
end
end

View File

@@ -1,7 +1,8 @@
module OpenFoodNetwork
class EnterpriseInjectionData
def active_distributors
@active_distributors ||= Enterprise.distributors_with_active_order_cycles.ready_for_checkout
def active_distributor_ids
@active_distributor_ids ||=
Enterprise.distributors_with_active_order_cycles.ready_for_checkout.pluck(:id)
end
def earliest_closing_times

View File

@@ -7,7 +7,7 @@ describe ShopsController, type: :controller do
let!(:distributor) { create(:distributor_enterprise) }
before do
allow(Enterprise).to receive_message_chain(:distributors_with_active_order_cycles, :ready_for_checkout) { [distributor] }
allow(OpenFoodNetwork::EnterpriseInjectionData).to receive(:active_distributor_ids) { [distributor.id] }
end
it 'renders distributed product properties' do

View File

@@ -50,7 +50,7 @@ describe Api::CachedEnterpriseSerializer do
context 'when the enterprise is not an active distributor' do
let(:enterprise_injection_data) do
instance_double(OpenFoodNetwork::EnterpriseInjectionData, active_distributors: [])
instance_double(OpenFoodNetwork::EnterpriseInjectionData, active_distributor_ids: [])
end
it 'does not duplicate properties' do
@@ -69,7 +69,7 @@ describe Api::CachedEnterpriseSerializer do
context 'when the enterprise is an active distributor' do
let(:enterprise_injection_data) do
instance_double(OpenFoodNetwork::EnterpriseInjectionData, active_distributors: [shop])
instance_double(OpenFoodNetwork::EnterpriseInjectionData, active_distributor_ids: [shop.id])
end
it 'does not duplicate properties' do