Fetch Property instead of ProducerProps from query

By not having to treat producer properties differently we can filter and
fetch all properties from DB without having to process it with Ruby and
with a single query.
This commit is contained in:
Pau Perez
2018-12-18 18:16:49 +01:00
parent 92e2ed78d1
commit d4635bd7cb
2 changed files with 38 additions and 5 deletions

View File

@@ -33,10 +33,10 @@ describe Api::CachedEnterpriseSerializer do
let(:property) { create(:property, presentation: 'One') }
let(:duplicate_property) { create(:property, presentation: 'One') }
let(:producer) { create(:supplier_enterprise, properties: [duplicate_property]) }
before do
product = create(:product, properties: [property])
producer = create(:supplier_enterprise, properties: [duplicate_property])
producer.supplied_products << product
create(
@@ -57,6 +57,14 @@ describe Api::CachedEnterpriseSerializer do
properties = cached_enterprise_serializer.distributed_properties
expect(properties).to eq([property])
end
it 'fetches producer properties' do
distributed_producer_properties = cached_enterprise_serializer
.distributed_producer_properties
expect(distributed_producer_properties)
.to eq(producer.producer_properties.map(&:property))
end
end
context 'when the enterprise is an active distributor' do
@@ -68,6 +76,14 @@ describe Api::CachedEnterpriseSerializer do
properties = cached_enterprise_serializer.distributed_properties
expect(properties).to eq([property])
end
it 'fetches producer properties' do
distributed_producer_properties = cached_enterprise_serializer
.distributed_producer_properties
expect(distributed_producer_properties)
.to eq(producer.producer_properties.map(&:property))
end
end
end
end