diff --git a/app/models/procedure.rb b/app/models/procedure.rb index fde527da6..019c0cd09 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -580,7 +580,8 @@ class Procedure < ApplicationRecord procedure.draft_revision.types_de_champ_public.each { |tdc| tdc.options&.delete(:old_pj) } end - new_defaut_groupe = procedure.groupe_instructeurs.find_by(label: defaut_groupe_instructeur.label) + new_defaut_groupe = procedure.groupe_instructeurs + .find_by(label: defaut_groupe_instructeur.label) || procedure.groupe_instructeurs.first procedure.update!(defaut_groupe_instructeur: new_defaut_groupe) procedure diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 71fdc85f8..a61564470 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -504,13 +504,12 @@ describe Procedure do let!(:assign_to_1) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_1) } let!(:assign_to_2) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_2) } - before do + subject do @procedure = procedure.clone(administrateur, from_library) @procedure.save + @procedure end - subject { @procedure } - it { expect(subject.parent_procedure).to eq(procedure) } describe "should keep groupe instructeurs " do @@ -623,6 +622,16 @@ describe Procedure do let(:administrateur) { create(:administrateur) } let(:opendata) { false } + context 'and the procedure does not have a groupe with the defaut label' do + before do + procedure.defaut_groupe_instructeur.update!(label: 'another label') + end + + it "affects the first groupe as the defaut groupe" do + expect(subject.defaut_groupe_instructeur).to eq(subject.groupe_instructeurs.first) + end + end + it 'should not clone service' do expect(subject.service).to eq(nil) end