Merge pull request #4646 from betagouv/dev

2019-12-16-01
This commit is contained in:
Keirua 2019-12-16 23:18:07 +01:00 committed by GitHub
commit 5ab56d3276
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 7 deletions

View file

@ -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(', '),

View file

@ -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" />
&nbsp;&nbsp;Cliquez sur le bouton «&nbsp;Ajouter un champ&nbsp;» pour &nbsp;&nbsp;Cliquez sur le bouton «&nbsp;
créer votre premier champ. {addChampLabel(state.isAnnotation)}&nbsp;» pour créer votre premier
champ.
</h2> </h2>
)} )}
<div className="footer">&nbsp;</div> <div className="footer">&nbsp;</div>

View file

@ -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 dun instructeur dans le groupe \"#{group.label}\"" subject = "Ajout dun instructeur dans le groupe \"#{group.label}\""

View file

@ -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

View 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