summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2019-01-08 21:50:36 +0000
committerGitLab Release Tools Bot <robert+release-tools@gitlab.com>2019-01-09 01:44:05 +0000
commitbaf1d390d6e99fa98cb9bdd6b6dd419e565f0c3f (patch)
tree2678930390ddb84d250ecd1c226ee35e7e567f36
parent9b50c14a327f3055e9718635fa531d4ba3f278a5 (diff)
downloadgitlab-ce-baf1d390d6e99fa98cb9bdd6b6dd419e565f0c3f.tar.gz
Merge branch '56093-11-7-rc2-prevents-people-from-merging-merge-requests-even-when-they-should-be-able-to' into 'master'
Fix MR sidebar to correctly warning if assignee can't merge Closes #56093 See merge request gitlab-org/gitlab-ce!24243 (cherry picked from commit 71026ffd7e71da726a9b740d42093926f8477c3e) 76895008 Fix MR sidebar to correctly warning if assignee can't merge 469678b0 Remove CHANGELOG entry
-rw-r--r--app/views/shared/issuable/_sidebar_assignees.html.haml2
-rw-r--r--spec/views/projects/merge_requests/show.html.haml_spec.rb39
2 files changed, 35 insertions, 6 deletions
diff --git a/app/views/shared/issuable/_sidebar_assignees.html.haml b/app/views/shared/issuable/_sidebar_assignees.html.haml
index c5cce1823f0..1a59055f652 100644
--- a/app/views/shared/issuable/_sidebar_assignees.html.haml
+++ b/app/views/shared/issuable/_sidebar_assignees.html.haml
@@ -25,7 +25,7 @@
.value.hide-collapsed
- if issuable_sidebar[:assignee]
= link_to_member(@project, assignee, size: 32, extra_class: 'bold') do
- - if issuable_sidebar[:assignee][:can_merge]
+ - unless issuable_sidebar[:assignee][:can_merge]
%span.float-right.cannot-be-merged{ data: { toggle: 'tooltip', placement: 'left' }, title: _('Not allowed to merge') }
= icon('exclamation-triangle', 'aria-hidden': 'true')
%span.username
diff --git a/spec/views/projects/merge_requests/show.html.haml_spec.rb b/spec/views/projects/merge_requests/show.html.haml_spec.rb
index b0042be339c..d9bda1a3414 100644
--- a/spec/views/projects/merge_requests/show.html.haml_spec.rb
+++ b/spec/views/projects/merge_requests/show.html.haml_spec.rb
@@ -32,11 +32,7 @@ describe 'projects/merge_requests/show.html.haml' do
assign(:noteable, closed_merge_request)
assign(:notes, [])
assign(:pipelines, Ci::Pipeline.none)
- assign(
- :issuable_sidebar,
- MergeRequestSerializer.new(current_user: user, project: project)
- .represent(closed_merge_request, serializer: 'sidebar')
- )
+ assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
preload_view_requirements
@@ -45,6 +41,33 @@ describe 'projects/merge_requests/show.html.haml' do
current_application_settings: Gitlab::CurrentSettings.current_application_settings)
end
+ describe 'merge request assignee sidebar' do
+ context 'when assignee is allowed to merge' do
+ it 'does not show a warning icon' do
+ closed_merge_request.update(assignee_id: user.id)
+ project.add_maintainer(user)
+ assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
+
+ render
+
+ expect(rendered).not_to have_css('.cannot-be-merged')
+ end
+ end
+
+ context 'when assignee is not allowed to merge' do
+ it 'shows a warning icon' do
+ reporter = create(:user)
+ project.add_reporter(reporter)
+ closed_merge_request.update(assignee_id: reporter.id)
+ assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
+
+ render
+
+ expect(rendered).to have_css('.cannot-be-merged')
+ end
+ end
+ end
+
context 'when the merge request is closed' do
it 'shows the "Reopen" button' do
render
@@ -80,4 +103,10 @@ describe 'projects/merge_requests/show.html.haml' do
expect(rendered).to have_css('a', visible: false, text: 'Close')
end
end
+
+ def serialize_issuable_sidebar(user, project, merge_request)
+ MergeRequestSerializer
+ .new(current_user: user, project: project)
+ .represent(closed_merge_request, serializer: 'sidebar')
+ end
end