diff --git a/lib/search.rb b/lib/search.rb index 377de504d82..91131dbffb6 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -151,6 +151,7 @@ class Search end attr_accessor :term + attr_reader :clean_term def initialize(term, opts=nil) @opts = opts || {} @@ -163,6 +164,8 @@ class Search # Removes any zero-width characters from search terms term.to_s.gsub!(/[\u200B-\u200D\uFEFF]/, '') + @clean_term = term.to_s.dup + term = process_advanced_search!(term) if term.present? @@ -179,7 +182,7 @@ class Search @limit = Search.per_filter end - @results = GroupedSearchResults.new(@opts[:type_filter], term, @search_context, @include_blurbs, @blurb_length) + @results = GroupedSearchResults.new(@opts[:type_filter], clean_term, @search_context, @include_blurbs, @blurb_length) end def valid? diff --git a/spec/components/search_spec.rb b/spec/components/search_spec.rb index 5ab747be538..62a22f95cb1 100644 --- a/spec/components/search_spec.rb +++ b/spec/components/search_spec.rb @@ -65,11 +65,10 @@ describe Search do expect(term == 'capybara').to eq(false) - search = Search.new(term) - search.execute - + search = Search.new(term) expect(search.valid?).to eq(true) expect(search.term).to eq('capybara') + expect(search.clean_term).to eq('capybara') end it 'does not search when the search term is too small' do