31 lines
1007 B
Ruby
31 lines
1007 B
Ruby
require 'spec_helper'
|
|
|
|
describe Users::OrderSerializer do
|
|
let(:adapter){ ActiveModel::Serializer.config.adapter }
|
|
it "does not perform extra queries" do
|
|
l = create :list
|
|
o1 = create :order, list: l
|
|
create :product_order, order: o1
|
|
create :product_order, order: o1
|
|
o2 = create :order, list: l
|
|
create :product_order, order: o2
|
|
create :product_order, order: o2
|
|
list = List.find(l.id)
|
|
orders = list.orders.include_relation(:product_orders)
|
|
#expect{ object_as_json orders }.not_to exceed_query_limit 0
|
|
expect{ object_as_json orders }.not_to perform_any_queries
|
|
result = object_as_json(orders)
|
|
binding.pry
|
|
#result[:included].size.should eq 4
|
|
end
|
|
|
|
def object_as_json(obj)
|
|
serializer = if obj.is_a?(Array)
|
|
ActiveModel::Serializer::ArraySerializer.new(obj, serializer: described_class, add_included: true)
|
|
else
|
|
serializer = described_class.new(obj)
|
|
end
|
|
adapter.new(serializer, include: %w[product_orders]).as_json
|
|
end
|
|
end
|