commit
5ab56d3276
5 changed files with 38 additions and 7 deletions
|
@ -69,12 +69,12 @@ module NewAdministrateur
|
||||||
create_instructeur(instructeur_email)
|
create_instructeur(instructeur_email)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
groupe_instructeur.instructeurs << instructeurs
|
||||||
|
|
||||||
GroupeInstructeurMailer
|
GroupeInstructeurMailer
|
||||||
.add_instructeurs(groupe_instructeur, instructeurs, current_user.email)
|
.add_instructeurs(groupe_instructeur, instructeurs, current_user.email)
|
||||||
.deliver_later
|
.deliver_later
|
||||||
|
|
||||||
groupe_instructeur.instructeurs << instructeurs
|
|
||||||
|
|
||||||
flash[:notice] = t('.assignment',
|
flash[:notice] = t('.assignment',
|
||||||
count: email_to_adds.count,
|
count: email_to_adds.count,
|
||||||
value: email_to_adds.join(', '),
|
value: email_to_adds.join(', '),
|
||||||
|
|
|
@ -37,8 +37,9 @@ function TypeDeChamps({ state: rootState, typeDeChamps }) {
|
||||||
{state.typeDeChamps.length === 0 && (
|
{state.typeDeChamps.length === 0 && (
|
||||||
<h2>
|
<h2>
|
||||||
<FontAwesomeIcon icon="arrow-circle-down" />
|
<FontAwesomeIcon icon="arrow-circle-down" />
|
||||||
Cliquez sur le bouton « Ajouter un champ » pour
|
Cliquez sur le bouton «
|
||||||
créer votre premier champ.
|
{addChampLabel(state.isAnnotation)} » pour créer votre premier
|
||||||
|
champ.
|
||||||
</h2>
|
</h2>
|
||||||
)}
|
)}
|
||||||
<div className="footer"> </div>
|
<div className="footer"> </div>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
class GroupeInstructeurMailer < ApplicationMailer
|
class GroupeInstructeurMailer < ApplicationMailer
|
||||||
layout 'mailers/layout'
|
layout 'mailers/layout'
|
||||||
|
|
||||||
def add_instructeurs(group, instructeurs, current_instructeur_email)
|
def add_instructeurs(group, new_instructeurs, current_instructeur_email)
|
||||||
@new_instructeur_emails = instructeurs.map(&:email)
|
@new_instructeur_emails = new_instructeurs.map(&:email)
|
||||||
@group = Procedure.last.defaut_groupe_instructeur
|
@group = group
|
||||||
@current_instructeur_email = current_instructeur_email
|
@current_instructeur_email = current_instructeur_email
|
||||||
|
|
||||||
subject = "Ajout d’un instructeur dans le groupe \"#{group.label}\""
|
subject = "Ajout d’un instructeur dans le groupe \"#{group.label}\""
|
||||||
|
|
|
@ -89,6 +89,9 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
||||||
before do
|
before do
|
||||||
gi_1_1.instructeurs << instructeur
|
gi_1_1.instructeurs << instructeur
|
||||||
|
|
||||||
|
allow(GroupeInstructeurMailer).to receive(:add_instructeurs)
|
||||||
|
.and_return(double(deliver_later: true))
|
||||||
|
|
||||||
post :add_instructeur,
|
post :add_instructeur,
|
||||||
params: {
|
params: {
|
||||||
procedure_id: procedure.id,
|
procedure_id: procedure.id,
|
||||||
|
@ -103,6 +106,13 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
||||||
it { expect(gi_1_1.instructeurs.pluck(:email)).to include(*new_instructeur_emails) }
|
it { expect(gi_1_1.instructeurs.pluck(:email)).to include(*new_instructeur_emails) }
|
||||||
it { expect(flash.notice).to be_present }
|
it { expect(flash.notice).to be_present }
|
||||||
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
|
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
|
||||||
|
it "calls GroupeInstructeurMailer with the right groupe and instructeurs" do
|
||||||
|
expect(GroupeInstructeurMailer).to have_received(:add_instructeurs).with(
|
||||||
|
gi_1_1,
|
||||||
|
satisfy { |instructeurs| instructeurs.all? { |i| new_instructeur_emails.include?(i.email) } },
|
||||||
|
admin.email
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'of an instructeur already in the group' do
|
context 'of an instructeur already in the group' do
|
||||||
|
|
20
spec/mailers/groupe_instructeur_mailer_spec.rb
Normal file
20
spec/mailers/groupe_instructeur_mailer_spec.rb
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
RSpec.describe GroupeInstructeurMailer, type: :mailer do
|
||||||
|
describe '#add_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
|
||||||
|
end
|
||||||
|
let(:instructeur_1) { create(:instructeur) }
|
||||||
|
let(:instructeur_2) { create(:instructeur) }
|
||||||
|
|
||||||
|
let(:instructeurs) { [instructeur_1, instructeur_2] }
|
||||||
|
let(:current_instructeur_email) { 'toto@email.com' }
|
||||||
|
|
||||||
|
subject { described_class.add_instructeurs(groupe_instructeur, instructeurs, current_instructeur_email) }
|
||||||
|
|
||||||
|
it { expect(subject.body).to include('Bonjour') }
|
||||||
|
it { expect(subject.bcc).to match_array(['int1@g', 'int2@g']) }
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue