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:
commit
cc0f0b7a61
2 changed files with 16 additions and 12 deletions
|
@ -118,7 +118,7 @@ class Administrateur < ApplicationRecord
|
||||||
old_services.each do |old_service|
|
old_services.each do |old_service|
|
||||||
corresponding_service = new_service_by_nom[old_service.nom]
|
corresponding_service = new_service_by_nom[old_service.nom]
|
||||||
if corresponding_service.present?
|
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
|
old_service.destroy
|
||||||
else
|
else
|
||||||
old_service.update_column(:administrateur_id, id)
|
old_service.update_column(:administrateur_id, id)
|
||||||
|
|
|
@ -120,22 +120,26 @@ describe Administrateur, type: :model do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when both admins have a service with the same name' do
|
context 'when both admins have a service with the same name' do
|
||||||
let(:service_1) { create(:service, nom: 'S', administrateur: old_admin) }
|
let!(:service_1) { create(:service, nom: 'S', administrateur: old_admin) }
|
||||||
let(:service_2) { create(:service, nom: 'S', administrateur: new_admin) }
|
let!(:service_2) { create(:service, nom: 'S', administrateur: new_admin) }
|
||||||
let(:procedure_1) { create(:procedure, service: service_1) }
|
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
|
|
||||||
|
|
||||||
it 'removes the service from the old one' do
|
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(old_admin.services).to be_empty
|
||||||
expect(service_2.procedures).to include(procedure_1)
|
expect(service_2.procedures).to include(procedure_1)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context 'when the old admin has an instructeur' do
|
context 'when the old admin has an instructeur' do
|
||||||
|
|
Loading…
Add table
Reference in a new issue