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>2022-10-20 12:40:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-10-20 12:40:42 +0300
commitee664acb356f8123f4f6b00b73c1e1cf0866c7fb (patch)
treef8479f94a28f66654c6a4f6fb99bad6b4e86a40e /spec/frontend/notes/mixins/discussion_navigation_spec.js
parent62f7d5c5b69180e82ae8196b7b429eeffc8e7b4f (diff)
Add latest changes from gitlab-org/gitlab@15-5-stable-eev15.5.0-rc42
Diffstat (limited to 'spec/frontend/notes/mixins/discussion_navigation_spec.js')
-rw-r--r--spec/frontend/notes/mixins/discussion_navigation_spec.js141
1 files changed, 16 insertions, 125 deletions
diff --git a/spec/frontend/notes/mixins/discussion_navigation_spec.js b/spec/frontend/notes/mixins/discussion_navigation_spec.js
index 1b4e8026d84..45625d0a23f 100644
--- a/spec/frontend/notes/mixins/discussion_navigation_spec.js
+++ b/spec/frontend/notes/mixins/discussion_navigation_spec.js
@@ -4,7 +4,6 @@ import Vuex from 'vuex';
import { setHTMLFixture } from 'helpers/fixtures';
import createEventHub from '~/helpers/event_hub_factory';
import * as utils from '~/lib/utils/common_utils';
-import eventHub from '~/notes/event_hub';
import discussionNavigation from '~/notes/mixins/discussion_navigation';
import notesModule from '~/notes/stores/modules';
@@ -35,13 +34,15 @@ describe('Discussion navigation mixin', () => {
beforeEach(() => {
setHTMLFixture(
- [...'abcde']
+ `<div class="notes">
+ ${[...'abcde']
.map(
(id) =>
`<ul class="notes" data-discussion-id="${id}"></ul>
<div class="discussion" data-discussion-id="${id}"></div>`,
)
- .join(''),
+ .join('')}
+ </div>`,
);
jest.spyOn(utils, 'scrollToElementWithContext');
@@ -58,7 +59,7 @@ describe('Discussion navigation mixin', () => {
},
diffs: {
namespaced: true,
- actions: { scrollToFile },
+ actions: { scrollToFile, disableVirtualScroller: () => {} },
state: { diffFiles: [] },
},
},
@@ -73,9 +74,6 @@ describe('Discussion navigation mixin', () => {
jest.clearAllMocks();
});
- const findDiscussion = (selector, id) =>
- document.querySelector(`${selector}[data-discussion-id="${id}"]`);
-
describe('jumpToFirstUnresolvedDiscussion method', () => {
let vm;
@@ -110,14 +108,14 @@ describe('Discussion navigation mixin', () => {
});
describe.each`
- fn | args | currentId | expected
- ${'jumpToNextDiscussion'} | ${[]} | ${null} | ${'a'}
- ${'jumpToNextDiscussion'} | ${[]} | ${'a'} | ${'c'}
- ${'jumpToNextDiscussion'} | ${[]} | ${'e'} | ${'a'}
- ${'jumpToPreviousDiscussion'} | ${[]} | ${null} | ${'e'}
- ${'jumpToPreviousDiscussion'} | ${[]} | ${'e'} | ${'c'}
- ${'jumpToPreviousDiscussion'} | ${[]} | ${'c'} | ${'a'}
- `('$fn (args = $args, currentId = $currentId)', ({ fn, args, currentId, expected }) => {
+ fn | args | currentId
+ ${'jumpToNextDiscussion'} | ${[]} | ${null}
+ ${'jumpToNextDiscussion'} | ${[]} | ${'a'}
+ ${'jumpToNextDiscussion'} | ${[]} | ${'e'}
+ ${'jumpToPreviousDiscussion'} | ${[]} | ${null}
+ ${'jumpToPreviousDiscussion'} | ${[]} | ${'e'}
+ ${'jumpToPreviousDiscussion'} | ${[]} | ${'c'}
+ `('$fn (args = $args, currentId = $currentId)', ({ fn, args, currentId }) => {
beforeEach(() => {
store.state.notes.currentDiscussionId = currentId;
});
@@ -130,125 +128,18 @@ describe('Discussion navigation mixin', () => {
await nextTick();
});
- it('expands discussion', () => {
- expect(expandDiscussion).toHaveBeenCalled();
- });
-
- it('scrolls to element', () => {
- expect(utils.scrollToElement).toHaveBeenCalled();
- });
- });
-
- describe('on `diffs` active tab', () => {
- beforeEach(async () => {
- window.mrTabs.currentAction = 'diffs';
- wrapper.vm[fn](...args);
-
+ it('expands discussion', async () => {
await nextTick();
- });
- it('sets current discussion', () => {
- expect(store.state.notes.currentDiscussionId).toEqual(expected);
- });
-
- it('expands discussion', () => {
expect(expandDiscussion).toHaveBeenCalled();
});
- it('scrolls when scrollToDiscussion is emitted', () => {
- expect(utils.scrollToElementWithContext).not.toHaveBeenCalled();
-
- eventHub.$emit('scrollToDiscussion');
-
- expect(utils.scrollToElementWithContext).toHaveBeenCalledWith(
- findDiscussion('ul.notes', expected),
- { behavior: 'auto', offset: 0 },
- );
- });
- });
-
- describe('on `other` active tab', () => {
- beforeEach(async () => {
- window.mrTabs.currentAction = 'other';
- wrapper.vm[fn](...args);
-
+ it('scrolls to element', async () => {
await nextTick();
- });
- it('sets current discussion', () => {
- expect(store.state.notes.currentDiscussionId).toEqual(expected);
- });
-
- it('does not expand discussion yet', () => {
- expect(expandDiscussion).not.toHaveBeenCalled();
- });
-
- it('shows mrTabs', () => {
- expect(window.mrTabs.tabShown).toHaveBeenCalledWith('show');
- });
-
- describe('when tab is changed', () => {
- beforeEach(() => {
- window.mrTabs.eventHub.$emit('MergeRequestTabChange');
-
- jest.runAllTimers();
- });
-
- it('expands discussion', () => {
- expect(expandDiscussion).toHaveBeenCalledWith(expect.anything(), {
- discussionId: expected,
- });
- });
-
- it('scrolls to discussion', () => {
- expect(utils.scrollToElement).toHaveBeenCalledWith(
- findDiscussion('div.discussion', expected),
- { behavior: 'auto', offset: 0 },
- );
- });
+ expect(utils.scrollToElement).toHaveBeenCalled();
});
});
});
-
- describe('virtual scrolling feature', () => {
- beforeEach(() => {
- jest.spyOn(store, 'dispatch');
-
- store.state.notes.currentDiscussionId = 'a';
- window.location.hash = 'test';
- });
-
- afterEach(() => {
- window.gon = {};
- window.location.hash = '';
- });
-
- it('resets location hash', async () => {
- wrapper.vm.jumpToNextDiscussion();
-
- await nextTick();
-
- expect(window.location.hash).toBe('');
- });
-
- it.each`
- tabValue
- ${'diffs'}
- ${'other'}
- `(
- 'calls scrollToFile with setHash as $hashValue when the tab is $tabValue',
- async ({ tabValue }) => {
- window.mrTabs.currentAction = tabValue;
-
- wrapper.vm.jumpToNextDiscussion();
-
- await nextTick();
-
- expect(store.dispatch).toHaveBeenCalledWith('diffs/scrollToFile', {
- path: 'test.js',
- });
- },
- );
- });
});
});