From ff634bd8703cf89767b3b00ccfdbbfd99188a305 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Thu, 22 Aug 2019 21:30:13 +0800 Subject: [PATCH 1/2] Test ship method when advancing subscription order --- spec/jobs/subscription_placement_job_spec.rb | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/spec/jobs/subscription_placement_job_spec.rb b/spec/jobs/subscription_placement_job_spec.rb index f211385964..0e59caccf6 100644 --- a/spec/jobs/subscription_placement_job_spec.rb +++ b/spec/jobs/subscription_placement_job_spec.rb @@ -118,8 +118,12 @@ describe SubscriptionPlacementJob do end describe "processing a subscription order" do - let(:subscription) { create(:subscription, with_items: true) } - let(:shop) { subscription.shop } + let!(:shipping_method_created_earlier) { create(:shipping_method, distributors: [shop]) } + let!(:shipping_method) { create(:shipping_method, distributors: [shop]) } + let!(:shipping_method_created_later) { create(:shipping_method, distributors: [shop]) } + + let(:shop) { create(:enterprise) } + let(:subscription) { create(:subscription, shop: shop, with_items: true) } let(:proxy_order) { create(:proxy_order, subscription: subscription) } let(:oc) { proxy_order.order_cycle } let(:ex) { oc.exchanges.outgoing.find_by_sender_id_and_receiver_id(shop.id, shop.id) } @@ -146,6 +150,19 @@ describe SubscriptionPlacementJob do end context "when the order is not already complete" do + describe "selection of shipping method" do + let!(:subscription) do + create(:subscription, shop: shop, shipping_method: shipping_method, with_items: true) + end + + pending "uses the same shipping method after advancing the order" do + job.send(:process, order) + expect(order.state).to eq "complete" + order.reload + expect(order.shipping_method).to eq(shipping_method) + end + end + context "when no stock items are available after capping stock" do before do allow(job).to receive(:unavailable_stock_lines_for) { order.line_items } From 5b68b2f7073846e1e9510cabae335841cfc9458d Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Thu, 22 Aug 2019 21:32:37 +0800 Subject: [PATCH 2/2] Fix ship method when advancing subscription order --- app/jobs/subscription_placement_job.rb | 2 +- spec/jobs/subscription_placement_job_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/subscription_placement_job.rb b/app/jobs/subscription_placement_job.rb index 51056da676..26c67997ba 100644 --- a/app/jobs/subscription_placement_job.rb +++ b/app/jobs/subscription_placement_job.rb @@ -59,7 +59,7 @@ class SubscriptionPlacementJob end def move_to_completion(order) - until order.completed? do order.next! end + AdvanceOrderService.new(order).call! end def unavailable_stock_lines_for(order) diff --git a/spec/jobs/subscription_placement_job_spec.rb b/spec/jobs/subscription_placement_job_spec.rb index 0e59caccf6..bd008682e3 100644 --- a/spec/jobs/subscription_placement_job_spec.rb +++ b/spec/jobs/subscription_placement_job_spec.rb @@ -155,7 +155,7 @@ describe SubscriptionPlacementJob do create(:subscription, shop: shop, shipping_method: shipping_method, with_items: true) end - pending "uses the same shipping method after advancing the order" do + it "uses the same shipping method after advancing the order" do job.send(:process, order) expect(order.state).to eq "complete" order.reload