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