Don't sub mailchimp if mailchimp is not enabled (#12791)
* Dont sub mailchimp if mailchimp is not enabled * Refactor guard clauses a bit * Add test * Remove unneccessary test * Add removed key check
This commit is contained in:
parent
260a019e92
commit
33793df627
2 changed files with 10 additions and 9 deletions
|
|
@ -466,9 +466,9 @@ class User < ApplicationRecord
|
|||
end
|
||||
|
||||
def subscribe_to_mailchimp_newsletter
|
||||
return unless registered
|
||||
return unless email.present? && email.include?("@")
|
||||
return if saved_changes["unconfirmed_email"] && saved_changes["confirmation_sent_at"]
|
||||
return unless registered && email.present?
|
||||
return if SiteConfig.mailchimp_api_key.blank? && SiteConfig.mailchimp_newsletter_id.blank?
|
||||
return if saved_changes.key?(:unconfirmed_email) && saved_changes.key?(:confirmation_sent_at)
|
||||
return unless saved_changes.key?(:email) || saved_changes.key?(:email_newsletter)
|
||||
|
||||
Users::SubscribeToMailchimpNewsletterWorker.perform_async(id)
|
||||
|
|
|
|||
|
|
@ -487,12 +487,6 @@ RSpec.describe User, type: :model do
|
|||
end
|
||||
end
|
||||
|
||||
it "does not enqueue with an invalid email" do
|
||||
sidekiq_assert_no_enqueued_jobs(only: Users::SubscribeToMailchimpNewsletterWorker) do
|
||||
user.update(email: "foobar")
|
||||
end
|
||||
end
|
||||
|
||||
it "does not enqueue with an unconfirmed email" do
|
||||
sidekiq_assert_no_enqueued_jobs(only: Users::SubscribeToMailchimpNewsletterWorker) do
|
||||
user.update(unconfirmed_email: "bob@bob.com", confirmation_sent_at: Time.current)
|
||||
|
|
@ -505,6 +499,13 @@ RSpec.describe User, type: :model do
|
|||
end
|
||||
end
|
||||
|
||||
it "does not enqueue if Mailchimp is not enabled" do
|
||||
allow(SiteConfig).to receive(:mailchimp_api_key).and_return(nil)
|
||||
sidekiq_assert_no_enqueued_jobs(only: Users::SubscribeToMailchimpNewsletterWorker) do
|
||||
user.update(email: "something@real.com")
|
||||
end
|
||||
end
|
||||
|
||||
it "does not enqueue when the email address or subscription status has not changed" do
|
||||
# The trait replaces the method with a dummy, but we need the actual method for this test.
|
||||
user = described_class.find(create(:user, :ignore_mailchimp_subscribe_callback).id)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue