diff --git a/app/controllers/cabpools_controller.rb b/app/controllers/cabpools_controller.rb index fe11c16..138e1d6 100644 --- a/app/controllers/cabpools_controller.rb +++ b/app/controllers/cabpools_controller.rb @@ -151,7 +151,11 @@ def view_notification def approve_user user request = Request.find_by_user_id(user.id) if !user.cabpool.nil? - send_email_to_cabpool_users_on_member_leaving(user.cabpool.users.reject { |u| u.id == user.id } ,user) + if user.cabpool.users.length > 1 + send_email_to_cabpool_users_on_member_leaving(user.cabpool.users.reject { |u| u.id == user.id } ,user) + else + destroy user.cabpool + end end user.cabpool = request.cabpool user.status = 'approved' @@ -169,6 +173,12 @@ def approve_user user render 'request_accept' end + def destroy cabpool + cabpool.users.clear + cabpool.requests.clear + cabpool.destroy! + end + def send_email_to_admin_about_new_user joining_user if joining_user.cabpool.cabpool_type_id == 1 CabpoolMailer.admin_notifier_for_new_user(joining_user).deliver_now diff --git a/spec/controllers/cabpools_controller_spec.rb b/spec/controllers/cabpools_controller_spec.rb index 3b03586..5af6113 100644 --- a/spec/controllers/cabpools_controller_spec.rb +++ b/spec/controllers/cabpools_controller_spec.rb @@ -363,6 +363,7 @@ allow(user.cabpool).to receive(:id).and_return(1) allow(request).to receive(:approve_digest).and_return("ABCD") allow(request.cabpool.users).to receive(:count).and_return 2 + allow(request.cabpool).to receive(:destroy).and_return true get :approve_reject_handler, approve: "true", token: "ABCD", user: '1' expect(ActionMailer::Base.deliveries.size).to eq 2 expect(response).to render_template 'request_accept' @@ -386,6 +387,7 @@ allow(user.cabpool).to receive(:id).and_return(1) allow(request).to receive(:approve_digest).and_return("ABCD") allow(request.cabpool.users).to receive(:count).and_return 3 + allow(request.cabpool).to receive(:destroy).and_return true get :approve_reject_handler, approve: "true", token: "ABCD", user: '1' expect(ActionMailer::Base.deliveries.size).to eq 2 expect(response).to render_template 'request_accept'