diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 8ea6e6faa3..97766078b1 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -348,7 +348,7 @@ class Enterprise < ActiveRecord::Base end def send_welcome_email - EnterpriseMailer.welcome(self).deliver + Delayed::Job.enqueue WelcomeEnterpriseJob.new(self.id) end def strip_url(url) diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 9d213bd633..d5e18c3d9b 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -216,14 +216,7 @@ Spree::Order.class_eval do # Overrride of Spree method, that allows us to send separate confirmation emails to user and shop owners def deliver_order_confirmation_email - begin - Spree::OrderMailer.confirm_email_for_customer(self.id).deliver - Spree::OrderMailer.confirm_email_for_shop(self.id).deliver - rescue Exception => e - Bugsnag.notify(e) - logger.error("#{e.class.name}: #{e.message}") - logger.error(e.backtrace * "\n") - end + Delayed::Job.enqueue ConfirmOrderJob.new(id) end diff --git a/app/models/spree/user_decorator.rb b/app/models/spree/user_decorator.rb index 6bec218774..b700fae3f0 100644 --- a/app/models/spree/user_decorator.rb +++ b/app/models/spree/user_decorator.rb @@ -37,7 +37,7 @@ Spree.user_class.class_eval do end def send_signup_confirmation - Spree::UserMailer.signup_confirmation(self).deliver + Delayed::Job.enqueue ConfirmSignupJob.new(id) end def can_own_more_enterprises? diff --git a/spec/models/enterprise_spec.rb b/spec/models/enterprise_spec.rb index 1643a90126..97a4b988d8 100644 --- a/spec/models/enterprise_spec.rb +++ b/spec/models/enterprise_spec.rb @@ -29,10 +29,9 @@ describe Enterprise do end it "sends a welcome email" do - mail_message = double "Mail::Message" - expect(EnterpriseMailer).to receive(:welcome).and_return mail_message - mail_message.should_receive :deliver - create(:enterprise, owner: user, email: enterprise.email, confirmed_at: nil) + expect do + create(:enterprise, owner: user, email: enterprise.email, confirmed_at: nil) + end.to enqueue_job WelcomeEnterpriseJob end end end @@ -65,10 +64,9 @@ describe Enterprise do unconfirmed_enterprise.unconfirmed_email = nil unconfirmed_enterprise.save! - mail_message = double "Mail::Message" - expect(EnterpriseMailer).to receive(:welcome).and_return mail_message - mail_message.should_receive :deliver - unconfirmed_enterprise.confirm! + expect do + unconfirmed_enterprise.confirm! + end.to enqueue_job WelcomeEnterpriseJob, enterprise_id: unconfirmed_enterprise.id end end diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index df5850f823..3c70c2243c 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -452,14 +452,10 @@ describe Spree::Order do end describe "sending confirmation emails" do - it "sends confirmation emails to both the user and the shop owner" do - customer_confirm_fake = double(:confirm_email_for_customer) - shop_confirm_fake = double(:confirm_email_for_shop) - expect(Spree::OrderMailer).to receive(:confirm_email_for_customer).and_return customer_confirm_fake - expect(Spree::OrderMailer).to receive(:confirm_email_for_shop).and_return shop_confirm_fake - expect(customer_confirm_fake).to receive :deliver - expect(shop_confirm_fake).to receive :deliver - create(:order).deliver_order_confirmation_email + it "sends confirmation emails" do + expect do + create(:order).deliver_order_confirmation_email + end.to enqueue_job ConfirmOrderJob end end end diff --git a/spec/models/spree/user_spec.rb b/spec/models/spree/user_spec.rb index 0a89e81b4c..848febb9c5 100644 --- a/spec/models/spree/user_spec.rb +++ b/spec/models/spree/user_spec.rb @@ -49,8 +49,9 @@ describe Spree.user_class do context "#create" do it "should send a signup email" do - Spree::UserMailer.should_receive(:signup_confirmation).and_return(double(:deliver => true)) - create(:user) + expect do + create(:user) + end.to enqueue_job ConfirmSignupJob end end