From a7644f8e8bae08a8a965afc136df0f05bb74a5c1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Mon, 6 Mar 2023 17:07:25 +0100 Subject: [PATCH] Update spec: can edit OC even if variant in subscription has been deleted --- .../admin/order_cycles_controller_spec.rb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spec/controllers/admin/order_cycles_controller_spec.rb b/spec/controllers/admin/order_cycles_controller_spec.rb index cacb8e1d4a..88730b02d6 100644 --- a/spec/controllers/admin/order_cycles_controller_spec.rb +++ b/spec/controllers/admin/order_cycles_controller_spec.rb @@ -212,6 +212,34 @@ module Admin before { controller_login_as_enterprise_user([coordinator]) } let(:params) { { format: :json, id: order_cycle.id, order_cycle: {} } } + context "when order cycle has subscriptions" do + let(:coordinator) { order_cycle.coordinator } + let(:producer) { create(:supplier_enterprise) } + let!(:schedule) { create(:schedule, order_cycles: [order_cycle]) } + let!(:p) { create(:product) } + let!(:v) { p.variants.first } + let!(:incoming_exchange) { + create(:exchange, order_cycle: order_cycle, sender: producer, receiver: coordinator, + incoming: true, variants: [v]) + } + let!(:outgoing_exchange) { + create(:exchange, order_cycle: order_cycle, sender: coordinator, receiver: coordinator, + incoming: false, variants: [v]) + } + let!(:subscription) { create(:subscription, shop: coordinator, schedule: schedule) } + let!(:subscription_line_item) { create(:subscription_line_item, subscription: subscription, variant: v) } + + before do + allow(form_mock).to receive(:save) { true } + v.destroy + end + + it "can update order cycle even if the variant has been deleted" do + spree_put :update, { format: :json, id: order_cycle.id, order_cycle: {} } + expect(response.status).to eq 200 + end + end + context "when updating succeeds" do before { allow(form_mock).to receive(:save) { true } }