From d706b3a6c2073218535db1119ac63182cbcea8dc Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 10 Mar 2026 15:20:56 +1100 Subject: [PATCH] Per review, remove customer when no existing customer --- app/services/orders/cart_reset_service.rb | 2 +- spec/controllers/enterprises_controller_spec.rb | 13 +++++++++++++ spec/services/orders/cart_reset_service_spec.rb | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/services/orders/cart_reset_service.rb b/app/services/orders/cart_reset_service.rb index 1221159e2f..b811c84097 100644 --- a/app/services/orders/cart_reset_service.rb +++ b/app/services/orders/cart_reset_service.rb @@ -21,7 +21,7 @@ module Orders def reset_other!(current_user, current_customer) reset_user(current_user) reset_order_cycle(current_customer) - order.customer = current_customer if current_customer.present? + order.customer = current_customer order.save! end diff --git a/spec/controllers/enterprises_controller_spec.rb b/spec/controllers/enterprises_controller_spec.rb index 948c470753..f6049778cf 100644 --- a/spec/controllers/enterprises_controller_spec.rb +++ b/spec/controllers/enterprises_controller_spec.rb @@ -29,6 +29,19 @@ RSpec.describe EnterprisesController do expect(controller.current_order.order_cycle).to be_nil end + context "when the order is linked to a customer" do + it "removes the customer" do + # Make sure the order is linked to a customer + customer = create(:customer) + order.customer = customer + order.save! + + expect do + get :shop, params: { id: distributor } + end.to change { controller.current_order.customer }.to(nil) + end + end + context "when user is logged in" do before { allow(controller).to receive(:spree_current_user) { user } } diff --git a/spec/services/orders/cart_reset_service_spec.rb b/spec/services/orders/cart_reset_service_spec.rb index 967c700424..5b2bcedafd 100644 --- a/spec/services/orders/cart_reset_service_spec.rb +++ b/spec/services/orders/cart_reset_service_spec.rb @@ -70,10 +70,10 @@ RSpec.describe Orders::CartResetService do end context "when customer is missing" do - it "does not reset the customer" do + it "removes the customer" do expect do described_class.new(order, distributor.id.to_s).reset_other!(nil, nil) - end.not_to change { order.customer } + end.to change { order.customer }.to(nil) end end