fix(dossier): fix clone with data

This commit is contained in:
Paul Chavard 2023-01-26 23:26:11 +01:00
parent efa1366086
commit 298721f90d
2 changed files with 14 additions and 1 deletions

View file

@ -236,7 +236,7 @@ class Champ < ApplicationRecord
end
def cleanup_if_empty
if external_id_changed?
if persisted? && external_id_changed?
self.data = nil
end
end

View file

@ -1893,6 +1893,19 @@ describe Dossier do
before { dossier.champs_public << champ_piece_justificative }
it { expect(Champs::PieceJustificativeChamp.where(dossier: new_dossier).first.piece_justificative_file.first.blob).to eq(champ_piece_justificative.piece_justificative_file.first.blob) }
end
context 'for Champs::AddressChamp, original_champ.data is duped' do
let(:dossier) { create(:dossier) }
let(:type_de_champs_adress) { create(:type_de_champ_address, procedure: dossier.procedure) }
let(:etablissement) { create(:etablissement) }
let(:champ_address) { create(:champ_address, type_de_champ: type_de_champs_adress, external_id: 'Address', data: { city_code: '75019' }) }
before { dossier.champs_public << champ_address }
it { expect(Champs::AddressChamp.where(dossier: dossier).first.data).not_to be_nil }
it { expect(Champs::AddressChamp.where(dossier: dossier).first.external_id).not_to be_nil }
it { expect(Champs::AddressChamp.where(dossier: new_dossier).first.external_id).to eq(champ_address.external_id) }
it { expect(Champs::AddressChamp.where(dossier: new_dossier).first.data).to eq(champ_address.data) }
end
end
context 'private are renewd' do