Merge pull request #6091 from tchak/fix-discarded-destruction

Correction des données liées aux dossiers qui doivent être effacées lors de la suppression (#6091)
This commit is contained in:
Pierre de La Morinerie 2021-04-15 09:13:07 +02:00 committed by GitHub
commit 2c50fb29e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 0 deletions

View file

@ -62,6 +62,9 @@ class Dossier < ApplicationRecord
has_one :attestation, dependent: :destroy
has_one :france_connect_information, through: :user
# FIXME: some dossiers have more than one attestation
has_many :attestations, dependent: :destroy
has_one_attached :justificatif_motivation
has_one_attached :pdf_export_for_instructeur

View file

@ -18,6 +18,10 @@ class ProcedureRevision < ApplicationRecord
has_many :types_de_champ, through: :revision_types_de_champ, source: :type_de_champ
has_many :types_de_champ_private, through: :revision_types_de_champ_private, source: :type_de_champ
has_many :owned_types_de_champ, class_name: 'TypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
has_one :draft_procedure, class_name: 'Procedure', foreign_key: :draft_revision_id, dependent: :nullify, inverse_of: :draft_revision
has_one :published_procedure, class_name: 'Procedure', foreign_key: :published_revision_id, dependent: :nullify, inverse_of: :published_revision
def build_champs
types_de_champ.map(&:build_champ)
end

View file

@ -1422,4 +1422,16 @@ describe Dossier do
it { expect(dossier.api_entreprise_job_exceptions).to eq(['#<StandardError: My special exception!>']) }
end
end
describe "#destroy" do
let(:dossier) { create(:dossier) }
before do
create(:attestation, dossier: dossier)
create(:attestation, dossier: dossier)
end
it "can destroy dossier with two attestations" do
expect(dossier.destroy).to be_truthy
end
end
end

View file

@ -1030,4 +1030,12 @@ describe Procedure do
it { is_expected.to be false }
end
end
describe "#destroy" do
let(:procedure) { create(:procedure, :with_type_de_champ) }
it "can destroy procedure" do
expect(procedure.destroy).to be_truthy
end
end
end