fix(administrateur): can delete administrateur with a discarded procedure with no dossier
This commit is contained in:
parent
9139bfbf48
commit
058350df53
2 changed files with 12 additions and 1 deletions
|
@ -47,7 +47,7 @@ class AdministrateurDeletionService
|
|||
|
||||
def delete_procedures_without_dossier
|
||||
procedures_without_dossier = owned_procedures.filter { _1.dossiers.empty? }
|
||||
procedures_without_dossier.each { _1.discard_and_keep_track!(super_admin) }
|
||||
procedures_without_dossier.each { |p| p.discard_and_keep_track!(super_admin) unless p.discarded? }
|
||||
procedures_without_dossier.each(&:purge_discarded)
|
||||
end
|
||||
|
||||
|
|
|
@ -48,6 +48,17 @@ describe AdministrateurDeletionService do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when admin has one discarded procedure without dossiers and only one admin' do
|
||||
let(:owned_procedure_without_dossier) { create(:procedure, service: owned_procedure_service, administrateurs: [admin]) }
|
||||
|
||||
before { owned_procedure_without_dossier.discard! }
|
||||
|
||||
it "deletes admin" do
|
||||
subject
|
||||
expect(Administrateur.find_by(id: admin.id)).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context "when there is a failure" do
|
||||
it 'rollbacks' do
|
||||
allow_any_instance_of(Service).to receive(:update).and_return(false)
|
||||
|
|
Loading…
Add table
Reference in a new issue