diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index f94da77609fab256382b4b606baafb588e488dc6..76e4db84f888a1506e34478d1e52481de8a1b52a 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -71,8 +71,8 @@ def set_show_full_reference end def check_filters_presence! - no_scalar_filters_set = finder_type.scalar_params.none? { |k| params.key?(k) } - no_array_filters_set = finder_type.array_params.none? { |k, _| params.key?(k) } + no_scalar_filters_set = finder_type.scalar_params.none? { |k| params[k].present? } + no_array_filters_set = finder_type.array_params.none? { |k, _| params[k].present? } @no_filters_set = no_scalar_filters_set && no_array_filters_set diff --git a/spec/controllers/dashboard_controller_spec.rb b/spec/controllers/dashboard_controller_spec.rb index dbeac9fd240807e8c513027c9002178b7606e442..2a34ac9f923aa43ed6da42a296bfbc6556b74765 100644 --- a/spec/controllers/dashboard_controller_spec.rb +++ b/spec/controllers/dashboard_controller_spec.rb @@ -98,8 +98,18 @@ context "no filters" do let(:params) { {} } - it 'sets @no_filters_set to false' do - expect(assigns[:no_filters_set]).to eq(true) + shared_examples_for 'no filters are set' do + it 'sets @no_filters_set to true' do + expect(assigns[:no_filters_set]).to eq(true) + end + end + + it_behaves_like 'no filters are set' + + context 'when key is present but value is not' do + let(:params) { { author_username: nil } } + + it_behaves_like 'no filters are set' end end