diff options
author | Tim Zallmann <tzallmann@gitlab.com> | 2018-09-04 11:49:22 +0300 |
---|---|---|
committer | Tim Zallmann <tzallmann@gitlab.com> | 2018-09-04 11:49:22 +0300 |
commit | a6ca7efb4c4cff1914c9dc1a760e436f18715a5c (patch) | |
tree | 99520ae226cc24c488453ca53655900b4ee38928 /spec/javascripts | |
parent | 05ee94beb70a2969b85563a0c41bf5afe48a3699 (diff) | |
parent | e0ab3ed5545df468411f1b8675de6873ed57e595 (diff) |
Merge branch '_acet-disable-ide-button' into 'master'
Disable Web IDE button if user is not allowed to push the source branch.
Closes #45026
See merge request gitlab-org/gitlab-ce!21288
Diffstat (limited to 'spec/javascripts')
-rw-r--r-- | spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js index 0e42537faed..237e2fa79f2 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js @@ -114,28 +114,31 @@ describe('MRWidgetHeader', () => { }); describe('with an open merge request', () => { + const mrDefaultOptions = { + iid: 1, + divergedCommitsCount: 12, + sourceBranch: 'mr-widget-refactor', + sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>', + sourceBranchRemoved: false, + targetBranchPath: 'foo/bar/commits-path', + targetBranchTreePath: 'foo/bar/tree/path', + targetBranch: 'master', + isOpen: true, + canPushToSourceBranch: true, + emailPatchesPath: '/mr/email-patches', + plainDiffPath: '/mr/plainDiffPath', + statusPath: 'abc', + sourceProjectFullPath: 'root/gitlab-ce', + targetProjectFullPath: 'gitlab-org/gitlab-ce', + }; + afterEach(() => { vm.$destroy(); }); beforeEach(() => { vm = mountComponent(Component, { - mr: { - iid: 1, - divergedCommitsCount: 12, - sourceBranch: 'mr-widget-refactor', - sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>', - sourceBranchRemoved: false, - targetBranchPath: 'foo/bar/commits-path', - targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', - isOpen: true, - emailPatchesPath: '/mr/email-patches', - plainDiffPath: '/mr/plainDiffPath', - statusPath: 'abc', - sourceProjectFullPath: 'root/gitlab-ce', - targetProjectFullPath: 'gitlab-org/gitlab-ce', - }, + mr: Object.assign({}, mrDefaultOptions), }); }); @@ -151,11 +154,21 @@ describe('MRWidgetHeader', () => { const button = vm.$el.querySelector('.js-web-ide'); expect(button.textContent.trim()).toEqual('Open in Web IDE'); + expect(button.classList.contains('disabled')).toBe(false); expect(button.getAttribute('href')).toEqual( '/-/ide/project/root/gitlab-ce/merge_requests/1?target_project=gitlab-org%2Fgitlab-ce', ); }); + it('renders web ide button in disabled state with no href', () => { + const mr = Object.assign({}, mrDefaultOptions, { canPushToSourceBranch: false }); + vm = mountComponent(Component, { mr }); + + const link = vm.$el.querySelector('.js-web-ide'); + expect(link.classList.contains('disabled')).toBe(true); + expect(link.getAttribute('href')).toBeNull(); + }); + it('renders web ide button with blank query string if target & source project branch', done => { vm.mr.targetProjectFullPath = 'root/gitlab-ce'; |