mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Send emails via jobs instead of synchronously
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user