diff --git a/ee/app/models/approval_wrapped_rule.rb b/ee/app/models/approval_wrapped_rule.rb index 8b15bdc92aa9c355eb63b64d9c18f1d4d2f3e248..b553f8440ae689fc5396249019b5ad7ce9a305ff 100644 --- a/ee/app/models/approval_wrapped_rule.rb +++ b/ee/app/models/approval_wrapped_rule.rb @@ -91,7 +91,7 @@ def approved? end def invalid_rule? - approvals_required > 0 && unactioned_approvers.size <= 0 + !any_approver? && approvals_required > 0 && unactioned_approvers.size <= 0 end def allow_merge_when_invalid? diff --git a/ee/spec/models/approval_wrapped_rule_spec.rb b/ee/spec/models/approval_wrapped_rule_spec.rb index f14e2ea91823adfbb4345cebe4a75c6508536ce6..3e469ea5ccb3b4ee69c4b18d687f5b916b71f8a4 100644 --- a/ee/spec/models/approval_wrapped_rule_spec.rb +++ b/ee/spec/models/approval_wrapped_rule_spec.rb @@ -93,6 +93,14 @@ end end + context 'when rule is any_approver and approvals are required' do + let(:rule) { create(:any_approver_rule, merge_request: merge_request, approvals_required: 1) } + + it 'return false' do + expect(subject.invalid_rule?).to eq(false) + end + end + context 'when there are unactioned approvers and approvals are required' do let(:approvals_required) { 1 }