diff options
Diffstat (limited to 'spec/finders/group_members_finder_spec.rb')
-rw-r--r-- | spec/finders/group_members_finder_spec.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/finders/group_members_finder_spec.rb b/spec/finders/group_members_finder_spec.rb index a9a8e9d19b8..00aa14209a2 100644 --- a/spec/finders/group_members_finder_spec.rb +++ b/spec/finders/group_members_finder_spec.rb @@ -195,4 +195,37 @@ RSpec.describe GroupMembersFinder, '#execute' do expect(result.to_a).to match_array([member1]) end end + + context 'filter by access levels' do + let!(:owner1) { group.add_owner(user2) } + let!(:owner2) { group.add_owner(user3) } + let!(:maintainer1) { group.add_maintainer(user4) } + let!(:maintainer2) { group.add_maintainer(user5) } + + subject(:by_access_levels) { described_class.new(group, user1, params: { access_levels: access_levels }).execute } + + context 'by owner' do + let(:access_levels) { ::Gitlab::Access::OWNER } + + it 'returns owners' do + expect(by_access_levels).to match_array([owner1, owner2]) + end + end + + context 'by maintainer' do + let(:access_levels) { ::Gitlab::Access::MAINTAINER } + + it 'returns owners' do + expect(by_access_levels).to match_array([maintainer1, maintainer2]) + end + end + + context 'by owner and maintainer' do + let(:access_levels) { [::Gitlab::Access::OWNER, ::Gitlab::Access::MAINTAINER] } + + it 'returns owners and maintainers' do + expect(by_access_levels).to match_array([owner1, owner2, maintainer1, maintainer2]) + end + end + end end |