From 31b23745f887b803c431d82c1c3b85a4a627561d Mon Sep 17 00:00:00 2001 From: Eugene Burmakin Date: Sat, 26 Jul 2025 14:46:53 +0200 Subject: [PATCH] Add spec for no points selected. --- app/controllers/points_controller.rb | 7 +++++-- spec/requests/points_spec.rb | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/controllers/points_controller.rb b/app/controllers/points_controller.rb index 3c21bcdc..a78c97c4 100644 --- a/app/controllers/points_controller.rb +++ b/app/controllers/points_controller.rb @@ -18,11 +18,14 @@ class PointsController < ApplicationController end def bulk_destroy + point_ids = params[:point_ids]&.compact&.reject(&:blank?) + redirect_to points_url(preserved_params), alert: 'No points selected.', - status: :see_other and return if params[:point_ids].blank? + status: :see_other and return if point_ids.blank? + + current_user.tracked_points.where(id: point_ids).destroy_all - current_user.tracked_points.where(id: params[:point_ids].compact).destroy_all redirect_to points_url(preserved_params), notice: 'Points were successfully destroyed.', status: :see_other diff --git a/spec/requests/points_spec.rb b/spec/requests/points_spec.rb index 09b5d5c1..da70d5d0 100644 --- a/spec/requests/points_spec.rb +++ b/spec/requests/points_spec.rb @@ -63,5 +63,14 @@ RSpec.describe '/points', type: :request do expect(response).to redirect_to(points_url(start_at: '2021-01-01', end_at: '2021-01-02')) end + + context 'when no points are selected' do + it 'redirects to the points list' do + delete bulk_destroy_points_url, params: { point_ids: [] } + + expect(response).to redirect_to(points_url) + expect(flash[:alert]).to eq('No points selected.') + end + end end end