fix(dossier): do not try to rebase if procedure is not published

This commit is contained in:
Paul Chavard 2023-02-01 17:33:23 +01:00
parent fc31ef6da3
commit 2971100081
2 changed files with 13 additions and 2 deletions

View file

@ -14,12 +14,12 @@ module DossierRebaseConcern
end
def can_rebase?
revision != procedure.published_revision &&
procedure.published_revision.present? && revision != procedure.published_revision &&
(brouillon? || accepted_en_construction_changes? || accepted_en_instruction_changes?)
end
def pending_changes
revision.compare(procedure.published_revision)
procedure.published_revision.present? ? revision.compare(procedure.published_revision) : []
end
def can_rebase_mandatory_change?(stable_id)

View file

@ -6,6 +6,17 @@ describe DossierRebaseConcern do
let(:private_type_de_champ) { procedure.active_revision.types_de_champ_private.first }
let(:mandatory_type_de_champ) { procedure.active_revision.types_de_champ_public.find(&:mandatory?) }
context 'on unpublished procedure' do
context 'en_construction' do
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
it 'should be false' do
expect(dossier.pending_changes).to be_empty
expect(dossier.can_rebase?).to be_falsey
end
end
end
context 'en_construction' do
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }