diff --git a/app/controllers/administrateurs/groupe_instructeurs_controller.rb b/app/controllers/administrateurs/groupe_instructeurs_controller.rb index ac62dacee..cdd6455dd 100644 --- a/app/controllers/administrateurs/groupe_instructeurs_controller.rb +++ b/app/controllers/administrateurs/groupe_instructeurs_controller.rb @@ -123,10 +123,6 @@ module Administrateurs instructeurs.each { groupe_instructeur.add(_1) } flash[:notice] = if procedure.routing_enabled? - GroupeInstructeurMailer - .add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email) - .deliver_later - t('.assignment', count: instructeurs.size, emails: instructeurs.map(&:email).join(', '), diff --git a/app/controllers/instructeurs/groupe_instructeurs_controller.rb b/app/controllers/instructeurs/groupe_instructeurs_controller.rb index 5d025b7be..6eb25e131 100644 --- a/app/controllers/instructeurs/groupe_instructeurs_controller.rb +++ b/app/controllers/instructeurs/groupe_instructeurs_controller.rb @@ -22,9 +22,6 @@ module Instructeurs else groupe_instructeur.add(instructeur) flash[:notice] = "L’instructeur « #{instructeur_email} » a été affecté au groupe." - GroupeInstructeurMailer - .add_instructeurs(groupe_instructeur, [instructeur], current_user.email) - .deliver_later end redirect_to instructeur_groupe_path(procedure, groupe_instructeur) diff --git a/app/graphql/mutations/groupe_instructeur_ajouter_instructeurs.rb b/app/graphql/mutations/groupe_instructeur_ajouter_instructeurs.rb index eec854e89..c536667ef 100644 --- a/app/graphql/mutations/groupe_instructeur_ajouter_instructeurs.rb +++ b/app/graphql/mutations/groupe_instructeur_ajouter_instructeurs.rb @@ -26,12 +26,6 @@ module Mutations result[:warnings] = [warning] end - if groupe_instructeur.procedure.routing_enabled? && instructeurs.present? - GroupeInstructeurMailer - .add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email) - .deliver_later - end - result end end diff --git a/app/mailers/groupe_instructeur_mailer.rb b/app/mailers/groupe_instructeur_mailer.rb index e0d0712ef..cb2865bb8 100644 --- a/app/mailers/groupe_instructeur_mailer.rb +++ b/app/mailers/groupe_instructeur_mailer.rb @@ -1,17 +1,6 @@ class GroupeInstructeurMailer < ApplicationMailer layout 'mailers/layout' - def add_instructeurs(group, new_instructeurs, current_instructeur_email) - @new_instructeur_emails = new_instructeurs.map(&:email) - @group = group - @current_instructeur_email = current_instructeur_email - - subject = "Ajout d’un instructeur dans le groupe \"#{group.label}\"" - - emails = @group.instructeurs.map(&:email) - mail(bcc: emails, subject: subject) - end - def remove_instructeurs(group, removed_instructeurs, current_instructeur_email) @removed_instructeur_emails = removed_instructeurs.map(&:email) @group = group @@ -22,15 +11,4 @@ class GroupeInstructeurMailer < ApplicationMailer emails = @group.instructeurs.map(&:email) mail(bcc: emails, subject: subject) end - - def remove_instructeur(group, instructeur, current_instructeur_email) - @email = instructeur.email - @group = group - @current_instructeur_email = current_instructeur_email - - subject = "Suppression d’un instructeur dans le groupe \"#{group.label}\"" - - emails = @group.instructeurs.map(&:email) - mail(bcc: emails, subject: subject) - end end diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb index e0facf03b..aedc98b37 100644 --- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb @@ -263,12 +263,8 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do emails: new_instructeur_emails.to_json } end - before do - gi_1_2.instructeurs << instructeur - allow(GroupeInstructeurMailer).to receive(:add_instructeurs) - .and_return(double(deliver_later: true)) - end + before { gi_1_2.instructeurs << instructeur } context 'of a news instructeurs' do let(:new_instructeur_emails) { ['new_i1@mail.com', 'new_i2@mail.com'] } @@ -277,13 +273,6 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do it { expect(flash.notice).to be_present } it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) } it { expect(procedure.routing_enabled?).to be_truthy } - it "calls GroupeInstructeurMailer with the right groupe and instructeurs" do - expect(GroupeInstructeurMailer).to have_received(:add_instructeurs).with( - gi_1_2, - satisfy { |instructeurs| instructeurs.all? { |i| new_instructeur_emails.include?(i.email) } }, - admin.email - ) - end end context 'of an instructeur already in the group' do diff --git a/spec/mailers/groupe_instructeur_mailer_spec.rb b/spec/mailers/groupe_instructeur_mailer_spec.rb index ba9f82711..9157f03ef 100644 --- a/spec/mailers/groupe_instructeur_mailer_spec.rb +++ b/spec/mailers/groupe_instructeur_mailer_spec.rb @@ -1,20 +1,21 @@ RSpec.describe GroupeInstructeurMailer, type: :mailer do - describe '#add_instructeurs' do + describe '#remove_instructeurs' do let(:groupe_instructeur) do gi = GroupeInstructeur.create(label: 'gi1', procedure: create(:procedure)) gi.instructeurs << create(:instructeur, email: 'int1@g') gi.instructeurs << create(:instructeur, email: 'int2@g') + gi.instructeurs << instructeurs_to_remove gi end - let(:instructeur_1) { create(:instructeur) } - let(:instructeur_2) { create(:instructeur) } + let(:instructeur_1) { create(:instructeur, email: 'int3@g') } + let(:instructeur_2) { create(:instructeur, email: 'int4@g') } - let(:instructeurs) { [instructeur_1, instructeur_2] } + let(:instructeurs_to_remove) { [instructeur_1, instructeur_2] } let(:current_instructeur_email) { 'toto@email.com' } - subject { described_class.add_instructeurs(groupe_instructeur, instructeurs, current_instructeur_email) } + subject { described_class.remove_instructeurs(groupe_instructeur, instructeurs_to_remove, current_instructeur_email) } - it { expect(subject.body).to include('Bonjour') } - it { expect(subject.bcc).to match_array(['int1@g', 'int2@g']) } + it { expect(subject.body).to include('Les instructeurs int3@g, int4@g ont été retirés du groupe') } + it { expect(subject.bcc).to match_array(['int1@g', 'int2@g', 'int3@g', 'int4@g']) } end end diff --git a/spec/mailers/previews/groupe_instructeur_mailer_preview.rb b/spec/mailers/previews/groupe_instructeur_mailer_preview.rb index f8366a7b2..1b6c006a1 100644 --- a/spec/mailers/previews/groupe_instructeur_mailer_preview.rb +++ b/spec/mailers/previews/groupe_instructeur_mailer_preview.rb @@ -1,9 +1,9 @@ class GroupeInstructeurMailerPreview < ActionMailer::Preview - def add_instructeurs + def remove_instructeurs procedure = Procedure.new(id: 1, libelle: 'une superbe procedure') groupe = GroupeInstructeur.new(id: 1, label: 'Val-De-Marne', procedure:) current_instructeur_email = 'admin@dgfip.com' instructeurs = Instructeur.limit(2) - GroupeInstructeurMailer.add_instructeurs(groupe, instructeurs, current_instructeur_email) + GroupeInstructeurMailer.remove_instructeurs(groupe, instructeurs, current_instructeur_email) end end