bypass Chrome "focus" event bugs and prevent Turbolinks from triggering

This commit is contained in:
Mike Greiling 2017-01-09 16:33:56 -06:00
parent 5ffbb5dee5
commit d2649bf8e3

View file

@ -112,13 +112,15 @@ require('vendor/fuzzaldrin-plus');
preloadFixtures('static/search_autocomplete.html.raw'); preloadFixtures('static/search_autocomplete.html.raw');
beforeEach(function() { beforeEach(function() {
loadFixtures('static/search_autocomplete.html.raw'); loadFixtures('static/search_autocomplete.html.raw');
return widget = new gl.SearchAutocomplete; widget = new gl.SearchAutocomplete;
// Prevent turbolinks from triggering within gl_dropdown
spyOn(window.Turbolinks, 'visit').and.returnValue(true);
}); });
it('should show Dashboard specific dropdown menu', function() { it('should show Dashboard specific dropdown menu', function() {
var list; var list;
addBodyAttributes(); addBodyAttributes();
mockDashboardOptions(); mockDashboardOptions();
widget.searchInput.focus(); widget.searchInput.triggerHandler('focus');
list = widget.wrap.find('.dropdown-menu').find('ul'); list = widget.wrap.find('.dropdown-menu').find('ul');
return assertLinks(list, dashboardIssuesPath, dashboardMRsPath); return assertLinks(list, dashboardIssuesPath, dashboardMRsPath);
}); });
@ -126,7 +128,7 @@ require('vendor/fuzzaldrin-plus');
var list; var list;
addBodyAttributes('group'); addBodyAttributes('group');
mockGroupOptions(); mockGroupOptions();
widget.searchInput.focus(); widget.searchInput.triggerHandler('focus');
list = widget.wrap.find('.dropdown-menu').find('ul'); list = widget.wrap.find('.dropdown-menu').find('ul');
return assertLinks(list, groupIssuesPath, groupMRsPath); return assertLinks(list, groupIssuesPath, groupMRsPath);
}); });
@ -134,7 +136,7 @@ require('vendor/fuzzaldrin-plus');
var list; var list;
addBodyAttributes('project'); addBodyAttributes('project');
mockProjectOptions(); mockProjectOptions();
widget.searchInput.focus(); widget.searchInput.triggerHandler('focus');
list = widget.wrap.find('.dropdown-menu').find('ul'); list = widget.wrap.find('.dropdown-menu').find('ul');
return assertLinks(list, projectIssuesPath, projectMRsPath); return assertLinks(list, projectIssuesPath, projectMRsPath);
}); });
@ -143,7 +145,7 @@ require('vendor/fuzzaldrin-plus');
addBodyAttributes('project'); addBodyAttributes('project');
mockProjectOptions(); mockProjectOptions();
widget.searchInput.val('help'); widget.searchInput.val('help');
widget.searchInput.focus(); widget.searchInput.triggerHandler('focus');
list = widget.wrap.find('.dropdown-menu').find('ul'); list = widget.wrap.find('.dropdown-menu').find('ul');
link = "a[href='" + projectIssuesPath + "/?assignee_id=" + userId + "']"; link = "a[href='" + projectIssuesPath + "/?assignee_id=" + userId + "']";
return expect(list.find(link).length).toBe(0); return expect(list.find(link).length).toBe(0);
@ -154,7 +156,7 @@ require('vendor/fuzzaldrin-plus');
addBodyAttributes(); addBodyAttributes();
mockDashboardOptions(true); mockDashboardOptions(true);
var submitSpy = spyOnEvent('form', 'submit'); var submitSpy = spyOnEvent('form', 'submit');
widget.searchInput.focus(); widget.searchInput.triggerHandler('focus');
widget.wrap.trigger($.Event('keydown', { which: DOWN })); widget.wrap.trigger($.Event('keydown', { which: DOWN }));
var enterKeyEvent = $.Event('keydown', { which: ENTER }); var enterKeyEvent = $.Event('keydown', { which: ENTER });
widget.searchInput.trigger(enterKeyEvent); widget.searchInput.trigger(enterKeyEvent);