Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions app/jobs/credit_insufficient_notification_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,9 @@ def users_with_insufficient_credit
end

def send_notification_delivery_reports(success_count, unnotifyable_users)
User.treasurer.each do |treasurer|
UserCreditMailer.credit_delivery_report_mail(
treasurer, success_count, unnotifyable_users
).deliver_later
end
UserCreditMailer.credit_delivery_report_mail(
success_count, unnotifyable_users
).deliver_later

return if Rails.env.local?

Expand Down
10 changes: 7 additions & 3 deletions app/mailers/user_credit_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@ def insufficient_credit_mail(user)
mail to: user.email, subject: 'Verzoek met betrekking tot uw Zatladder saldo'
end

def credit_delivery_report_mail(treasurer, success_count, unnotifyable_users)
@user = treasurer
# rubocop:disable Metrics/AbcSize
def credit_delivery_report_mail(success_count, unnotifyable_users)
@user = Struct.new(:name).new(
Rails.application.config.x.treasurer_name || Rails.application.config.x.treasurer_title.capitalize
)
@unnotifyable_users = unnotifyable_users
@success_count = success_count
@title = 'Notificatie over de saldomail'

subject = "Er is #{@success_count.positive? ? 'een' : 'geen'} saldomail verstuurd"

mail to: treasurer.email, subject:
mail to: Rails.application.config.x.treasurer_email, subject:
end
# rubocop:enable Metrics/AbcSize

def new_credit_mutation_mail(credit_mutation)
@user = credit_mutation.user
Expand Down
8 changes: 1 addition & 7 deletions spec/jobs/credit_insufficient_notification_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@
let(:user_without_email) do
create(:user, name: 'Good Emailless', email: nil, provider: 'some_external_source')
end
let(:treasurer) do
create(:user,
name: 'Sis Treasures', email: 'treasurer@csvalpha.nl',
roles: [create(:role, role_type: :treasurer)])
end
let(:emails) { ActionMailer::Base.deliveries }

subject(:job) { perform_enqueued_jobs { described_class.perform_now } }
Expand All @@ -25,14 +20,13 @@
create(:credit_mutation, user: negative_user, amount: -2)
create(:credit_mutation, user: negative_user_without_email, amount: -2)
user_without_email
treasurer
job
end

it { expect(emails.size).to eq 2 }
it { expect(emails.first.to.first).to eq negative_user.email }
it { expect(emails.first.body.to_s).to include 'http://testhost:1337/payments/add' }
it { expect(emails.second.to.first).to eq treasurer.email }
it { expect(emails.second.to.first).to eq Rails.application.config.x.treasurer_email }
it { expect(emails.second.body.to_s).to include negative_user_without_email.name }
it { expect(emails.second.body.to_s).not_to include user_without_email.name }
end
Expand Down
3 changes: 1 addition & 2 deletions spec/mailers/previews/user_credit_mailer_preview.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@ def insufficient_credit_mail
end

def credit_delivery_report_mail
treasurer = FactoryBot.create(:user, :treasurer)
unnotifyable_users = FactoryBot.create_list(:user, 2).map(&:name)
success_count = 2

UserCreditMailer.credit_delivery_report_mail(treasurer, success_count, unnotifyable_users)
UserCreditMailer.credit_delivery_report_mail(success_count, unnotifyable_users)
end

def new_credit_mutation_mail
Expand Down