diff --git a/ee/app/models/approval_wrapped_any_approver_rule.rb b/ee/app/models/approval_wrapped_any_approver_rule.rb index 543b4bef90df52d0c1e832402e9a7c926641db57..0a7ddeb5f872114d96c24635d2a1cef0990e1548 100644 --- a/ee/app/models/approval_wrapped_any_approver_rule.rb +++ b/ee/app/models/approval_wrapped_any_approver_rule.rb @@ -7,6 +7,13 @@ def name end def approved_approvers + if merge_request.merged? && + approval_rule.is_a?(ApprovalMergeRequestRule) && + approval_rule.approved_approvers.any? + + return approval_rule.approved_approvers + end + filter_approvers(merge_request.approved_by_users) end diff --git a/ee/spec/models/approval_wrapped_any_approver_rule_spec.rb b/ee/spec/models/approval_wrapped_any_approver_rule_spec.rb index 72b846dd755cd4dfb3416439d1d07238caf22dc6..b0bb8362f28b779c191a1795be82d8e2ba121809 100644 --- a/ee/spec/models/approval_wrapped_any_approver_rule_spec.rb +++ b/ee/spec/models/approval_wrapped_any_approver_rule_spec.rb @@ -42,6 +42,27 @@ expect(subject.approved_approvers).to contain_exactly(approver1, approver2) end end + + context 'when merged' do + let(:merge_request) { create(:merge_request, source_branch: 'test') } + + before do + merge_request.project.update!( + merge_requests_author_approval: false, + merge_requests_disable_committers_approval: true + ) + + create(:approval, merge_request: merge_request, user: merge_request.author) + + rule.approved_approvers << approver2 + + merge_request.mark_as_merged! + end + + it 'returns approved approvers from database' do + expect(subject.approved_approvers).to contain_exactly(approver2) + end + end end it '#approved?' do