diff options
Diffstat (limited to 'spec/frontend/search_spec.js')
-rw-r--r-- | spec/frontend/search_spec.js | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/spec/frontend/search_spec.js b/spec/frontend/search_spec.js index af93fa88f72..1573365538c 100644 --- a/spec/frontend/search_spec.js +++ b/spec/frontend/search_spec.js @@ -1,8 +1,10 @@ import $ from 'jquery'; import Api from '~/api'; import Search from '~/pages/search/show/search'; +import setHighlightClass from '~/pages/search/show/highlight_blob_search_result'; jest.mock('~/api'); +jest.mock('~/pages/search/show/highlight_blob_search_result'); describe('Search', () => { const fixturePath = 'search/show.html'; @@ -16,27 +18,41 @@ describe('Search', () => { preloadFixtures(fixturePath); - beforeEach(() => { - loadFixtures(fixturePath); - new Search(); // eslint-disable-line no-new + describe('constructor side effects', () => { + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('highlights lines with search terms in blob search results', () => { + new Search(); // eslint-disable-line no-new + + expect(setHighlightClass).toHaveBeenCalled(); + }); }); - it('requests groups from backend when filtering', () => { - jest.spyOn(Api, 'groups').mockImplementation(term => { - expect(term).toBe(searchTerm); + describe('dropdown behavior', () => { + beforeEach(() => { + loadFixtures(fixturePath); + new Search(); // eslint-disable-line no-new }); - const inputElement = fillDropdownInput('.js-search-group-dropdown'); + it('requests groups from backend when filtering', () => { + jest.spyOn(Api, 'groups').mockImplementation(term => { + expect(term).toBe(searchTerm); + }); - $(inputElement).trigger('input'); - }); + const inputElement = fillDropdownInput('.js-search-group-dropdown'); - it('requests projects from backend when filtering', () => { - jest.spyOn(Api, 'projects').mockImplementation(term => { - expect(term).toBe(searchTerm); + $(inputElement).trigger('input'); }); - const inputElement = fillDropdownInput('.js-search-project-dropdown'); - $(inputElement).trigger('input'); + it('requests projects from backend when filtering', () => { + jest.spyOn(Api, 'projects').mockImplementation(term => { + expect(term).toBe(searchTerm); + }); + const inputElement = fillDropdownInput('.js-search-project-dropdown'); + + $(inputElement).trigger('input'); + }); }); }); |