diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /spec/frontend/notes/components/noteable_note_spec.js | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'spec/frontend/notes/components/noteable_note_spec.js')
-rw-r--r-- | spec/frontend/notes/components/noteable_note_spec.js | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/spec/frontend/notes/components/noteable_note_spec.js b/spec/frontend/notes/components/noteable_note_spec.js index 0d67b1d87a9..aa3eaa97e20 100644 --- a/spec/frontend/notes/components/noteable_note_spec.js +++ b/spec/frontend/notes/components/noteable_note_spec.js @@ -1,5 +1,5 @@ import { escape } from 'lodash'; -import { shallowMount, createLocalVue } from '@vue/test-utils'; +import { mount, createLocalVue } from '@vue/test-utils'; import createStore from '~/notes/stores'; import issueNote from '~/notes/components/noteable_note.vue'; import NoteHeader from '~/notes/components/note_header.vue'; @@ -8,9 +8,19 @@ import NoteActions from '~/notes/components/note_actions.vue'; import NoteBody from '~/notes/components/note_body.vue'; import { noteableDataMock, notesDataMock, note } from '../mock_data'; +jest.mock('~/vue_shared/mixins/gl_feature_flags_mixin', () => () => ({ + inject: { + glFeatures: { + from: 'glFeatures', + default: () => ({ multilineComments: true }), + }, + }, +})); + describe('issue_note', () => { let store; let wrapper; + const findMultilineComment = () => wrapper.find('[data-testid="multiline-comment"]'); beforeEach(() => { store = createStore(); @@ -18,12 +28,13 @@ describe('issue_note', () => { store.dispatch('setNotesData', notesDataMock); const localVue = createLocalVue(); - wrapper = shallowMount(localVue.extend(issueNote), { + wrapper = mount(localVue.extend(issueNote), { store, propsData: { note, }, localVue, + stubs: ['note-header', 'user-avatar-link', 'note-actions', 'note-body'], }); }); @@ -31,6 +42,44 @@ describe('issue_note', () => { wrapper.destroy(); }); + describe('mutiline comments', () => { + it('should render if has multiline comment', () => { + const position = { + line_range: { + start_line_code: 'abc_1_1', + end_line_code: 'abc_2_2', + }, + }; + wrapper.setProps({ + note: { ...note, position }, + }); + + return wrapper.vm.$nextTick().then(() => { + expect(findMultilineComment().text()).toEqual('Comment on lines 1 to 2'); + }); + }); + + it('should not render if has single line comment', () => { + const position = { + line_range: { + start_line_code: 'abc_1_1', + end_line_code: 'abc_1_1', + }, + }; + wrapper.setProps({ + note: { ...note, position }, + }); + + return wrapper.vm.$nextTick().then(() => { + expect(findMultilineComment().exists()).toBe(false); + }); + }); + + it('should not render if `line_range` is unavailable', () => { + expect(findMultilineComment().exists()).toBe(false); + }); + }); + it('should render user information', () => { const { author } = note; const avatar = wrapper.find(UserAvatarLink); |