diff options
Diffstat (limited to 'spec/models/project_team_spec.rb')
-rw-r--r-- | spec/models/project_team_spec.rb | 32 |
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 |