[Fix #323] Refactor received dossier notification: use a callback
This commit is contained in:
parent
67d0fb5ddc
commit
107c322062
3 changed files with 30 additions and 2 deletions
|
@ -99,8 +99,6 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
dossier.received!
|
||||
flash.notice = 'Dossier considéré comme reçu.'
|
||||
|
||||
NotificationMailer.send_notification(dossier, dossier.procedure.received_mail_template).deliver_now!
|
||||
|
||||
redirect_to backoffice_dossier_path(id: dossier.id)
|
||||
end
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ class Dossier < ActiveRecord::Base
|
|||
|
||||
after_save :build_default_champs, if: Proc.new { procedure_id_changed? }
|
||||
after_save :build_default_individual, if: Proc.new { procedure.for_individual? }
|
||||
after_save :send_notification_email
|
||||
|
||||
validates :user, presence: true
|
||||
|
||||
|
@ -302,4 +303,10 @@ class Dossier < ActiveRecord::Base
|
|||
def serialize_value_for_export(value)
|
||||
value.nil? || value.kind_of?(Time) ? value : value.to_s
|
||||
end
|
||||
|
||||
def send_notification_email
|
||||
if state_changed? && EN_INSTRUCTION.include?(state)
|
||||
NotificationMailer.send_notification(self, procedure.received_mail_template).deliver_now!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -867,4 +867,27 @@ describe Dossier do
|
|||
it { is_expected.to include(dossier3)}
|
||||
it { is_expected.to include(dossier4)}
|
||||
end
|
||||
|
||||
describe "#send_notification_email" do
|
||||
let(:procedure) { create(:procedure) }
|
||||
let(:dossier) { create(:dossier, procedure: procedure, state: :initiated) }
|
||||
|
||||
before do
|
||||
ActionMailer::Base.deliveries.clear
|
||||
end
|
||||
|
||||
it "sends an email when the dossier becomes received" do
|
||||
dossier.received!
|
||||
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
|
||||
expect(mail.subject).to eq("Votre dossier TPS nº #{dossier.id} va être instruit")
|
||||
end
|
||||
|
||||
it "does not an email when the dossier becomes closed" do
|
||||
dossier.closed!
|
||||
|
||||
expect(ActionMailer::Base.deliveries.size).to eq(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue