Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/group_members_finder_spec.rb')
-rw-r--r--spec/finders/group_members_finder_spec.rb33
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