diff options
Diffstat (limited to 'spec/models/concerns/approvable_base_spec.rb')
-rw-r--r-- | spec/models/concerns/approvable_base_spec.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/models/concerns/approvable_base_spec.rb b/spec/models/concerns/approvable_base_spec.rb index c7ea2631a24..79053e98db7 100644 --- a/spec/models/concerns/approvable_base_spec.rb +++ b/spec/models/concerns/approvable_base_spec.rb @@ -60,6 +60,34 @@ RSpec.describe ApprovableBase do end end + describe '#can_be_unapproved_by?' do + subject { merge_request.can_be_unapproved_by?(user) } + + before do + merge_request.project.add_developer(user) + end + + it 'returns false' do + is_expected.to be_falsy + end + + context 'when a user has approved' do + let!(:approval) { create(:approval, merge_request: merge_request, user: user) } + + it 'returns true' do + is_expected.to be_truthy + end + end + + context 'when a user is nil' do + let(:user) { nil } + + it 'returns false' do + is_expected.to be_falsy + end + end + end + describe '.not_approved_by_users_with_usernames' do subject { MergeRequest.not_approved_by_users_with_usernames([user.username, user2.username]) } |