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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-09 18:09:47 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-09 18:09:47 +0300
commitffd8742a62c5de81792942cd7f9031b1add6cab2 (patch)
treeaf7c8181baf971b55064a42eecc7a8da57878456 /spec/frontend/search_autocomplete_utils_spec.js
parenta373ecffca1512404cb4f237399e3bf275d87f69 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/search_autocomplete_utils_spec.js')
-rw-r--r--spec/frontend/search_autocomplete_utils_spec.js114
1 files changed, 114 insertions, 0 deletions
diff --git a/spec/frontend/search_autocomplete_utils_spec.js b/spec/frontend/search_autocomplete_utils_spec.js
new file mode 100644
index 00000000000..4fdec717e93
--- /dev/null
+++ b/spec/frontend/search_autocomplete_utils_spec.js
@@ -0,0 +1,114 @@
+import {
+ isInGroupsPage,
+ isInProjectPage,
+ getGroupSlug,
+ getProjectSlug,
+} from '~/search_autocomplete_utils';
+
+describe('search_autocomplete_utils', () => {
+ let originalBody;
+
+ beforeEach(() => {
+ originalBody = document.body;
+ document.body = document.createElement('body');
+ });
+
+ afterEach(() => {
+ document.body = originalBody;
+ });
+
+ describe('isInGroupsPage', () => {
+ it.each`
+ page | result
+ ${'groups:index'} | ${true}
+ ${'groups:show'} | ${true}
+ ${'projects:show'} | ${false}
+ `(`returns $result in for page $page`, ({ page, result }) => {
+ document.body.dataset.page = page;
+
+ expect(isInGroupsPage()).toBe(result);
+ });
+ });
+
+ describe('isInProjectPage', () => {
+ it.each`
+ page | result
+ ${'projects:index'} | ${true}
+ ${'projects:show'} | ${true}
+ ${'groups:show'} | ${false}
+ `(`returns $result in for page $page`, ({ page, result }) => {
+ document.body.dataset.page = page;
+
+ expect(isInProjectPage()).toBe(result);
+ });
+ });
+
+ describe('getProjectSlug', () => {
+ it('returns null when no project is present or on project page', () => {
+ expect(getProjectSlug()).toBe(null);
+ });
+
+ it('returns null when not on project page', () => {
+ document.body.dataset.project = 'gitlab';
+
+ expect(getProjectSlug()).toBe(null);
+ });
+
+ it('returns null when project is missing', () => {
+ document.body.dataset.page = 'projects';
+
+ expect(getProjectSlug()).toBe(undefined);
+ });
+
+ it('returns project', () => {
+ document.body.dataset.page = 'projects';
+ document.body.dataset.project = 'gitlab';
+
+ expect(getProjectSlug()).toBe('gitlab');
+ });
+
+ it('returns project in edit page', () => {
+ document.body.dataset.page = 'projects:edit';
+ document.body.dataset.project = 'gitlab';
+
+ expect(getProjectSlug()).toBe('gitlab');
+ });
+ });
+
+ describe('getGroupSlug', () => {
+ it('returns null when no group is present or on group page', () => {
+ expect(getGroupSlug()).toBe(null);
+ });
+
+ it('returns null when not on group page', () => {
+ document.body.dataset.group = 'gitlab-org';
+
+ expect(getGroupSlug()).toBe(null);
+ });
+
+ it('returns null when group is missing on groups page', () => {
+ document.body.dataset.page = 'groups';
+
+ expect(getGroupSlug()).toBe(undefined);
+ });
+
+ it('returns null when group is missing on project page', () => {
+ document.body.dataset.page = 'project';
+
+ expect(getGroupSlug()).toBe(null);
+ });
+
+ it.each`
+ page
+ ${'groups'}
+ ${'groups:edit'}
+ ${'projects'}
+ ${'projects:edit'}
+ `(`returns group in page $page`, ({ page }) => {
+ document.body.dataset.page = page;
+ document.body.dataset.group = 'gitlab-org';
+
+ expect(getGroupSlug()).toBe('gitlab-org');
+ });
+ });
+});