diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2017-01-31 00:02:19 +0300 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-02-07 01:38:31 +0300 |
commit | e369323d2e922d695f303378b4a9fbc88c6bee0b (patch) | |
tree | 539fcd23339acdccac2c46139d673b5c59644668 /spec | |
parent | 96baf2bc4f0f6177badd61e59f5a0434dd12f7ac (diff) |
Fix filtered search user autocomplete for gitlab instances that are hosted on a subdirectory
Diffstat (limited to 'spec')
-rw-r--r-- | spec/javascripts/filtered_search/dropdown_user_spec.js.es6 | 35 | ||||
-rw-r--r-- | spec/javascripts/project_title_spec.js | 15 | ||||
-rw-r--r-- | spec/javascripts/search_autocomplete_spec.js | 15 |
3 files changed, 55 insertions, 10 deletions
diff --git a/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 b/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 index 10a316f31b4..f4b0d60db34 100644 --- a/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 +++ b/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 @@ -36,5 +36,40 @@ require('~/filtered_search/dropdown_user'); expect(dropdownUser.getSearchInput()).toBe('larry boy'); }); }); + + describe('config droplabAjaxFilter\'s endpoint', () => { + beforeEach(() => { + spyOn(gl.FilteredSearchDropdown.prototype, 'constructor').and.callFake(() => {}); + spyOn(gl.DropdownUser.prototype, 'getProjectId').and.callFake(() => {}); + }); + + it('should return endpoint', () => { + window.gon = { + relative_url_root: '', + }; + const dropdown = new gl.DropdownUser(); + + expect(dropdown.config.droplabAjaxFilter.endpoint).toBe('/autocomplete/users.json'); + }); + + it('should return endpoint when relative_url_root is undefined', () => { + const dropdown = new gl.DropdownUser(); + + expect(dropdown.config.droplabAjaxFilter.endpoint).toBe('/autocomplete/users.json'); + }); + + it('should return endpoint with relative url when available', () => { + window.gon = { + relative_url_root: '/gitlab_directory', + }; + const dropdown = new gl.DropdownUser(); + + expect(dropdown.config.droplabAjaxFilter.endpoint).toBe('/gitlab_directory/autocomplete/users.json'); + }); + + afterEach(() => { + window.gon = {}; + }); + }); }); })(); diff --git a/spec/javascripts/project_title_spec.js b/spec/javascripts/project_title_spec.js index e0b52f767e4..bfe3d2df79d 100644 --- a/spec/javascripts/project_title_spec.js +++ b/spec/javascripts/project_title_spec.js @@ -9,19 +9,20 @@ require('~/project_select'); require('~/project'); (function() { - window.gon || (window.gon = {}); - - window.gon.api_version = 'v3'; - describe('Project Title', function() { preloadFixtures('static/project_title.html.raw'); loadJSONFixtures('projects.json'); beforeEach(function() { loadFixtures('static/project_title.html.raw'); + + window.gon = {}; + window.gon.api_version = 'v3'; + return this.project = new Project(); }); - return describe('project list', function() { + + describe('project list', function() { var fakeAjaxResponse = function fakeAjaxResponse(req) { var d; expect(req.url).toBe('/api/v3/projects.json?simple=true'); @@ -48,5 +49,9 @@ require('~/project'); return expect($('.header-content').hasClass('open')).toBe(false); }); }); + + afterEach(() => { + window.gon = {}; + }); }); }).call(this); diff --git a/spec/javascripts/search_autocomplete_spec.js b/spec/javascripts/search_autocomplete_spec.js index c79e30e9481..9572b52ec1e 100644 --- a/spec/javascripts/search_autocomplete_spec.js +++ b/spec/javascripts/search_autocomplete_spec.js @@ -14,11 +14,6 @@ require('vendor/fuzzaldrin-plus'); userId = 1; - window.gon || (window.gon = {}); - - window.gon.current_user_id = userId; - window.gon.current_username = userName; - dashboardIssuesPath = '/dashboard/issues'; dashboardMRsPath = '/dashboard/merge_requests'; @@ -117,6 +112,16 @@ require('vendor/fuzzaldrin-plus'); widget = new gl.SearchAutocomplete; // Prevent turbolinks from triggering within gl_dropdown spyOn(window.gl.utils, 'visitUrl').and.returnValue(true); + + window.gon = {}; + window.gon.current_user_id = userId; + window.gon.current_username = userName; + + return widget = new gl.SearchAutocomplete; + }); + + afterEach(function() { + window.gon = {}; }); it('should show Dashboard specific dropdown menu', function() { var list; |