diff --git a/core/app/models/spree/order.rb b/core/app/models/spree/order.rb index 7581528c944..14e55b033da 100644 --- a/core/app/models/spree/order.rb +++ b/core/app/models/spree/order.rb @@ -456,8 +456,8 @@ def deliver_order_confirmation_email "Spree::MailerSubscriber#order_finalized.", caller(1) - Spree::Config.order_mailer_class.confirm_email(order).deliver_later - order.update_column(:confirmation_delivered, true) + Spree::Config.order_mailer_class.confirm_email(self).deliver_later + update_column(:confirmation_delivered, true) end # Helper methods for checkout steps diff --git a/core/spec/models/spree/order_spec.rb b/core/spec/models/spree/order_spec.rb index c1fabd9dc59..9bf24ffaa9a 100644 --- a/core/spec/models/spree/order_spec.rb +++ b/core/spec/models/spree/order_spec.rb @@ -62,6 +62,19 @@ end end + describe '#deliver_order_confirmation_mailer' do + it 'sends an email' do + expect(Spree::Config.order_mailer_class).to receive(:confirm_email).and_call_original + order.deliver_order_confirmation_email + end + + it 'marks the order as confirmation_delivered' do + expect do + order.deliver_order_confirmation_email + end.to change(order, :confirmation_delivered).to true + end + end + context '#store' do it { is_expected.to respond_to(:store) }