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/sidebar/components')
-rw-r--r--spec/frontend/search/sidebar/components/app_spec.js9
-rw-r--r--spec/frontend/search/sidebar/components/archived_filter_spec.js42
-rw-r--r--spec/frontend/search/sidebar/components/issues_filters_spec.js4
-rw-r--r--spec/frontend/search/sidebar/components/merge_requests_filters_spec.js6
-rw-r--r--spec/frontend/search/sidebar/components/milestones_filters_spec.js28
5 files changed, 80 insertions, 9 deletions
diff --git a/spec/frontend/search/sidebar/components/app_spec.js b/spec/frontend/search/sidebar/components/app_spec.js
index 8e23f9c1680..d8d2492209e 100644
--- a/spec/frontend/search/sidebar/components/app_spec.js
+++ b/spec/frontend/search/sidebar/components/app_spec.js
@@ -16,6 +16,7 @@ import BlobsFilters from '~/search/sidebar/components/blobs_filters.vue';
import ProjectsFilters from '~/search/sidebar/components/projects_filters.vue';
import NotesFilters from '~/search/sidebar/components/notes_filters.vue';
import CommitsFilters from '~/search/sidebar/components/commits_filters.vue';
+import MilestonesFilters from '~/search/sidebar/components/milestones_filters.vue';
import ScopeLegacyNavigation from '~/search/sidebar/components/scope_legacy_navigation.vue';
import SmallScreenDrawerNavigation from '~/search/sidebar/components/small_screen_drawer_navigation.vue';
import ScopeSidebarNavigation from '~/search/sidebar/components/scope_sidebar_navigation.vue';
@@ -47,6 +48,7 @@ describe('GlobalSearchSidebar', () => {
glFeatures: {
searchNotesHideArchivedProjects: true,
searchCommitsHideArchivedProjects: true,
+ searchMilestonesHideArchivedProjects: true,
},
},
});
@@ -59,6 +61,7 @@ describe('GlobalSearchSidebar', () => {
const findProjectsFilters = () => wrapper.findComponent(ProjectsFilters);
const findNotesFilters = () => wrapper.findComponent(NotesFilters);
const findCommitsFilters = () => wrapper.findComponent(CommitsFilters);
+ const findMilestonesFilters = () => wrapper.findComponent(MilestonesFilters);
const findScopeLegacyNavigation = () => wrapper.findComponent(ScopeLegacyNavigation);
const findSmallScreenDrawerNavigation = () => wrapper.findComponent(SmallScreenDrawerNavigation);
const findScopeSidebarNavigation = () => wrapper.findComponent(ScopeSidebarNavigation);
@@ -83,10 +86,12 @@ describe('GlobalSearchSidebar', () => {
${'blobs'} | ${findBlobsFilters} | ${SEARCH_TYPE_BASIC} | ${false}
${'blobs'} | ${findBlobsFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
${'blobs'} | ${findBlobsFilters} | ${SEARCH_TYPE_ZOEKT} | ${false}
- ${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_BASIC} | ${false}
+ ${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_BASIC} | ${true}
${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
- ${'commits'} | ${findCommitsFilters} | ${SEARCH_TYPE_BASIC} | ${false}
+ ${'commits'} | ${findCommitsFilters} | ${SEARCH_TYPE_BASIC} | ${true}
${'commits'} | ${findCommitsFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
+ ${'milestones'} | ${findMilestonesFilters} | ${SEARCH_TYPE_BASIC} | ${true}
+ ${'milestones'} | ${findMilestonesFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
`('with sidebar $scope scope:', ({ scope, filter, searchType, isShown }) => {
beforeEach(() => {
getterSpies.currentScope = jest.fn(() => scope);
diff --git a/spec/frontend/search/sidebar/components/archived_filter_spec.js b/spec/frontend/search/sidebar/components/archived_filter_spec.js
index 69bf2ebd72e..9ed677ca297 100644
--- a/spec/frontend/search/sidebar/components/archived_filter_spec.js
+++ b/spec/frontend/search/sidebar/components/archived_filter_spec.js
@@ -1,8 +1,9 @@
-import { shallowMount } from '@vue/test-utils';
import Vue from 'vue';
// eslint-disable-next-line no-restricted-imports
import Vuex from 'vuex';
import { GlFormCheckboxGroup } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
import ArchivedFilter from '~/search/sidebar/components/archived_filter/index.vue';
import { archivedFilterData } from '~/search/sidebar/components/archived_filter/data';
@@ -12,17 +13,26 @@ Vue.use(Vuex);
describe('ArchivedFilter', () => {
let wrapper;
+ const defaultActions = {
+ setQuery: jest.fn(),
+ };
+
const createComponent = (state) => {
const store = new Vuex.Store({
state,
+ actions: defaultActions,
});
- wrapper = shallowMount(ArchivedFilter, {
+ wrapper = shallowMountExtended(ArchivedFilter, {
store,
+ directives: {
+ GlTooltip: createMockDirective('gl-tooltip'),
+ },
});
};
const findCheckboxFilter = () => wrapper.findComponent(GlFormCheckboxGroup);
+ const findCheckboxFilterLabel = () => wrapper.findByTestId('label');
const findH5 = () => wrapper.findComponent('h5');
describe('old sidebar', () => {
@@ -38,6 +48,12 @@ describe('ArchivedFilter', () => {
expect(findH5().exists()).toBe(true);
expect(findH5().text()).toBe(archivedFilterData.headerLabel);
});
+
+ it('wraps the label element with a tooltip', () => {
+ const tooltip = getBinding(findCheckboxFilterLabel().element, 'gl-tooltip');
+ expect(tooltip).toBeDefined();
+ expect(tooltip.value).toBe('Include search results from archived projects');
+ });
});
describe('new sidebar', () => {
@@ -53,6 +69,12 @@ describe('ArchivedFilter', () => {
expect(findH5().exists()).toBe(true);
expect(findH5().text()).toBe(archivedFilterData.headerLabel);
});
+
+ it('wraps the label element with a tooltip', () => {
+ const tooltip = getBinding(findCheckboxFilterLabel().element, 'gl-tooltip');
+ expect(tooltip).toBeDefined();
+ expect(tooltip.value).toBe('Include search results from archived projects');
+ });
});
describe.each`
@@ -70,4 +92,20 @@ describe('ArchivedFilter', () => {
expect(findCheckboxFilter().attributes('checked')).toBe(checkboxState);
});
});
+
+ describe('selectedFilter logic', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('correctly executes setQuery without mutating the input', () => {
+ const selectedFilter = [false];
+ findCheckboxFilter().vm.$emit('input', selectedFilter);
+ expect(defaultActions.setQuery).toHaveBeenCalledWith(expect.any(Object), {
+ key: 'include_archived',
+ value: 'false',
+ });
+ expect(selectedFilter).toEqual([false]);
+ });
+ });
});
diff --git a/spec/frontend/search/sidebar/components/issues_filters_spec.js b/spec/frontend/search/sidebar/components/issues_filters_spec.js
index 39d10cbb8b4..c3b3a93e362 100644
--- a/spec/frontend/search/sidebar/components/issues_filters_spec.js
+++ b/spec/frontend/search/sidebar/components/issues_filters_spec.js
@@ -111,11 +111,11 @@ describe('GlobalSearch IssuesFilters', () => {
});
it("doesn't render ArchivedFilter", () => {
- expect(findArchivedFilter().exists()).toBe(false);
+ expect(findArchivedFilter().exists()).toBe(true);
});
it('renders 1 divider', () => {
- expect(findDividers()).toHaveLength(1);
+ expect(findDividers()).toHaveLength(2);
});
});
diff --git a/spec/frontend/search/sidebar/components/merge_requests_filters_spec.js b/spec/frontend/search/sidebar/components/merge_requests_filters_spec.js
index b50f348be69..278249c2660 100644
--- a/spec/frontend/search/sidebar/components/merge_requests_filters_spec.js
+++ b/spec/frontend/search/sidebar/components/merge_requests_filters_spec.js
@@ -79,12 +79,12 @@ describe('GlobalSearch MergeRequestsFilters', () => {
expect(findStatusFilter().exists()).toBe(true);
});
- it("doesn't render ArchivedFilter", () => {
- expect(findArchivedFilter().exists()).toBe(false);
+ it('renders render ArchivedFilter', () => {
+ expect(findArchivedFilter().exists()).toBe(true);
});
it('renders 1 divider', () => {
- expect(findDividers()).toHaveLength(0);
+ expect(findDividers()).toHaveLength(1);
});
});
diff --git a/spec/frontend/search/sidebar/components/milestones_filters_spec.js b/spec/frontend/search/sidebar/components/milestones_filters_spec.js
new file mode 100644
index 00000000000..e7fcfb030f4
--- /dev/null
+++ b/spec/frontend/search/sidebar/components/milestones_filters_spec.js
@@ -0,0 +1,28 @@
+import { shallowMount } from '@vue/test-utils';
+import MilestonesFilters from '~/search/sidebar/components/milestones_filters.vue';
+import ArchivedFilter from '~/search/sidebar/components/archived_filter/index.vue';
+import FiltersTemplate from '~/search/sidebar/components/filters_template.vue';
+
+describe('GlobalSearch MilestonesFilters', () => {
+ let wrapper;
+
+ const findArchivedFilter = () => wrapper.findComponent(ArchivedFilter);
+ const findFiltersTemplate = () => wrapper.findComponent(FiltersTemplate);
+
+ const createComponent = () => {
+ wrapper = shallowMount(MilestonesFilters);
+ };
+
+ describe('Renders correctly', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+ it('renders ArchivedFilter', () => {
+ expect(findArchivedFilter().exists()).toBe(true);
+ });
+
+ it('renders FiltersTemplate', () => {
+ expect(findFiltersTemplate().exists()).toBe(true);
+ });
+ });
+});