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 Bot <gitlab-bot@gitlab.com>2023-01-10 15:09:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-10 15:09:05 +0300
commitfbf183eebe154eea4734f80975dd403f08173398 (patch)
tree4a91625645e09eea05e38dba28b1e849bde59ec2 /spec/lib/api
parent14b71b2795e7765989101241ee89d7bfa55bd838 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib/api')
-rw-r--r--spec/lib/api/helpers/members_helpers_spec.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/lib/api/helpers/members_helpers_spec.rb b/spec/lib/api/helpers/members_helpers_spec.rb
new file mode 100644
index 00000000000..987d5ba9f6c
--- /dev/null
+++ b/spec/lib/api/helpers/members_helpers_spec.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe API::Helpers::MembersHelpers, feature_category: :subgroups do
+ let(:helper) do
+ Class.new.include(described_class).new
+ end
+
+ describe '#source_members' do
+ subject(:source_members) { helper.source_members(source) }
+
+ shared_examples_for 'returns all direct members' do
+ specify do
+ expect(source_members).to match_array(direct_members)
+ end
+ end
+
+ context 'for a group' do
+ let_it_be(:source) { create(:group) }
+ let_it_be(:direct_members) { create_list(:group_member, 2, group: source) }
+
+ it_behaves_like 'returns all direct members'
+ it_behaves_like 'query with source filters'
+
+ context 'when project_members_index_by_project_namespace feature flag is disabled' do
+ before do
+ stub_feature_flags(project_members_index_by_project_namespace: false)
+ end
+
+ it_behaves_like 'returns all direct members'
+ it_behaves_like 'query with source filters'
+ end
+ end
+
+ context 'for a project' do
+ let_it_be(:source) { create(:project, group: create(:group)) }
+ let_it_be(:direct_members) { create_list(:project_member, 2, project: source) }
+
+ it_behaves_like 'returns all direct members'
+ it_behaves_like 'query without source filters'
+
+ context 'when project_members_index_by_project_namespace feature flag is disabled' do
+ before do
+ stub_feature_flags(project_members_index_by_project_namespace: false)
+ end
+
+ it_behaves_like 'returns all direct members'
+ it_behaves_like 'query with source filters'
+ end
+ end
+ end
+end