diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 485ca86c8..11a2e6e09 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -17,7 +17,7 @@ class Procedure < ApplicationRecord has_many :assign_to, dependent: :destroy has_many :administrateurs_procedures - has_many :administrateurs, through: :administrateurs_procedures + has_many :administrateurs, through: :administrateurs_procedures, after_remove: -> (procedure, _admin) { procedure.validate! } has_many :gestionnaires, through: :assign_to has_one :initiated_mail, class_name: "Mails::InitiatedMail", dependent: :destroy @@ -57,6 +57,7 @@ class Procedure < ApplicationRecord validates :libelle, presence: true, allow_blank: false, allow_nil: false validates :description, presence: true, allow_blank: false, allow_nil: false + validates :administrateurs, presence: true validate :check_juridique validates :path, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, uniqueness: { scope: :aasm_state, case_sensitive: false }, presence: true, allow_blank: false, allow_nil: true # FIXME: remove duree_conservation_required flag once all procedures are converted to the new style diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 6652891bc..c907f88a9 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -168,6 +168,10 @@ describe Procedure do it { is_expected.to allow_value('URRSAF').for(:organisation) } end + context 'administrateurs' do + it { is_expected.not_to allow_value([]).for(:administrateurs) } + end + context 'juridique' do it { is_expected.not_to allow_value(nil).for(:cadre_juridique) } it { is_expected.to allow_value('text').for(:cadre_juridique) }