diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 21b8e8ac5..3ad38e516 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -265,8 +265,7 @@ class Procedure < ApplicationRecord validate :check_juridique, on: [:create, :publication] - # TO DO add validation after data backfill - # validates :replaced_by_id, presence: true, if: -> { closing_reason == self.closing_reasons.fetch(:internal_procedure) } + validates :replaced_by_procedure_id, presence: true, if: -> { closing_reason == Procedure.closing_reasons.fetch(:internal_procedure) } validates :path, presence: true, format: { with: /\A[a-z0-9_\-]{3,200}\z/ }, uniqueness: { scope: [:path, :closed_at, :hidden_at, :unpublished_at], case_sensitive: false } validates :duree_conservation_dossiers_dans_ds, allow_nil: false, diff --git a/spec/controllers/administrateurs/procedures_controller_spec.rb b/spec/controllers/administrateurs/procedures_controller_spec.rb index 8c3f651e3..72d2484e0 100644 --- a/spec/controllers/administrateurs/procedures_controller_spec.rb +++ b/spec/controllers/administrateurs/procedures_controller_spec.rb @@ -803,9 +803,10 @@ describe Administrateurs::ProceduresController, type: :controller do procedure.reload end - it 'closes the procedure without redirection to the new procedure in DS' do - expect(response).to redirect_to admin_procedure_path(procedure.id) - expect(flash[:notice]).to have_content 'Démarche close' + it 'does not close the procedure' do + expect(response).to redirect_to admin_procedure_close_path + expect(flash[:alert]).to have_content 'Le champ « Nouvelle démarche » doit être rempli' + expect(procedure.close?).to be_falsey expect(procedure.replaced_by_procedure).to eq(nil) end end