From 57f1742f2422e4e9a1ee7910e4c0fe1879fe800a Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Wed, 17 Jul 2019 10:26:14 +0100 Subject: [PATCH] Save subscription form on subs unpause so that proxy orders and orders are synced --- app/controllers/admin/subscriptions_controller.rb | 10 ++++++++-- .../controllers/admin/subscriptions_controller_spec.rb | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/subscriptions_controller.rb b/app/controllers/admin/subscriptions_controller.rb index 1233628dd6..a5d4f2aa54 100644 --- a/app/controllers/admin/subscriptions_controller.rb +++ b/app/controllers/admin/subscriptions_controller.rb @@ -1,4 +1,5 @@ require 'open_food_network/permissions' +require 'open_food_network/proxy_order_syncer' module Admin class SubscriptionsController < ResourceController @@ -67,8 +68,13 @@ module Admin end def unpause - @subscription.update_attributes(paused_at: nil) - render_as_json @subscription + params[:subscription][:paused_at] = nil + form = SubscriptionForm.new(@subscription, params[:subscription]) + if form.save + render_as_json @subscription, order_update_issues: form.order_update_issues + else + render json: { errors: form.json_errors }, status: :unprocessable_entity + end end private diff --git a/spec/controllers/admin/subscriptions_controller_spec.rb b/spec/controllers/admin/subscriptions_controller_spec.rb index cf4af7c921..d3ea76dcd2 100644 --- a/spec/controllers/admin/subscriptions_controller_spec.rb +++ b/spec/controllers/admin/subscriptions_controller_spec.rb @@ -664,6 +664,15 @@ describe Admin::SubscriptionsController, type: :controller do expect(json_response['id']).to eq subscription.id expect(subscription.reload.paused_at).to be nil end + + context "when there is an open OC and no associated orders exist yet for it (OC was opened when the subscription was paused)" do + it "creates an associated order" do + spree_put :unpause, params + + expect(subscription.reload.paused_at).to be nil + expect(subscription.proxy_orders.size).to be 1 + end + end end end end