From 8caad77441473ebb36971b6056948c8a2895674a Mon Sep 17 00:00:00 2001 From: Jose Ivan Vargas <jvargas@gitlab.com> Date: Mon, 12 Feb 2018 15:44:55 -0600 Subject: [PATCH] Fix approve button showing closed merge requests --- .../components/approvals/approvals_body.js | 2 +- .../user_approves_merge_request_spec.rb | 16 +++++++++++++++- .../javascripts/approvals/approvals_body_spec.js | 4 +++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_body.js b/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_body.js index 42bd0d615ee..86d39ff2dbb 100644 --- a/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_body.js +++ b/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_body.js @@ -65,7 +65,7 @@ export default { }; }, showApproveButton() { - return this.userCanApprove && !this.userHasApproved; + return this.userCanApprove && !this.userHasApproved && this.mr.isOpen; }, showSuggestedApprovers() { return this.suggestedApprovers && this.suggestedApprovers.length; diff --git a/ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb b/ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb index 32f08e04c1e..a6d5e6995a6 100644 --- a/ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb +++ b/ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb @@ -32,10 +32,11 @@ describe 'User approves a merge request', :js do before do project.add_developer(user2) project.add_developer(user3) - visit(merge_request_path(merge_request)) end it 'shows multiple approvers beyond the needed count' do + visit(merge_request_path(merge_request)) + click_button('Approve') wait_for_requests @@ -47,6 +48,19 @@ describe 'User approves a merge request', :js do expect(all('.js-approver-list-member').count).to eq(3) end + it "doesn't show the approve additionally when a merge request is closed" do + merge_request_closed = create(:merge_request, :closed, source_project: project, target_project: project) + create(:approval, merge_request: merge_request_closed, user: user) + + sign_in(user2) + + visit(merge_request_path(merge_request_closed)) + wait_for_requests + + expect(page).not_to have_button('Approve') + expect(page).not_to have_button('Approve additionally') + end + def sign_in_visit_merge_request(user) sign_in(user) visit(merge_request_path(merge_request)) diff --git a/spec/javascripts/approvals/approvals_body_spec.js b/spec/javascripts/approvals/approvals_body_spec.js index 4ffb656facd..30432f4bdf9 100644 --- a/spec/javascripts/approvals/approvals_body_spec.js +++ b/spec/javascripts/approvals/approvals_body_spec.js @@ -20,7 +20,9 @@ import ApprovalsBody from 'ee/vue_merge_request_widget/components/approvals/appr `); this.initialData = { - mr: {}, + mr: { + isOpen: true, + }, service: {}, suggestedApprovers: [{ name: 'Approver 1' }], userCanApprove: false, -- 2.30.9