From a413d2fa9c8a73f841e3ea18033d2e1be230c19a Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Fri, 7 Apr 2023 16:10:10 +0200 Subject: [PATCH] fix(admin): can delete an admin without published procedure --- app/models/administrateur.rb | 2 ++ spec/models/administrateur_spec.rb | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index ceaa23db2..0b7b81cfe 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -83,6 +83,8 @@ class Administrateur < ApplicationRecord end procedures.with_discarded.each do |procedure| + next if procedure.service.nil? + next_administrateur = procedure.administrateurs.where.not(id: self.id).first procedure.service.update(administrateur: next_administrateur) end diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 56283e67f..1686f6fce 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -60,6 +60,15 @@ describe Administrateur, type: :model do expect(Service.find_by(id: procedure.service.id)).not_to be_nil expect(Administrateur.find_by(id: administrateur.id)).to be_nil end + + context "proedure without service" do + let!(:procedure) { create(:procedure, :draft, administrateurs: [administrateur, autre_administrateur]) } + + it "delete procedure without service" do + administrateur.delete_and_transfer_services + expect(Administrateur.find_by(id: administrateur.id)).to be_nil + end + end end describe '#merge' do