diff options
Diffstat (limited to 'spec/frontend/batch_comments/components')
7 files changed, 45 insertions, 14 deletions
diff --git a/spec/frontend/batch_comments/components/diff_file_drafts_spec.js b/spec/frontend/batch_comments/components/diff_file_drafts_spec.js index 6a5ff1af7c9..c922d6a9809 100644 --- a/spec/frontend/batch_comments/components/diff_file_drafts_spec.js +++ b/spec/frontend/batch_comments/components/diff_file_drafts_spec.js @@ -35,13 +35,13 @@ describe('Batch comments diff file drafts component', () => { it('renders list of draft notes', () => { factory(); - expect(vm.findAll(DraftNote).length).toEqual(2); + expect(vm.findAllComponents(DraftNote).length).toEqual(2); }); it('renders index of draft note', () => { factory(); - const elements = vm.findAll(DesignNotePin); + const elements = vm.findAllComponents(DesignNotePin); expect(elements.length).toEqual(2); diff --git a/spec/frontend/batch_comments/components/draft_note_spec.js b/spec/frontend/batch_comments/components/draft_note_spec.js index ccca4a2c3e9..03ecbc01a56 100644 --- a/spec/frontend/batch_comments/components/draft_note_spec.js +++ b/spec/frontend/batch_comments/components/draft_note_spec.js @@ -61,7 +61,7 @@ describe('Batch comments draft note component', () => { createComponent(); expect(wrapper.findComponent(GlBadge).exists()).toBe(true); - const note = wrapper.find(NoteableNote); + const note = wrapper.findComponent(NoteableNote); expect(note.exists()).toBe(true); expect(note.props().note).toEqual(draft); @@ -115,14 +115,14 @@ describe('Batch comments draft note component', () => { await nextTick(); const publishNowButton = findSubmitReviewButton(); - expect(publishNowButton.attributes().disabled).toBeTruthy(); + expect(publishNowButton.attributes().disabled).toBe('true'); }); }); describe('update', () => { it('dispatches updateDraft', async () => { createComponent(); - const note = wrapper.find(NoteableNote); + const note = wrapper.findComponent(NoteableNote); note.vm.$emit('handleEdit'); @@ -147,7 +147,7 @@ describe('Batch comments draft note component', () => { createComponent(); jest.spyOn(window, 'confirm').mockImplementation(() => true); - const note = wrapper.find(NoteableNote); + const note = wrapper.findComponent(NoteableNote); note.vm.$emit('handleDeleteNote', draft); diff --git a/spec/frontend/batch_comments/components/preview_dropdown_spec.js b/spec/frontend/batch_comments/components/preview_dropdown_spec.js index 079b64225e4..283632cb560 100644 --- a/spec/frontend/batch_comments/components/preview_dropdown_spec.js +++ b/spec/frontend/batch_comments/components/preview_dropdown_spec.js @@ -53,7 +53,7 @@ describe('Batch comments preview dropdown', () => { }); describe('clicking draft', () => { - it('it toggles active file when viewDiffsFileByFile is true', async () => { + it('toggles active file when viewDiffsFileByFile is true', async () => { factory({ viewDiffsFileByFile: true, sortedDrafts: [{ id: 1, file_hash: 'hash' }], diff --git a/spec/frontend/batch_comments/components/preview_item_spec.js b/spec/frontend/batch_comments/components/preview_item_spec.js index cb71edd1238..91e6b84a216 100644 --- a/spec/frontend/batch_comments/components/preview_item_spec.js +++ b/spec/frontend/batch_comments/components/preview_item_spec.js @@ -118,7 +118,7 @@ describe('Batch comments draft preview item component', () => { ); }); - it('it renders thread resolved text', () => { + it('renders thread resolved text', () => { expect(vm.$el.querySelector('.draft-note-resolution').textContent).toContain( 'Thread will be resolved', ); diff --git a/spec/frontend/batch_comments/components/publish_dropdown_spec.js b/spec/frontend/batch_comments/components/publish_dropdown_spec.js index a3168931f1f..d1b7160d231 100644 --- a/spec/frontend/batch_comments/components/publish_dropdown_spec.js +++ b/spec/frontend/batch_comments/components/publish_dropdown_spec.js @@ -28,12 +28,12 @@ describe('Batch comments publish dropdown component', () => { it('renders list of drafts', () => { createComponent(); - expect(wrapper.findAll(GlDropdownItem).length).toBe(2); + expect(wrapper.findAllComponents(GlDropdownItem).length).toBe(2); }); it('renders draft count in dropdown title', () => { createComponent(); - expect(wrapper.find(GlDropdown).props('headerText')).toEqual('2 pending comments'); + expect(wrapper.findComponent(GlDropdown).props('headerText')).toEqual('2 pending comments'); }); }); diff --git a/spec/frontend/batch_comments/components/review_bar_spec.js b/spec/frontend/batch_comments/components/review_bar_spec.js index f50db6ab210..0a4c9ff62e4 100644 --- a/spec/frontend/batch_comments/components/review_bar_spec.js +++ b/spec/frontend/batch_comments/components/review_bar_spec.js @@ -24,7 +24,7 @@ describe('Batch comments review bar component', () => { wrapper.destroy(); }); - it('it adds review-bar-visible class to body when review bar is mounted', async () => { + it('adds review-bar-visible class to body when review bar is mounted', async () => { expect(document.body.classList.contains(REVIEW_BAR_VISIBLE_CLASS_NAME)).toBe(false); createComponent(); @@ -32,7 +32,7 @@ describe('Batch comments review bar component', () => { expect(document.body.classList.contains(REVIEW_BAR_VISIBLE_CLASS_NAME)).toBe(true); }); - it('it removes review-bar-visible class to body when review bar is destroyed', async () => { + it('removes review-bar-visible class to body when review bar is destroyed', async () => { createComponent(); wrapper.destroy(); diff --git a/spec/frontend/batch_comments/components/submit_dropdown_spec.js b/spec/frontend/batch_comments/components/submit_dropdown_spec.js index 4f5ff797230..462ef7e7280 100644 --- a/spec/frontend/batch_comments/components/submit_dropdown_spec.js +++ b/spec/frontend/batch_comments/components/submit_dropdown_spec.js @@ -8,7 +8,7 @@ Vue.use(Vuex); let wrapper; let publishReview; -function factory() { +function factory({ canApprove = true } = {}) { publishReview = jest.fn(); const store = new Vuex.Store({ @@ -17,8 +17,13 @@ function factory() { markdownDocsPath: '/markdown/docs', quickActionsDocsPath: '/quickactions/docs', }), - getNoteableData: () => ({ id: 1, preview_note_path: '/preview' }), + getNoteableData: () => ({ + id: 1, + preview_note_path: '/preview', + current_user: { can_approve: canApprove }, + }), noteableType: () => 'merge_request', + getCurrentUserLastNote: () => ({ id: 1 }), }, modules: { batchComments: { @@ -41,6 +46,7 @@ const findForm = () => wrapper.findByTestId('submit-gl-form'); describe('Batch comments submit dropdown', () => { afterEach(() => { wrapper.destroy(); + window.mrTabs = null; }); it('calls publishReview with note data', async () => { @@ -54,9 +60,24 @@ describe('Batch comments submit dropdown', () => { noteable_type: 'merge_request', noteable_id: 1, note: 'Hello world', + approve: false, + approval_password: '', }); }); + it('switches to the overview tab after submit', async () => { + window.mrTabs = { tabShown: jest.fn() }; + + factory(); + + findCommentTextarea().setValue('Hello world'); + + await findForm().vm.$emit('submit', { preventDefault: jest.fn() }); + await Vue.nextTick(); + + expect(window.mrTabs.tabShown).toHaveBeenCalledWith('show'); + }); + it('sets submit dropdown to loading', async () => { factory(); @@ -66,4 +87,14 @@ describe('Batch comments submit dropdown', () => { expect(findSubmitButton().props('loading')).toBe(true); }); + + it.each` + canApprove | exists | existsText + ${true} | ${true} | ${'shows'} + ${false} | ${false} | ${'hides'} + `('$existsText approve checkbox if can_approve is $canApprove', ({ canApprove, exists }) => { + factory({ canApprove }); + + expect(wrapper.findByTestId('approve_merge_request').exists()).toBe(exists); + }); }); |