amelioration(email_usagers): autorise uniquement les instructeurs présent dans tous les groupes d'instructeur a envoyer un message de masse aux usagers ayant un dossier en brouillon

This commit is contained in:
Martin 2023-07-18 14:49:30 +02:00 committed by mfo
parent 05687e63ca
commit fc3a5496eb
2 changed files with 24 additions and 4 deletions

View file

@ -39,10 +39,10 @@ module ProcedureHelper
end
def can_send_groupe_message?(procedure)
procedure.dossiers
.state_brouillon
.includes(:groupe_instructeur)
.exists?(groupe_instructeur: current_instructeur.groupe_instructeurs)
total_groupe_instructeur_on_procedure = procedure.groupe_instructeurs.active.count
total_groupe_instructeur_on_instructeur = current_instructeur.groupe_instructeurs.active.where(procedure: procedure).count
total_groupe_instructeur_on_procedure == total_groupe_instructeur_on_instructeur
end
def url_or_email_to_lien_dpo(procedure)

View file

@ -10,6 +10,26 @@ RSpec.describe ProcedureHelper, type: :helper do
end
end
describe 'can_send_groupe_message?' do
let(:procedure) { create(:procedure, groupe_instructeurs: [gi1, gi2]) }
let(:current_instructeur) { create(:instructeur) }
subject { can_send_groupe_message?(procedure) }
context 'when current_instructeur is in all procedure.groupes_instructeur' do
let(:gi1) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
let(:gi2) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
it { is_expected.to be_truthy }
end
context 'when current_instructeur is in all procedure.groupes_instructeur' do
let(:instructeur2) { create(:instructeur) }
let(:gi1) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
let(:gi2) { create(:groupe_instructeur, instructeurs: [instructeur2]) }
it { is_expected.to be_falsy }
end
end
describe '#estimated_fill_duration_minutes' do
subject { estimated_fill_duration_minutes(procedure.reload) }