copy groupe_instructeurs when clone

This commit is contained in:
pedong 2020-03-11 19:49:04 +01:00 committed by clemkeirua
parent 97dc927289
commit 7806a26e2c
3 changed files with 20 additions and 4 deletions

View file

@ -291,6 +291,7 @@ class Procedure < ApplicationRecord
populate_champ_stable_ids
procedure = self.deep_clone(include:
{
groupe_instructeurs: :instructeurs,
attestation_template: nil,
types_de_champ: [:drop_down_list, types_de_champ: :drop_down_list],
types_de_champ_private: [:drop_down_list, types_de_champ: :drop_down_list]
@ -331,8 +332,6 @@ class Procedure < ApplicationRecord
procedure.save
admin.instructeur.assign_to_procedure(procedure)
procedure
end

View file

@ -6,7 +6,7 @@ feature 'As an administrateur I wanna clone a procedure', js: true do
let(:administrateur) { create(:administrateur) }
before do
create :procedure, :with_service,
create :procedure, :with_service, :with_instructeur,
aasm_state: :publiee, published_at: Time.zone.now,
administrateurs: [administrateur],
libelle: 'libellé de la procédure',

View file

@ -384,6 +384,12 @@ describe Procedure do
let(:from_library) { false }
let(:administrateur) { procedure.administrateurs.first }
let!(:groupe_instructeur_1) { create(:groupe_instructeur, procedure: procedure, label: "groupe_1") }
let!(:instructeur_1) { create(:instructeur) }
let!(:instructeur_2) { create(:instructeur) }
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
@logo = File.open('spec/fixtures/files/white.png')
@signature = File.open('spec/fixtures/files/black.png')
@ -400,7 +406,18 @@ describe Procedure do
subject { @procedure }
it { expect(subject.parent_procedure).to eq(procedure) }
it { expect(subject.defaut_groupe_instructeur.instructeurs.map(&:email)).to eq([administrateur.email]) }
describe "should keep groupe instructeurs " do
it "should clone groupe instructeurs" do
expect(subject.groupe_instructeurs.size).to eq(2)
expect(subject.groupe_instructeurs.size).to eq(procedure.groupe_instructeurs.size)
expect(subject.groupe_instructeurs.where(label: "groupe_1").first).not_to be nil
end
it "should clone instructeurs in the groupe" do
expect(subject.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email)).to eq(procedure.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email))
end
end
it 'should duplicate specific objects with different id' do
expect(subject.id).not_to eq(procedure.id)