diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2018-07-19 15:29:36 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2018-07-19 15:29:36 +0100 |
commit | a1f2c98698a27232eea6d5dc98800d71429adf9e (patch) | |
tree | 840e0ddc232affa06f39b83ef277cb9429bca278 | |
parent | 698880579d7625e9d08b87e0597526b2c3749b5e (diff) | |
download | gitlab-ce-49161-disable-toggle-comments.tar.gz |
Mock discussions getter in diff file header spec49161-disable-toggle-comments
-rw-r--r-- | spec/javascripts/diffs/components/diff_file_header_spec.js | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/spec/javascripts/diffs/components/diff_file_header_spec.js b/spec/javascripts/diffs/components/diff_file_header_spec.js index 35c8c858631..c1fba937949 100644 --- a/spec/javascripts/diffs/components/diff_file_header_spec.js +++ b/spec/javascripts/diffs/components/diff_file_header_spec.js @@ -11,7 +11,9 @@ const discussionFixture = 'merge_requests/diff_discussion.json'; describe('diff_file_header', () => { let vm; let props; + const diffDiscussionMock = getJSONFixture(discussionFixture)[0]; const Component = Vue.extend(DiffFileHeader); + const store = new Vuex.Store({ modules: { diffs: diffsModule, @@ -20,7 +22,6 @@ describe('diff_file_header', () => { }); beforeEach(() => { - const diffDiscussionMock = getJSONFixture(discussionFixture)[0]; const diffFile = convertObjectPropsToCamelCase(diffDiscussionMock.diff_file, { deep: true }); props = { diffFile, @@ -408,7 +409,7 @@ describe('diff_file_header', () => { }); }); - fdescribe('handles toggle discussions', () => { + describe('handles toggle discussions', () => { it('renders a disabled button when diff has no discussions', () => { const propsCopy = Object.assign({}, props); propsCopy.diffFile.submodule = false; @@ -428,33 +429,44 @@ describe('diff_file_header', () => { store, }); - expect(vm.$el.querySelector('.js-btn-vue-toggle-comments').getAttribute('disabled')).toEqual('disabled'); - }); - - it('dispatches toggleFileDiscussions when user clicks on toggle discussions button', () => { - const propsCopy = Object.assign({}, props); - propsCopy.diffFile.submodule = false; - propsCopy.diffFile.blob = { - id: '848ed9407c6730ff16edb3dd24485a0eea24292a', - path: 'lib/base.js', - name: 'base.js', - mode: '100644', - readableText: true, - icon: 'file-text-o', - }; - propsCopy.addMergeRequestButtons = true; - propsCopy.diffFile.deletedFile = true; - - vm = mountComponentWithStore(Component, { - props: propsCopy, - store, + expect( + vm.$el.querySelector('.js-btn-vue-toggle-comments').getAttribute('disabled'), + ).toEqual('disabled'); + }); + + describe('with discussions', () => { + it('dispatches toggleFileDiscussions when user clicks on toggle discussions button', () => { + const propsCopy = Object.assign({}, props); + propsCopy.diffFile.submodule = false; + propsCopy.diffFile.blob = { + id: '848ed9407c6730ff16edb3dd24485a0eea24292a', + path: 'lib/base.js', + name: 'base.js', + mode: '100644', + readableText: true, + icon: 'file-text-o', + }; + propsCopy.addMergeRequestButtons = true; + propsCopy.diffFile.deletedFile = true; + + const discussionGetter = () => [diffDiscussionMock]; + notesModule.getters.discussions = discussionGetter; + vm = mountComponentWithStore(Component, { + props: propsCopy, + store: new Vuex.Store({ + modules: { + diffs: diffsModule, + notes: notesModule, + }, + }), + }); + + spyOn(vm, 'toggleFileDiscussions'); + + vm.$el.querySelector('.js-btn-vue-toggle-comments').click(); + + expect(vm.toggleFileDiscussions).toHaveBeenCalled(); }); - - spyOn(vm, 'toggleFileDiscussions'); - - vm.$el.querySelector('.js-btn-vue-toggle-comments').click(); - - expect(vm.toggleFileDiscussions).toHaveBeenCalled(); }); }); }); |