From 511c1f22868e50ab057906b2ff21e108a5cb2870 Mon Sep 17 00:00:00 2001 From: Patrick Perkins Date: Thu, 5 Dec 2024 13:44:21 -0500 Subject: [PATCH] check for present query when appending boolean params --- lib/blacklight/solr/request.rb | 2 +- spec/models/blacklight/solr/request_spec.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/blacklight/solr/request.rb b/lib/blacklight/solr/request.rb index cb85a3d255..1c10831bd3 100644 --- a/lib/blacklight/solr/request.rb +++ b/lib/blacklight/solr/request.rb @@ -36,7 +36,7 @@ def append_boolean_query(bool_operator, query) self[:json][:query] ||= { bool: { bool_operator => [] } } self[:json][:query][:bool][bool_operator] ||= [] - if self['q'] + if self['q'].present? self[:json][:query][:bool][:must] ||= [] self[:json][:query][:bool][:must] << self['q'] delete 'q' diff --git a/spec/models/blacklight/solr/request_spec.rb b/spec/models/blacklight/solr/request_spec.rb index 2917355b47..8b03ad318e 100644 --- a/spec/models/blacklight/solr/request_spec.rb +++ b/spec/models/blacklight/solr/request_spec.rb @@ -64,5 +64,12 @@ expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('some query', 'also required') end + + it 'filters out empty query' do + subject['q'] = "" + subject.append_boolean_query :must, 'present query' + + expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('present query') + end end end