Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/search_spec.js')
-rw-r--r--spec/frontend/search_spec.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/frontend/search_spec.js b/spec/frontend/search_spec.js
new file mode 100644
index 00000000000..af93fa88f72
--- /dev/null
+++ b/spec/frontend/search_spec.js
@@ -0,0 +1,42 @@
+import $ from 'jquery';
+import Api from '~/api';
+import Search from '~/pages/search/show/search';
+
+jest.mock('~/api');
+
+describe('Search', () => {
+ const fixturePath = 'search/show.html';
+ const searchTerm = 'some search';
+ const fillDropdownInput = dropdownSelector => {
+ const dropdownElement = document.querySelector(dropdownSelector).parentNode;
+ const inputElement = dropdownElement.querySelector('.dropdown-input-field');
+ inputElement.value = searchTerm;
+ return inputElement;
+ };
+
+ preloadFixtures(fixturePath);
+
+ beforeEach(() => {
+ loadFixtures(fixturePath);
+ new Search(); // eslint-disable-line no-new
+ });
+
+ it('requests groups from backend when filtering', () => {
+ jest.spyOn(Api, 'groups').mockImplementation(term => {
+ expect(term).toBe(searchTerm);
+ });
+
+ const inputElement = fillDropdownInput('.js-search-group-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');
+ });
+});