diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-11-20 06:12:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-11-20 06:12:07 +0300 |
commit | 56d256a4670bc8cc22b3fae516aa10c9fb48e410 (patch) | |
tree | b21d2dcf871e71ff2f35961c081edccbc7ec033f /spec/frontend | |
parent | d6085b68c5dcc2bd4dc884d2fa6b75831f85c883 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend')
5 files changed, 0 insertions, 155 deletions
diff --git a/spec/frontend/diffs/components/diff_discussions_spec.js b/spec/frontend/diffs/components/diff_discussions_spec.js index c847a79435a..bd6f4cd2545 100644 --- a/spec/frontend/diffs/components/diff_discussions_spec.js +++ b/spec/frontend/diffs/components/diff_discussions_spec.js @@ -1,7 +1,6 @@ import { GlIcon } from '@gitlab/ui'; import { mount, createLocalVue } from '@vue/test-utils'; import DiffDiscussions from '~/diffs/components/diff_discussions.vue'; -import { discussionIntersectionObserverHandlerFactory } from '~/diffs/utils/discussions'; import { createStore } from '~/mr_notes/stores'; import DiscussionNotes from '~/notes/components/discussion_notes.vue'; import NoteableDiscussion from '~/notes/components/noteable_discussion.vue'; @@ -20,9 +19,6 @@ describe('DiffDiscussions', () => { store = createStore(); wrapper = mount(localVue.extend(DiffDiscussions), { store, - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData: { discussions: getDiscussionsMockData(), ...props, diff --git a/spec/frontend/diffs/utils/discussions_spec.js b/spec/frontend/diffs/utils/discussions_spec.js deleted file mode 100644 index 9a3d442d943..00000000000 --- a/spec/frontend/diffs/utils/discussions_spec.js +++ /dev/null @@ -1,133 +0,0 @@ -import { discussionIntersectionObserverHandlerFactory } from '~/diffs/utils/discussions'; - -describe('Diff Discussions Utils', () => { - describe('discussionIntersectionObserverHandlerFactory', () => { - it('creates a handler function', () => { - expect(discussionIntersectionObserverHandlerFactory()).toBeInstanceOf(Function); - }); - - describe('intersection observer handler', () => { - const functions = { - setCurrentDiscussionId: jest.fn(), - getPreviousUnresolvedDiscussionId: jest.fn().mockImplementation((id) => { - return Number(id) - 1; - }), - }; - const defaultProcessableWrapper = { - entry: { - time: 0, - isIntersecting: true, - rootBounds: { - bottom: 0, - }, - boundingClientRect: { - top: 0, - }, - }, - currentDiscussion: { - id: 1, - }, - isFirstUnresolved: false, - isDiffsPage: true, - }; - let handler; - let getMock; - let setMock; - - beforeEach(() => { - functions.setCurrentDiscussionId.mockClear(); - functions.getPreviousUnresolvedDiscussionId.mockClear(); - - defaultProcessableWrapper.functions = functions; - - setMock = functions.setCurrentDiscussionId.mock; - getMock = functions.getPreviousUnresolvedDiscussionId.mock; - handler = discussionIntersectionObserverHandlerFactory(); - }); - - it('debounces multiple simultaneous requests into one queue', () => { - handler(defaultProcessableWrapper); - handler(defaultProcessableWrapper); - handler(defaultProcessableWrapper); - handler(defaultProcessableWrapper); - - expect(setTimeout).toHaveBeenCalledTimes(4); - expect(clearTimeout).toHaveBeenCalledTimes(3); - - // By only advancing to one timer, we ensure it's all being batched into one queue - jest.advanceTimersToNextTimer(); - - expect(functions.setCurrentDiscussionId).toHaveBeenCalledTimes(4); - }); - - it('properly processes, sorts and executes the correct actions for a set of observed intersections', () => { - handler(defaultProcessableWrapper); - handler({ - // This observation is here to be filtered out because it's a scrollDown - ...defaultProcessableWrapper, - entry: { - ...defaultProcessableWrapper.entry, - isIntersecting: false, - boundingClientRect: { top: 10 }, - rootBounds: { bottom: 100 }, - }, - }); - handler({ - ...defaultProcessableWrapper, - entry: { - ...defaultProcessableWrapper.entry, - time: 101, - isIntersecting: false, - rootBounds: { bottom: -100 }, - }, - currentDiscussion: { id: 20 }, - }); - handler({ - ...defaultProcessableWrapper, - entry: { - ...defaultProcessableWrapper.entry, - time: 100, - isIntersecting: false, - boundingClientRect: { top: 100 }, - }, - currentDiscussion: { id: 30 }, - isDiffsPage: false, - }); - handler({ - ...defaultProcessableWrapper, - isFirstUnresolved: true, - entry: { - ...defaultProcessableWrapper.entry, - time: 100, - isIntersecting: false, - boundingClientRect: { top: 200 }, - }, - }); - - jest.advanceTimersToNextTimer(); - - expect(setMock.calls.length).toBe(4); - expect(setMock.calls[0]).toEqual([1]); - expect(setMock.calls[1]).toEqual([29]); - expect(setMock.calls[2]).toEqual([null]); - expect(setMock.calls[3]).toEqual([19]); - - expect(getMock.calls.length).toBe(2); - expect(getMock.calls[0]).toEqual([30, false]); - expect(getMock.calls[1]).toEqual([20, true]); - - [ - setMock.invocationCallOrder[0], - getMock.invocationCallOrder[0], - setMock.invocationCallOrder[1], - setMock.invocationCallOrder[2], - getMock.invocationCallOrder[1], - setMock.invocationCallOrder[3], - ].forEach((order, idx, list) => { - // Compare each invocation sequence to the one before it (except the first one) - expect(list[idx - 1] || -1).toBeLessThan(order); - }); - }); - }); - }); -}); diff --git a/spec/frontend/notes/components/discussion_notes_spec.js b/spec/frontend/notes/components/discussion_notes_spec.js index ff840a55535..59ac75f00e6 100644 --- a/spec/frontend/notes/components/discussion_notes_spec.js +++ b/spec/frontend/notes/components/discussion_notes_spec.js @@ -1,7 +1,6 @@ import { getByRole } from '@testing-library/dom'; import { shallowMount, mount } from '@vue/test-utils'; import '~/behaviors/markdown/render_gfm'; -import { discussionIntersectionObserverHandlerFactory } from '~/diffs/utils/discussions'; import DiscussionNotes from '~/notes/components/discussion_notes.vue'; import NoteableNote from '~/notes/components/noteable_note.vue'; import { SYSTEM_NOTE } from '~/notes/constants'; @@ -27,9 +26,6 @@ describe('DiscussionNotes', () => { const createComponent = (props, mountingMethod = shallowMount) => { wrapper = mountingMethod(DiscussionNotes, { store, - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData: { discussion: discussionMock, isExpanded: false, diff --git a/spec/frontend/notes/components/noteable_discussion_spec.js b/spec/frontend/notes/components/noteable_discussion_spec.js index 6aab60edc4e..727ef02dcbb 100644 --- a/spec/frontend/notes/components/noteable_discussion_spec.js +++ b/spec/frontend/notes/components/noteable_discussion_spec.js @@ -3,7 +3,6 @@ import { nextTick } from 'vue'; import discussionWithTwoUnresolvedNotes from 'test_fixtures/merge_requests/resolved_diff_discussion.json'; import { trimText } from 'helpers/text_helper'; import mockDiffFile from 'jest/diffs/mock_data/diff_file'; -import { discussionIntersectionObserverHandlerFactory } from '~/diffs/utils/discussions'; import DiscussionNotes from '~/notes/components/discussion_notes.vue'; import ReplyPlaceholder from '~/notes/components/discussion_reply_placeholder.vue'; import ResolveWithIssueButton from '~/notes/components/discussion_resolve_with_issue_button.vue'; @@ -32,9 +31,6 @@ describe('noteable_discussion component', () => { wrapper = mount(NoteableDiscussion, { store, - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData: { discussion: discussionMock }, }); }); @@ -171,9 +167,6 @@ describe('noteable_discussion component', () => { wrapper = mount(NoteableDiscussion, { store, - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData: { discussion: discussionMock }, }); }); @@ -192,9 +185,6 @@ describe('noteable_discussion component', () => { wrapper = mount(NoteableDiscussion, { store, - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData: { discussion: discussionMock }, }); }); diff --git a/spec/frontend/notes/components/notes_app_spec.js b/spec/frontend/notes/components/notes_app_spec.js index b3dbc26878f..e91767687e8 100644 --- a/spec/frontend/notes/components/notes_app_spec.js +++ b/spec/frontend/notes/components/notes_app_spec.js @@ -9,7 +9,6 @@ import DraftNote from '~/batch_comments/components/draft_note.vue'; import batchComments from '~/batch_comments/stores/modules/batch_comments'; import axios from '~/lib/utils/axios_utils'; import * as urlUtility from '~/lib/utils/url_utility'; -import { discussionIntersectionObserverHandlerFactory } from '~/diffs/utils/discussions'; import CommentForm from '~/notes/components/comment_form.vue'; import NotesApp from '~/notes/components/notes_app.vue'; import * as constants from '~/notes/constants'; @@ -79,9 +78,6 @@ describe('note_app', () => { </div>`, }, { - provide: { - discussionObserverHandler: discussionIntersectionObserverHandlerFactory(), - }, propsData, store, }, |