diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index d6c8c1d3b8..cd8a57d959 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -718,7 +718,8 @@ module Spree end def find_customer - Customer.of(distributor).find_by(email: email_for_customer) + user&.customers&.of(distributor)&.first || + Customer.of(distributor).find_by(email: email_for_customer) end def create_customer diff --git a/spec/models/spree/order/callbacks_spec.rb b/spec/models/spree/order/callbacks_spec.rb index a3cb0744ec..ed5b4c2c35 100644 --- a/spec/models/spree/order/callbacks_spec.rb +++ b/spec/models/spree/order/callbacks_spec.rb @@ -21,10 +21,10 @@ describe Spree::Order do context "#save" do context "when associated with a registered user" do - let(:user) { double(:user, email: "test@example.com") } + let(:user) { Spree::User.new(email: "test@example.com") } before do - allow(order).to receive_messages user: user + order.user = user end it "should assign the email address of the user" do diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 113f7fc8bb..85430bfc0a 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -975,8 +975,6 @@ describe Spree::Order do end it "recognises users with changed email address" do - pending "#9002" - order.update!(state: "complete") # Change email instantly without confirmation via Devise: