Merge pull request #8546 from tchak/fix-rebase-repasse-en-instruction

fix(dossier): do not try to rebase if procedure is not published
This commit is contained in:
Paul Chavard 2023-02-02 10:28:49 +01:00 committed by GitHub
commit d291a309df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 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

@ -1,4 +1,4 @@
describe Dossier do
describe DossierRebaseConcern do
describe '#can_rebase?' do
let(:procedure) { create(:procedure, :with_type_de_champ_mandatory, :with_type_de_champ_private, :with_yes_no) }
let(:attestation_template) { procedure.draft_revision.attestation_template.find_or_revise! }
@ -6,6 +6,17 @@ describe Dossier 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) }