diff --git a/lib/features/search/search.js b/lib/features/search/search.js index a984b55fb..622530181 100644 --- a/lib/features/search/search.js +++ b/lib/features/search/search.js @@ -32,6 +32,9 @@ export default function search(items, pattern, options) { keys } = options; + // drop leading and trailing whitespace + pattern = pattern.trim(); + return items.flatMap((item, idx) => { const tokens = getTokens(item, pattern, keys); diff --git a/test/spec/features/search/searchSpec.js b/test/spec/features/search/searchSpec.js index e05b2f16c..bff32b3cc 100644 --- a/test/spec/features/search/searchSpec.js +++ b/test/spec/features/search/searchSpec.js @@ -264,6 +264,27 @@ describe('search', function() { expect(results[1].item).to.eql(items[1]); })); + + it('should search with whitespace', inject(function(search) { + + // given + const items = [ + { + title: 'bar foo bar' + } + ]; + + // when + const results = search(items, ' foo bar ', { + keys: [ + 'title' + ] + }); + + // then + expect(results).to.have.length(1); + })); + });