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/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb')
-rw-r--r--spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb b/spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb
index 5e2aaa8b456..7d04817b621 100644
--- a/spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb
+++ b/spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb
@@ -55,6 +55,43 @@ RSpec.describe Preloaders::UserMaxAccessLevelInGroupsPreloader do
let(:expected_query_count) { 0 }
end
+
+ context 'for groups arising from group shares' do
+ let_it_be(:group4) { create(:group, :private) }
+ let_it_be(:group4_subgroup) { create(:group, :private, parent: group4) }
+
+ let(:groups) { [group4, group4_subgroup] }
+
+ before do
+ create(:group_group_link, :guest, shared_with_group: group1, shared_group: group4)
+ end
+
+ context 'when `include_memberships_from_group_shares_in_preloader` feature flag is disabled' do
+ before do
+ stub_feature_flags(include_memberships_from_group_shares_in_preloader: false)
+ end
+
+ it 'sets access_level to `NO_ACCESS` in cache for groups arising from group shares' do
+ described_class.new(groups, user).execute
+
+ groups.each do |group|
+ cached_access_level = group.max_member_access_for_user(user)
+
+ expect(cached_access_level).to eq(Gitlab::Access::NO_ACCESS)
+ end
+ end
+ end
+
+ it 'sets the right access level in cache for groups arising from group shares' do
+ described_class.new(groups, user).execute
+
+ groups.each do |group|
+ cached_access_level = group.max_member_access_for_user(user)
+
+ expect(cached_access_level).to eq(Gitlab::Access::GUEST)
+ end
+ end
+ end
end
end
end