diff --git a/app/models/search_builder.rb b/app/models/search_builder.rb index 1851854ce..dcc2a2391 100644 --- a/app/models/search_builder.rb +++ b/app/models/search_builder.rb @@ -106,7 +106,7 @@ def process_is(value, op) end def substitute_special_chars(value, _) - value.gsub(/[:?]/, " ") rescue value + value.gsub(/([:?]|\(\))/, " ") rescue value end def no_journals(solr_parameters) diff --git a/spec/models/search_builder_spec.rb b/spec/models/search_builder_spec.rb index 9123bfcbf..2eceb7a6c 100644 --- a/spec/models/search_builder_spec.rb +++ b/spec/models/search_builder_spec.rb @@ -183,6 +183,14 @@ # @see BL-1301 for ref. Basically Solr treats ? as a special character. expect(subject.substitute_special_chars("foo bar?", nil)).to eq("foo bar ") end + + it "substitutes empty parens '()' " do + expect(subject.substitute_special_chars("foo () bar", nil)).to eq("foo bar") + end + + it "does not substitutes parens containing values " do + expect(subject.substitute_special_chars("foo (bar) baz", nil)).to eq("foo (bar) baz") + end end describe "#blacklight_params" do