From b969c1717f88b53001a0106ad2891716cccf5ddc Mon Sep 17 00:00:00 2001 From: Thibaut Poullain Date: Tue, 22 Oct 2024 16:36:50 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fix=20|=20add=20test=20?= =?UTF-8?q?to=20the=20minimal=20admin=20presence=20for=20procedure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/models/procedure_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index a5adf5280..ba22d25b1 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -210,6 +210,20 @@ describe Procedure do it { is_expected.not_to allow_value([]).for(:administrateurs) } end + context 'before_remove callback for minimal administrator presence' do + let(:procedure) { create(:procedure) } + + it 'raises an error when trying to remove the last administrateur' do + expect(procedure.administrateurs.count).to eq(1) + expect { + procedure.administrateurs.destroy(procedure.administrateurs.first) + }.to raise_error( + ActiveRecord::RecordNotDestroyed, + "Cannot remove the last administrateur of procedure #{procedure.libelle} (#{procedure.id})" + ) + end + end + context 'juridique' do it { is_expected.not_to allow_value(nil).on(:publication).for(:cadre_juridique) } it { is_expected.to allow_value('text').on(:publication).for(:cadre_juridique) }