summaryrefslogtreecommitdiff
path: root/spec/models/project_team_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/project_team_spec.rb')
-rw-r--r--spec/models/project_team_spec.rb32
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb
index ce75e68de32..8eab50abd8c 100644
--- a/spec/models/project_team_spec.rb
+++ b/spec/models/project_team_spec.rb
@@ -193,6 +193,36 @@ RSpec.describe ProjectTeam do
end
end
+ describe '#members_with_access_levels' do
+ let_it_be(:maintainer) { create(:user) }
+ let_it_be(:developer) { create(:user) }
+ let_it_be(:guest) { create(:user) }
+ let_it_be(:project) { create(:project, namespace: maintainer.namespace) }
+ let_it_be(:access_levels) { [Gitlab::Access::DEVELOPER, Gitlab::Access::MAINTAINER] }
+
+ subject(:members_with_access_levels) { project.team.members_with_access_levels(access_levels) }
+
+ before do
+ project.team.add_developer(developer)
+ project.team.add_maintainer(maintainer)
+ project.team.add_guest(guest)
+ end
+
+ context 'with access_levels' do
+ it 'filters members who have given access levels' do
+ expect(members_with_access_levels).to contain_exactly(developer, maintainer)
+ end
+ end
+
+ context 'without access_levels' do
+ let_it_be(:access_levels) { [] }
+
+ it 'returns empty array' do
+ expect(members_with_access_levels).to be_empty
+ end
+ end
+ end
+
describe '#add_users' do
let(:user1) { create(:user) }
let(:user2) { create(:user) }
@@ -307,7 +337,7 @@ RSpec.describe ProjectTeam do
it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) }
it { expect(project.team.max_member_access(requester.id)).to eq(Gitlab::Access::NO_ACCESS) }
- context 'but share_with_group_lock is true' do
+ context 'but share_with_group_lock is true', :sidekiq_inline do
before do
project.namespace.update!(share_with_group_lock: true)
end