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/group_spec.rb')
-rw-r--r--spec/models/group_spec.rb42
1 files changed, 41 insertions, 1 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 3134f2ba248..0bf4540f535 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -969,6 +969,23 @@ RSpec.describe Group, feature_category: :subgroups do
end
end
+ describe '.with_project_creation_levels' do
+ let_it_be(:group_1) { create(:group, project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS) }
+ let_it_be(:group_2) { create(:group, project_creation_level: Gitlab::Access::DEVELOPER_MAINTAINER_PROJECT_ACCESS) }
+ let_it_be(:group_3) { create(:group, project_creation_level: Gitlab::Access::MAINTAINER_PROJECT_ACCESS) }
+ let_it_be(:group_4) { create(:group, project_creation_level: nil) }
+
+ it 'returns groups with the specified project creation levels' do
+ result = described_class.with_project_creation_levels([
+ Gitlab::Access::NO_ONE_PROJECT_ACCESS,
+ Gitlab::Access::MAINTAINER_PROJECT_ACCESS
+ ])
+
+ expect(result).to include(group_1, group_3)
+ expect(result).not_to include(group_2, group_4)
+ end
+ end
+
describe '.project_creation_allowed' do
let_it_be(:group_1) { create(:group, project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS) }
let_it_be(:group_2) { create(:group, project_creation_level: Gitlab::Access::DEVELOPER_MAINTAINER_PROJECT_ACCESS) }
@@ -981,6 +998,22 @@ RSpec.describe Group, feature_category: :subgroups do
expect(result).to include(group_2, group_3, group_4)
expect(result).not_to include(group_1)
end
+
+ context 'when the application_setting is set to `NO_ONE_PROJECT_ACCESS`' do
+ before do
+ stub_application_setting(default_project_creation: Gitlab::Access::NO_ONE_PROJECT_ACCESS)
+ end
+
+ it 'only includes groups where project creation is allowed' do
+ result = described_class.project_creation_allowed
+
+ expect(result).to include(group_2, group_3)
+
+ # group_4 won't be included because it has `project_creation_level: nil`,
+ # and that means it behaves like the value of the application_setting will inherited.
+ expect(result).not_to include(group_1, group_4)
+ end
+ end
end
describe 'by_ids_or_paths' do
@@ -3598,6 +3631,13 @@ RSpec.describe Group, feature_category: :subgroups do
end
end
+ describe '#content_editor_on_issues_feature_flag_enabled?' do
+ it_behaves_like 'checks self and root ancestor feature flag' do
+ let(:feature_flag) { :content_editor_on_issues }
+ let(:feature_flag_method) { :content_editor_on_issues_feature_flag_enabled? }
+ end
+ end
+
describe '#work_items_feature_flag_enabled?' do
it_behaves_like 'checks self and root ancestor feature flag' do
let(:feature_flag) { :work_items }
@@ -3710,7 +3750,7 @@ RSpec.describe Group, feature_category: :subgroups do
end
end
- describe '#usage_quotas_enabled?', feature_category: :subscription_cost_management, unless: Gitlab.ee? do
+ describe '#usage_quotas_enabled?', feature_category: :consumables_cost_management, unless: Gitlab.ee? do
using RSpec::Parameterized::TableSyntax
where(:feature_enabled, :root_group, :result) do