diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 76e4db84f888a1506e34478d1e52481de8a1b52a..898e7826e3a9db3ae4af50b3890fb3e556e14346 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -74,7 +74,12 @@ def check_filters_presence! 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 + # The `in` param is a modifier of `search`. If it's present while the `search` + # param isn't, the finder won't use the `in` param. We consider this as a no + # filter scenario. + no_search_filter_set = params[:in].present? && params[:search].blank? + + @no_filters_set = (no_scalar_filters_set && no_array_filters_set) || no_search_filter_set return unless @no_filters_set diff --git a/spec/controllers/dashboard_controller_spec.rb b/spec/controllers/dashboard_controller_spec.rb index 2a34ac9f923aa43ed6da42a296bfbc6556b74765..aed310531e6e632669c8d653ea9d391be1be345d 100644 --- a/spec/controllers/dashboard_controller_spec.rb +++ b/spec/controllers/dashboard_controller_spec.rb @@ -111,22 +111,36 @@ it_behaves_like 'no filters are set' end - end - context "scalar filters" do - let(:params) { { author_id: user.id } } + context 'when in param is set but no search' do + let(:params) { { in: 'title' } } + it_behaves_like 'no filters are set' + end + end + + shared_examples_for 'filters are set' do it 'sets @no_filters_set to false' do expect(assigns[:no_filters_set]).to eq(false) end end + context "scalar filters" do + let(:params) { { author_id: user.id } } + + it_behaves_like 'filters are set' + end + context "array filters" do let(:params) { { label_name: ['bug'] } } - it 'sets @no_filters_set to false' do - expect(assigns[:no_filters_set]).to eq(false) - end + it_behaves_like 'filters are set' + end + + context 'search' do + let(:params) { { search: 'test' } } + + it_behaves_like 'filters are set' end end end