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:
authorGitLab Release Tools Bot <delivery-team+release-tools@gitlab.com>2023-09-28 18:25:30 +0300
committerGitLab Release Tools Bot <delivery-team+release-tools@gitlab.com>2023-09-28 18:25:30 +0300
commit8b7cfdd3397edb18f0e0d4f1c71d6b9282f68aef (patch)
treeda9f75c7a333910cc22842293a7a7b9b98101998 /spec/models/group_spec.rb
parente11473abda8f2f224f77a066691dc90744ef0925 (diff)
parente6801ed8d4470b43705026fffb85e2a8248fbea8 (diff)
Merge remote-tracking branch 'dev/16-4-stable' into 16-4-stable
Diffstat (limited to 'spec/models/group_spec.rb')
-rw-r--r--spec/models/group_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 3f671fc3f70..ddeab16908d 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -1511,6 +1511,45 @@ RSpec.describe Group, feature_category: :groups_and_projects do
it { expect(subject.parent).to be_kind_of(described_class) }
end
+ describe '#member?' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:user) { create(:user) }
+
+ before_all do
+ group.add_developer(user)
+ end
+
+ subject { group.member?(user) }
+
+ context 'when user is a developer' do
+ it 'returns true' do
+ expect(group.member?(user)).to be_truthy
+ end
+
+ it 'returns false with maintainer as min_access_level param' do
+ expect(group.member?(user, Gitlab::Access::MAINTAINER)).to be_falsey
+ end
+ end
+
+ context 'in shared group' do
+ let(:shared_group) { create(:group) }
+ let(:member_shared) { create(:user) }
+
+ before do
+ create(:group_group_link, shared_group: group, shared_with_group: shared_group)
+ shared_group.add_developer(member_shared)
+ end
+
+ it 'return true for shared group member' do
+ expect(group.member?(member_shared)).to be_truthy
+ end
+
+ it 'returns false with maintainer as min_access_level param' do
+ expect(group.member?(member_shared, Gitlab::Access::MAINTAINER)).to be_falsey
+ end
+ end
+ end
+
describe '#max_member_access_for_user' do
let_it_be(:group_user) { create(:user) }