fix(services): can destroy with discarded procedures

Closes #7626
This commit is contained in:
Colin Darie 2022-08-02 11:44:47 +02:00
parent c94b3e9e52
commit 4284f14ad8
2 changed files with 15 additions and 0 deletions

View file

@ -64,6 +64,7 @@ module Administrateurs
flash[:alert] = message
redirect_to admin_services_path(procedure_id: params[:procedure_id])
else
service_to_destroy.procedures.with_discarded.discarded.update(service: nil)
service_to_destroy.destroy
redirect_to admin_services_path(procedure_id: params[:procedure_id]),
notice: "#{service_to_destroy.nom} est supprimé"

View file

@ -135,5 +135,19 @@ describe Administrateurs::ServicesController, type: :controller do
it { expect(flash.notice).to be_nil }
it { expect(response).to redirect_to(admin_services_path(procedure_id: 12)) }
end
context "when a service has some related discarded procedures" do
let!(:procedure) { create(:procedure, :discarded, service: service) }
before do
sign_in(admin.user)
delete :destroy, params: { id: service.id, procedure_id: procedure.id }
end
it { expect { service.reload }.to raise_error(ActiveRecord::RecordNotFound) }
it { expect(flash.alert).to be_nil }
it { expect(flash.notice).to eq("#{service.nom} est supprimé") }
it { expect(procedure.reload.service_id).to be_nil }
end
end
end