diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-12 18:12:08 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-12 18:12:08 +0300 |
commit | 13f15365a344255ded8b3bf6586716b0963be440 (patch) | |
tree | 48b5290c7f84fab4e79577b1d463798feaa4257f /spec/frontend/analytics | |
parent | 57a3a42c88f6e7dbcfd388a5c83302f0bb666023 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/analytics')
-rw-r--r-- | spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js b/spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js index 36b81b3eb28..5d681c7da4f 100644 --- a/spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js +++ b/spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js @@ -2,6 +2,7 @@ import { GlDropdown, GlDropdownItem } from '@gitlab/ui'; import { mountExtended } from 'helpers/vue_test_utils_helper'; import { stubComponent } from 'helpers/stub_component'; import { TEST_HOST } from 'helpers/test_constants'; +import waitForPromises from 'helpers/wait_for_promises'; import ProjectsDropdownFilter from '~/analytics/shared/components/projects_dropdown_filter.vue'; import getProjects from '~/analytics/shared/graphql/projects.query.graphql'; @@ -65,7 +66,7 @@ describe('ProjectsDropdownFilter component', () => { const createWithMockDropdown = (props) => { createComponent(props, { GlDropdown: MockGlDropdown }); - return wrapper.vm.$nextTick(); + return waitForPromises(); }; afterEach(() => { @@ -73,6 +74,7 @@ describe('ProjectsDropdownFilter component', () => { }); const findHighlightedItems = () => wrapper.findByTestId('vsa-highlighted-items'); + const findUnhighlightedItems = () => wrapper.findByTestId('vsa-default-items'); const findHighlightedItemsTitle = () => wrapper.findByText('Selected'); const findClearAllButton = () => wrapper.findByText('Clear all'); @@ -197,6 +199,24 @@ describe('ProjectsDropdownFilter component', () => { }); }); + describe('with a selected project and search term', () => { + beforeEach(async () => { + await createWithMockDropdown({ multiSelect: true }); + + selectDropdownItemAtIndex(0); + wrapper.setData({ searchTerm: 'this is a very long search string' }); + }); + + it('renders the highlighted items', async () => { + expect(findUnhighlightedItems().findAll('li').length).toBe(1); + }); + + it('hides the unhighlighted items that do not match the string', async () => { + expect(findUnhighlightedItems().findAll('li').length).toBe(1); + expect(findUnhighlightedItems().text()).toContain('No matching results'); + }); + }); + describe('when passed an array of defaultProject as prop', () => { beforeEach(() => { createComponent({ |