From f7b6361124c3abb4380035eaf3b7625433686543 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Wed, 14 Dec 2016 21:51:33 -0600 Subject: [PATCH] Add jasmine tests for filtered search dropdown manager --- ...ltered_search_dropdown_manager_spec.js.es6 | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 spec/javascripts/filtered_search/filtered_search_dropdown_manager_spec.js.es6 diff --git a/spec/javascripts/filtered_search/filtered_search_dropdown_manager_spec.js.es6 b/spec/javascripts/filtered_search/filtered_search_dropdown_manager_spec.js.es6 new file mode 100644 index 00000000000..11765d7d7ea --- /dev/null +++ b/spec/javascripts/filtered_search/filtered_search_dropdown_manager_spec.js.es6 @@ -0,0 +1,57 @@ +//= require filtered_search/filtered_search_tokenizer +//= require filtered_search/filtered_search_dropdown_manager + +(() => { + describe('Filtered Search Dropdown Manager', () => { + describe('addWordToInput', () => { + describe('add word and when lastToken is an empty object', () => { + function getInput() { + return document.querySelector('.filtered-search'); + } + + beforeEach(() => { + spyOn(gl.FilteredSearchTokenizer, 'processTokens') + .and.callFake(query => ({ + lastToken: {} + }) + ); + + const input = document.createElement('input'); + input.classList.add('filtered-search'); + document.body.appendChild(input); + + expect(input.value).toBe(''); + }); + + afterEach(() => { + document.querySelector('.filtered-search').outerHTML = ''; + }); + + it('should add word', () => { + gl.FilteredSearchDropdownManager.addWordToInput('firstWord'); + expect(getInput().value).toBe('firstWord'); + }); + + it('should not add space before first word', () => { + gl.FilteredSearchDropdownManager.addWordToInput('firstWord', true); + expect(getInput().value).toBe('firstWord'); + }); + + it('should not add space before second word by default', () => { + gl.FilteredSearchDropdownManager.addWordToInput('firstWord'); + expect(getInput().value).toBe('firstWord'); + gl.FilteredSearchDropdownManager.addWordToInput('secondWord'); + expect(getInput().value).toBe('firstWordsecondWord'); + }); + + it('should add space before new word when addSpace is passed', () => { + expect(getInput().value).toBe(''); + gl.FilteredSearchDropdownManager.addWordToInput('firstWord'); + expect(getInput().value).toBe('firstWord'); + gl.FilteredSearchDropdownManager.addWordToInput('secondWord', true); + expect(getInput().value).toBe('firstWord secondWord'); + }); + }); + }); + }); +})();