diff --git a/app/models/dossier.rb b/app/models/dossier.rb index d7a807ca3..1f5cd63b0 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -161,6 +161,8 @@ class Dossier < ApplicationRecord user: []) } + scope :for_procedure, -> (procedure) { includes(:user, :groupe_instructeur).where(groupe_instructeurs: { procedure: procedure }) } + accepts_nested_attributes_for :individual delegate :siret, :siren, to: :etablissement, allow_nil: true diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 08d65d4fe..5da59042b 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -1009,4 +1009,21 @@ describe Dossier do expect(dossier.individual.prenom).to eq user_info.given_name } end + + describe '#for_procedure' do + let!(:procedure_1) { create(:procedure) } + let!(:procedure_2) { create(:procedure) } + + let!(:dossier_1_1) { create(:dossier, procedure: procedure_1) } + let!(:dossier_1_2) { create(:dossier, procedure: procedure_1) } + let!(:dossier_2_1) { create(:dossier, procedure: procedure_2) } + + before do + gi_1_2 = procedure_1.groupe_instructeurs.create(label: 2) + gi_1_2.dossiers << dossier_1_2 + end + + it { expect(Dossier.for_procedure(procedure_1)).to contain_exactly(dossier_1_1, dossier_1_2) } + it { expect(Dossier.for_procedure(procedure_2)).to contain_exactly(dossier_2_1) } + end end