diff options
Diffstat (limited to 'spec/frontend/filtered_search')
6 files changed, 47 insertions, 25 deletions
diff --git a/spec/frontend/filtered_search/components/recent_searches_dropdown_content_spec.js b/spec/frontend/filtered_search/components/recent_searches_dropdown_content_spec.js index f1cff02261d..897ad5ee2bf 100644 --- a/spec/frontend/filtered_search/components/recent_searches_dropdown_content_spec.js +++ b/spec/frontend/filtered_search/components/recent_searches_dropdown_content_spec.js @@ -1,6 +1,6 @@ import { shallowMount } from '@vue/test-utils'; -import eventHub from '~/filtered_search/event_hub'; import RecentSearchesDropdownContent from '~/filtered_search/components/recent_searches_dropdown_content.vue'; +import eventHub from '~/filtered_search/event_hub'; import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; describe('Recent Searches Dropdown Content', () => { diff --git a/spec/frontend/filtered_search/dropdown_user_spec.js b/spec/frontend/filtered_search/dropdown_user_spec.js index c1c09ea5d3e..0e2d2ee6c09 100644 --- a/spec/frontend/filtered_search/dropdown_user_spec.js +++ b/spec/frontend/filtered_search/dropdown_user_spec.js @@ -1,4 +1,7 @@ import DropdownUtils from '~/filtered_search/dropdown_utils'; +// TODO: Moving this line up throws an error about `FilteredSearchDropdown` +// being undefined in test. See gitlab-org/gitlab#321476 for more info. +// eslint-disable-next-line import/order import DropdownUser from '~/filtered_search/dropdown_user'; import FilteredSearchTokenizer from '~/filtered_search/filtered_search_tokenizer'; import IssuableFilteredTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; diff --git a/spec/frontend/filtered_search/filtered_search_manager_spec.js b/spec/frontend/filtered_search/filtered_search_manager_spec.js index def0aa14349..465e1ee1ef1 100644 --- a/spec/frontend/filtered_search/filtered_search_manager_spec.js +++ b/spec/frontend/filtered_search/filtered_search_manager_spec.js @@ -1,16 +1,16 @@ import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager'; import FilteredSearchSpecHelper from 'helpers/filtered_search_spec_helper'; -import RecentSearchesService from '~/filtered_search/services/recent_searches_service'; -import RecentSearchesServiceError from '~/filtered_search/services/recent_searches_service_error'; -import RecentSearchesRoot from '~/filtered_search/recent_searches_root'; -import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; import DropdownUtils from '~/filtered_search/dropdown_utils'; -import FilteredSearchVisualTokens from '~/filtered_search/filtered_search_visual_tokens'; import FilteredSearchDropdownManager from '~/filtered_search/filtered_search_dropdown_manager'; +import FilteredSearchVisualTokens from '~/filtered_search/filtered_search_visual_tokens'; +import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; +import RecentSearchesRoot from '~/filtered_search/recent_searches_root'; +import RecentSearchesService from '~/filtered_search/services/recent_searches_service'; +import RecentSearchesServiceError from '~/filtered_search/services/recent_searches_service_error'; +import * as commonUtils from '~/lib/utils/common_utils'; import { BACKSPACE_KEY_CODE, DELETE_KEY_CODE } from '~/lib/utils/keycodes'; import { visitUrl } from '~/lib/utils/url_utility'; -import * as commonUtils from '~/lib/utils/common_utils'; jest.mock('~/lib/utils/url_utility', () => ({ ...jest.requireActual('~/lib/utils/url_utility'), diff --git a/spec/frontend/filtered_search/filtered_search_tokenizer_spec.js b/spec/frontend/filtered_search/filtered_search_tokenizer_spec.js index dec03e5ab93..b6a95eb55c7 100644 --- a/spec/frontend/filtered_search/filtered_search_tokenizer_spec.js +++ b/spec/frontend/filtered_search/filtered_search_tokenizer_spec.js @@ -1,5 +1,5 @@ -import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; import FilteredSearchTokenizer from '~/filtered_search/filtered_search_tokenizer'; +import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; describe('Filtered Search Tokenizer', () => { const allowedKeys = IssuableFilteredSearchTokenKeys.getKeys(); diff --git a/spec/frontend/filtered_search/recent_searches_root_spec.js b/spec/frontend/filtered_search/recent_searches_root_spec.js index 6bb9e68d591..fa3267c98a1 100644 --- a/spec/frontend/filtered_search/recent_searches_root_spec.js +++ b/spec/frontend/filtered_search/recent_searches_root_spec.js @@ -1,32 +1,51 @@ -import Vue from 'vue'; +import { setHTMLFixture } from 'helpers/fixtures'; import RecentSearchesRoot from '~/filtered_search/recent_searches_root'; -jest.mock('vue'); +const containerId = 'test-container'; +const dropdownElementId = 'test-dropdown-element'; describe('RecentSearchesRoot', () => { describe('render', () => { - let recentSearchesRoot; - let data; - let template; + let recentSearchesRootMockInstance; + let vm; + let containerEl; beforeEach(() => { - recentSearchesRoot = { + setHTMLFixture(` + <div id="${containerId}"> + <div id="${dropdownElementId}"></div> + </div> + `); + + containerEl = document.getElementById(containerId); + + recentSearchesRootMockInstance = { store: { - state: 'state', + state: { + recentSearches: ['foo', 'bar', 'qux'], + isLocalStorageAvailable: true, + allowedKeys: ['test'], + }, }, + wrapperElement: document.getElementById(dropdownElementId), }; - Vue.mockImplementation((options) => { - ({ data, template } = options); - }); + RecentSearchesRoot.prototype.render.call(recentSearchesRootMockInstance); + vm = recentSearchesRootMockInstance.vm; - RecentSearchesRoot.prototype.render.call(recentSearchesRoot); + return vm.$nextTick(); }); - it('should instantiate Vue', () => { - expect(Vue).toHaveBeenCalled(); - expect(data()).toBe(recentSearchesRoot.store.state); - expect(template).toContain(':is-local-storage-available="isLocalStorageAvailable"'); + afterEach(() => { + vm.$destroy(); + }); + + it('should render the recent searches', () => { + const { recentSearches } = recentSearchesRootMockInstance.store.state; + + recentSearches.forEach((recentSearch) => { + expect(containerEl.textContent).toContain(recentSearch); + }); }); }); }); diff --git a/spec/frontend/filtered_search/visual_token_value_spec.js b/spec/frontend/filtered_search/visual_token_value_spec.js index 2a76c4a27df..a2082271efe 100644 --- a/spec/frontend/filtered_search/visual_token_value_spec.js +++ b/spec/frontend/filtered_search/visual_token_value_spec.js @@ -1,10 +1,10 @@ import { escape } from 'lodash'; -import { TEST_HOST } from 'helpers/test_constants'; import FilteredSearchSpecHelper from 'helpers/filtered_search_spec_helper'; +import { TEST_HOST } from 'helpers/test_constants'; +import DropdownUtils from '~/filtered_search//dropdown_utils'; import VisualTokenValue from '~/filtered_search/visual_token_value'; import AjaxCache from '~/lib/utils/ajax_cache'; import UsersCache from '~/lib/utils/users_cache'; -import DropdownUtils from '~/filtered_search//dropdown_utils'; describe('Filtered Search Visual Tokens', () => { const findElements = (tokenElement) => { |