diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2017-03-28 23:34:39 +0000 |
---|---|---|
committer | Clement Ho <clemmakesapps@gmail.com> | 2017-03-28 23:34:39 +0000 |
commit | edb5dcdb0d83b46fc39777fbe1f39e020360f3d5 (patch) | |
tree | d0dca6f8ccb5da264d3254aa5ab863656fdb9be7 /spec/javascripts | |
parent | c82ddfe24a1a14596caf2f9ca4a6fdb521942f1c (diff) | |
download | gitlab-ce-edb5dcdb0d83b46fc39777fbe1f39e020360f3d5.tar.gz |
Remove duplicated tokens in issuable search bar
Diffstat (limited to 'spec/javascripts')
-rw-r--r-- | spec/javascripts/filtered_search/filtered_search_manager_spec.js | 14 | ||||
-rw-r--r-- | spec/javascripts/filtered_search/filtered_search_tokenizer_spec.js | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/spec/javascripts/filtered_search/filtered_search_manager_spec.js b/spec/javascripts/filtered_search/filtered_search_manager_spec.js index 848c7656a8d..5f7c05e9014 100644 --- a/spec/javascripts/filtered_search/filtered_search_manager_spec.js +++ b/spec/javascripts/filtered_search/filtered_search_manager_spec.js @@ -92,6 +92,20 @@ const FilteredSearchSpecHelper = require('../helpers/filtered_search_spec_helper manager.search(); }); + + it('removes duplicated tokens', (done) => { + tokensContainer.innerHTML = FilteredSearchSpecHelper.createTokensContainerHTML(` + ${FilteredSearchSpecHelper.createFilterVisualTokenHTML('label', '~bug')} + ${FilteredSearchSpecHelper.createFilterVisualTokenHTML('label', '~bug')} + `); + + spyOn(gl.utils, 'visitUrl').and.callFake((url) => { + expect(url).toEqual(`${defaultParams}&label_name[]=bug`); + done(); + }); + + manager.search(); + }); }); describe('handleInputPlaceholder', () => { diff --git a/spec/javascripts/filtered_search/filtered_search_tokenizer_spec.js b/spec/javascripts/filtered_search/filtered_search_tokenizer_spec.js index a91801cfc89..cabbc694ec4 100644 --- a/spec/javascripts/filtered_search/filtered_search_tokenizer_spec.js +++ b/spec/javascripts/filtered_search/filtered_search_tokenizer_spec.js @@ -122,6 +122,14 @@ require('~/filtered_search/filtered_search_tokenizer'); expect(results.lastToken).toBe('std::includes'); expect(results.searchToken).toBe('std::includes'); }); + + it('removes duplicated values', () => { + const results = gl.FilteredSearchTokenizer.processTokens('label:~foo label:~foo'); + expect(results.tokens.length).toBe(1); + expect(results.tokens[0].key).toBe('label'); + expect(results.tokens[0].value).toBe('foo'); + expect(results.tokens[0].symbol).toBe('~'); + }); }); }); })(); |