Merge pull request #8856 from mfo/US/merge.administrateur

bug(administrateur.merge): la fusion de compte entre admin devrait aussi dissocier les services des procedures supprimées
This commit is contained in:
mfo 2023-04-04 14:37:53 +00:00 committed by GitHub
commit cc0f0b7a61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 12 deletions

View file

@ -118,7 +118,7 @@ class Administrateur < ApplicationRecord
old_services.each do |old_service|
corresponding_service = new_service_by_nom[old_service.nom]
if corresponding_service.present?
old_service.procedures.update_all(service_id: corresponding_service.id)
old_service.procedures.with_discarded.update_all(service_id: corresponding_service.id)
old_service.destroy
else
old_service.update_column(:administrateur_id, id)

View file

@ -120,22 +120,26 @@ describe Administrateur, type: :model do
end
context 'when both admins have a service with the same name' do
let(:service_1) { create(:service, nom: 'S', administrateur: old_admin) }
let(:service_2) { create(:service, nom: 'S', administrateur: new_admin) }
let(:procedure_1) { create(:procedure, service: service_1) }
before do
service_1
service_2
procedure_1
subject
[new_admin, old_admin, service_2].map(&:reload)
end
let!(:service_1) { create(:service, nom: 'S', administrateur: old_admin) }
let!(:service_2) { create(:service, nom: 'S', administrateur: new_admin) }
let!(:procedure_1) { create(:procedure, service: service_1) }
it 'removes the service from the old one' do
subject
[new_admin, old_admin, service_2].map(&:reload)
expect(old_admin.services).to be_empty
expect(service_2.procedures).to include(procedure_1)
end
context 'and a discarded procedure use this service' do
let!(:procedure_1) { create(:procedure, :discarded, service: service_1) }
let!(:procedure_2) { create(:procedure, :discarded, service: service_1) }
it 'transfers old service to targeted_administrateur' do
expect { subject }.not_to raise_error
end
end
end
context 'when the old admin has an instructeur' do