Merge pull request #9072 from colinux/fix-modif-en-construction-demarche-test
ETQ admin: corrige une erreur lorsque je modifie mon dossier en construction d'une démarche en test
This commit is contained in:
commit
1afd5e7f12
2 changed files with 99 additions and 79 deletions
|
@ -2,6 +2,8 @@ module DossierRebaseConcern
|
|||
extend ActiveSupport::Concern
|
||||
|
||||
def rebase!(force: false)
|
||||
return if procedure.published_revision.blank?
|
||||
|
||||
if force || can_rebase?
|
||||
transaction do
|
||||
rebase
|
||||
|
|
|
@ -250,8 +250,9 @@ describe DossierRebaseConcern do
|
|||
end
|
||||
|
||||
describe "#rebase" do
|
||||
let(:procedure) do
|
||||
create(:procedure, types_de_champ_public: [
|
||||
let(:procedure) { create(:procedure, types_de_champ_public:, types_de_champ_private:) }
|
||||
let(:types_de_champ_public) do
|
||||
[
|
||||
{ type: :text, mandatory: true, stable_id: 1 },
|
||||
{
|
||||
type: :repetition, stable_id: 101, mandatory: true, children: [
|
||||
|
@ -261,8 +262,9 @@ describe DossierRebaseConcern do
|
|||
{ type: :datetime, stable_id: 103 },
|
||||
{ type: :yes_no, stable_id: 104 },
|
||||
{ type: :integer_number, stable_id: 105 }
|
||||
], types_de_champ_private: [{ type: :text, stable_id: 11 }])
|
||||
]
|
||||
end
|
||||
let(:types_de_champ_private) { [{ type: :text, stable_id: 11 }] }
|
||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||
let(:types_de_champ) { procedure.active_revision.types_de_champ }
|
||||
|
||||
|
@ -286,6 +288,7 @@ describe DossierRebaseConcern do
|
|||
let(:private_text_type_de_champ) { types_de_champ.find { _1.stable_id == 11 } }
|
||||
let(:rebased_private_text_champ) { dossier.champs_private.find { _1.stable_id == 11 } }
|
||||
|
||||
context "when revision is published" do
|
||||
before do
|
||||
procedure.publish!
|
||||
procedure.draft_revision.add_type_de_champ({
|
||||
|
@ -370,6 +373,21 @@ describe DossierRebaseConcern do
|
|||
end
|
||||
end
|
||||
|
||||
context 'force rebase en construction' do
|
||||
subject { dossier.rebase!(force: true) }
|
||||
|
||||
context 'procedure not published' do
|
||||
let(:procedure) { create(:procedure, :draft, types_de_champ_public:, types_de_champ_private:) }
|
||||
let(:dossier) { create(:dossier, :en_construction, procedure:) }
|
||||
|
||||
it 'is noop' do
|
||||
expect { subject }.not_to change { dossier.reload.champs_public[0].rebased_at }
|
||||
expect { subject }.not_to change { dossier.updated_at }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'small grained' do
|
||||
subject do
|
||||
procedure.publish_revision!
|
||||
|
|
Loading…
Add table
Reference in a new issue