diff --git a/app/models/user.rb b/app/models/user.rb index 9f95d1075..4838da20d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -101,6 +101,10 @@ class User < ApplicationRecord end def delete_and_keep_track_dossiers(administration) + if !can_be_deleted? + raise "Cannot delete this user because instruction has started for some dossiers" + end + if can_be_deleted? dossiers.each do |dossier| dossier.delete_and_keep_track(administration) diff --git a/lib/tasks/support.rake b/lib/tasks/support.rake index 7facf3e2d..3ad4aee42 100644 --- a/lib/tasks/support.rake +++ b/lib/tasks/support.rake @@ -15,10 +15,6 @@ namespace :support do user = User.find_by!(email: user_email) administration = Administration.find_by!(email: administration_email) - if !user.can_be_deleted? - fail "Cannot delete this user because instruction has started for some dossiers" - end - user.delete_and_keep_track_dossiers(administration) user.destroy end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 22a742584..7181878ad 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -232,11 +232,8 @@ describe User, type: :model do context 'avec un dossier en instruction' do let!(:dossier_en_instruction) { create(:dossier, :en_instruction, user: user) } - it 'ne supprime rien si dossier en instruction' do - user.delete_and_keep_track_dossiers(administration) - - expect(Dossier.find_by(id: dossier_en_instruction.id)).to be_present - expect(User.find_by(id: user.id)).to be_present + it 'raises' do + expect { user.delete_and_keep_track_dossiers(administration) }.to raise_error end end