diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 15:44:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 15:44:42 +0000 |
commit | 4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch) | |
tree | 5423a1c7516cffe36384133ade12572cf709398d /spec/frontend/batch_comments/components/preview_dropdown_spec.js | |
parent | e570267f2f6b326480d284e0164a6464ba4081bc (diff) | |
download | gitlab-ce-4555e1b21c365ed8303ffb7a3325d773c9b8bf31.tar.gz |
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/frontend/batch_comments/components/preview_dropdown_spec.js')
-rw-r--r-- | spec/frontend/batch_comments/components/preview_dropdown_spec.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/spec/frontend/batch_comments/components/preview_dropdown_spec.js b/spec/frontend/batch_comments/components/preview_dropdown_spec.js new file mode 100644 index 00000000000..41be04d0b7e --- /dev/null +++ b/spec/frontend/batch_comments/components/preview_dropdown_spec.js @@ -0,0 +1,71 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import PreviewDropdown from '~/batch_comments/components/preview_dropdown.vue'; + +Vue.use(Vuex); + +let wrapper; + +const toggleActiveFileByHash = jest.fn(); +const scrollToDraft = jest.fn(); + +function factory({ viewDiffsFileByFile = false, draftsCount = 1, sortedDrafts = [] } = {}) { + const store = new Vuex.Store({ + modules: { + diffs: { + namespaced: true, + actions: { + toggleActiveFileByHash, + }, + state: { + viewDiffsFileByFile, + }, + }, + batchComments: { + namespaced: true, + actions: { scrollToDraft }, + getters: { draftsCount: () => draftsCount, sortedDrafts: () => sortedDrafts }, + }, + }, + }); + + wrapper = shallowMountExtended(PreviewDropdown, { + store, + }); +} + +describe('Batch comments preview dropdown', () => { + afterEach(() => { + wrapper.destroy(); + }); + + describe('clicking draft', () => { + it('it toggles active file when viewDiffsFileByFile is true', async () => { + factory({ + viewDiffsFileByFile: true, + sortedDrafts: [{ id: 1, file_hash: 'hash' }], + }); + + wrapper.findByTestId('preview-item').vm.$emit('click'); + + await Vue.nextTick(); + + expect(toggleActiveFileByHash).toHaveBeenCalledWith(expect.anything(), 'hash'); + expect(scrollToDraft).toHaveBeenCalledWith(expect.anything(), { id: 1, file_hash: 'hash' }); + }); + + it('calls scrollToDraft', async () => { + factory({ + viewDiffsFileByFile: false, + sortedDrafts: [{ id: 1 }], + }); + + wrapper.findByTestId('preview-item').vm.$emit('click'); + + await Vue.nextTick(); + + expect(scrollToDraft).toHaveBeenCalledWith(expect.anything(), { id: 1 }); + }); + }); +}); |