diff --git a/app/models/instructeur.rb b/app/models/instructeur.rb index 3cdfa45c9..6334d9fa7 100644 --- a/app/models/instructeur.rb +++ b/app/models/instructeur.rb @@ -8,7 +8,7 @@ class Instructeur < ApplicationRecord has_many :assign_to, dependent: :destroy has_many :groupe_instructeurs, through: :assign_to - has_many :procedures, through: :groupe_instructeurs + has_many :procedures, -> { distinct }, through: :groupe_instructeurs has_many :assign_to_with_email_notifications, -> { with_email_notifications }, class_name: 'AssignTo', inverse_of: :instructeur has_many :groupe_instructeur_with_email_notifications, through: :assign_to_with_email_notifications, source: :groupe_instructeur diff --git a/spec/models/instructeur_spec.rb b/spec/models/instructeur_spec.rb index 5b0ba0ed4..7d9c36846 100644 --- a/spec/models/instructeur_spec.rb +++ b/spec/models/instructeur_spec.rb @@ -410,6 +410,19 @@ describe Instructeur, type: :model do end end + describe '#procedures' do + let(:procedure_a) { create(:procedure) } + let(:instructeur_a) { create(:instructeur, groupe_instructeurs: [procedure_a.defaut_groupe_instructeur]) } + + before do + gi2 = procedure_a.groupe_instructeurs.create(label: '2') + + instructeur_a.groupe_instructeurs << gi2 + end + + it { expect(instructeur_a.procedures.all.to_ary).to eq([procedure_a]) } + end + private def assign(procedure_to_assign)