diff --git a/app/serializers/api/current_order_serializer.rb b/app/serializers/api/current_order_serializer.rb index 77927614f8..2ec8d4e541 100644 --- a/app/serializers/api/current_order_serializer.rb +++ b/app/serializers/api/current_order_serializer.rb @@ -12,6 +12,10 @@ class Api::CurrentOrderSerializer < ActiveModel::Serializer object.payments.first.andand.payment_method_id end + def shipping_method_id + object.shipping_method.andand.id + end + def display_total object.display_total.money.to_f end diff --git a/spec/serializers/current_order_serializer.rb b/spec/serializers/current_order_serializer.rb deleted file mode 100644 index a3513b6413..0000000000 --- a/spec/serializers/current_order_serializer.rb +++ /dev/null @@ -1,19 +0,0 @@ -describe Api::CurrentOrderSerializer do - let(:distributor) { create(:distributor_enterprise) } - let(:oc) { create(:simple_order_cycle) } - let(:li) { create(:line_item, variant: create(:variant)) } - let(:order) { create(:order, line_items: [li]) } - let(:serializer) { Api::CurrentOrderSerializer.new(order, current_distributor: distributor, current_order_cycle: oc ).to_json } - - it "serializers the current order" do - serializer.should match order.id.to_s - end - - it "includes line items" do - serializer.should match li.id.to_s - end - - it "includes variants of line items" do - serializer.should match li.variant.name - end -end diff --git a/spec/serializers/current_order_serializer_spec.rb b/spec/serializers/current_order_serializer_spec.rb new file mode 100644 index 0000000000..785886df3c --- /dev/null +++ b/spec/serializers/current_order_serializer_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe Api::CurrentOrderSerializer do + let(:distributor) { create(:distributor_enterprise) } + let(:order_cycle) { create(:simple_order_cycle) } + let(:line_item) { create(:line_item, variant: create(:variant)) } + let(:order) { create(:order, line_items: [line_item]) } + let(:serializer) { Api::CurrentOrderSerializer.new(order, current_distributor: distributor, current_order_cycle: order_cycle).to_json } + + it "serializers the current order" do + expect(serializer).to match order.id.to_s + end + + it "includes line items" do + expect(serializer).to match line_item.id.to_s + end + + it "includes variants of line items" do + expect(serializer).to match line_item.variant.name + end + + context 'when there is no shipment' do + it 'includes the shipping method of the order' do + expect(serializer).to match('\"shipping_method_id\":null') + end + end + + context 'when there is a shipment' do + before { create(:shipment, order: order) } + + it 'includes the shipping method of the order' do + expect(serializer).to match("\"shipping_method_id\":#{order.shipping_method.id}") + end + end +end