mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-30 21:27:17 +00:00
Test #supplied_properties helper methods
This commit is contained in:
@@ -74,11 +74,16 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
ids_to_objs options[:data].supplied_taxons[object.id]
|
||||
end
|
||||
|
||||
def supplied_properties
|
||||
# This results in 3 queries per enterprise
|
||||
product_properties = Spree::Property.applied_by(object)
|
||||
producer_properties = object.properties
|
||||
def product_properties
|
||||
Spree::Property.applied_by(object)
|
||||
end
|
||||
|
||||
def producer_properties
|
||||
enterprise.properties
|
||||
end
|
||||
|
||||
# This results in 3 queries per enterprise
|
||||
def supplied_properties
|
||||
OpenFoodNetwork::PropertyMerge.merge product_properties, producer_properties
|
||||
end
|
||||
|
||||
@@ -140,4 +145,10 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
}
|
||||
icon_fonts[object.category]
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def enterprise
|
||||
object
|
||||
end
|
||||
end
|
||||
|
||||
29
spec/serializers/api/cached_enterprise_serializer_spec.rb
Normal file
29
spec/serializers/api/cached_enterprise_serializer_spec.rb
Normal file
@@ -0,0 +1,29 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Api::CachedEnterpriseSerializer do
|
||||
let(:cached_enterprise_serializer) { described_class.new(enterprise) }
|
||||
let(:enterprise) { create(:enterprise) }
|
||||
|
||||
describe '#product_properties' do
|
||||
let(:property) { create(:property) }
|
||||
|
||||
before do
|
||||
product = create(:product, properties: [property])
|
||||
enterprise.supplied_products << product
|
||||
end
|
||||
|
||||
it 'returns the properties of the products supplied by the enterprise' do
|
||||
expect(cached_enterprise_serializer.product_properties).to eq([property])
|
||||
end
|
||||
end
|
||||
|
||||
describe '#producer_properties' do
|
||||
let(:property) { create(:property) }
|
||||
|
||||
before { enterprise.properties << property }
|
||||
|
||||
it 'returns the properties of the enterprise' do
|
||||
expect(cached_enterprise_serializer.producer_properties).to eq([property])
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user