From 0c6aa42f558d07c4acf3f36147323e6120911adc Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Wed, 21 Feb 2018 17:40:41 +0100 Subject: [PATCH] [Fix #1454] Send weekly overview emails async, overview param is not correctly serialized by activejob so it is computed again when email is send --- .rubocop.yml | 2 +- app/jobs/weekly_overview_job.rb | 2 +- app/mailers/gestionnaire_mailer.rb | 3 ++- spec/jobs/weekly_overview_job_spec.rb | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index fa0601957..d356d2312 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -523,7 +523,7 @@ Performance/FlatMap: Enabled: true Performance/HashEachMethods: - Enabled: true + Enabled: false Performance/LstripRstrip: Enabled: true diff --git a/app/jobs/weekly_overview_job.rb b/app/jobs/weekly_overview_job.rb index e8bcd7b46..856449264 100644 --- a/app/jobs/weekly_overview_job.rb +++ b/app/jobs/weekly_overview_job.rb @@ -7,7 +7,7 @@ class WeeklyOverviewJob < ApplicationJob Gestionnaire.all .map { |gestionnaire| [gestionnaire, gestionnaire.last_week_overview] } .reject { |_, overview| overview.nil? } - .each { |gestionnaire, overview| GestionnaireMailer.last_week_overview(gestionnaire, overview).deliver_now } + .each { |gestionnaire, _| GestionnaireMailer.last_week_overview(gestionnaire).deliver_later } end end end diff --git a/app/mailers/gestionnaire_mailer.rb b/app/mailers/gestionnaire_mailer.rb index 24718a766..e6e9cc30b 100644 --- a/app/mailers/gestionnaire_mailer.rb +++ b/app/mailers/gestionnaire_mailer.rb @@ -5,8 +5,9 @@ class GestionnaireMailer < ApplicationMailer send_mail email, password, "Vous avez été nommé accompagnateur sur la plateforme TPS" end - def last_week_overview(gestionnaire, overview) + def last_week_overview(gestionnaire) headers['X-mailjet-campaign'] = 'last_week_overview' + overview = gestionnaire.last_week_overview send_mail gestionnaire.email, overview, 'Vos activités sur TPS' end diff --git a/spec/jobs/weekly_overview_job_spec.rb b/spec/jobs/weekly_overview_job_spec.rb index b0a133f35..a051baa04 100644 --- a/spec/jobs/weekly_overview_job_spec.rb +++ b/spec/jobs/weekly_overview_job_spec.rb @@ -4,7 +4,7 @@ RSpec.describe WeeklyOverviewJob, type: :job do describe 'perform' do let!(:gestionnaire) { create(:gestionnaire) } let(:overview) { double('overview') } - let(:mailer_double) { double('mailer', deliver_now: true) } + let(:mailer_double) { double('mailer', deliver_later: true) } context 'if the feature is enabled' do before { allow(Features).to receive(:weekly_overview).and_return(true) } @@ -16,8 +16,8 @@ RSpec.describe WeeklyOverviewJob, type: :job do WeeklyOverviewJob.new.perform end - it { expect(GestionnaireMailer).to have_received(:last_week_overview).with(gestionnaire, overview) } - it { expect(mailer_double).to have_received(:deliver_now) } + it { expect(GestionnaireMailer).to have_received(:last_week_overview).with(gestionnaire) } + it { expect(mailer_double).to have_received(:deliver_later) } end context 'with one gestionnaire with no overviews' do