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>2021-08-02 18:08:56 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-02 18:08:56 +0300
commit6f998d352988f93f875db862353e814e95db1fe3 (patch)
tree3596c4b8cbc4d426c3aaf571ea5ba1a57ffe031e /spec/helpers
parent3eec6c2511af2b10cd25be64dcd84c4a35a7bcdb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/helpers')
-rw-r--r--spec/helpers/invite_members_helper_spec.rb50
-rw-r--r--spec/helpers/projects_helper_spec.rb36
2 files changed, 86 insertions, 0 deletions
diff --git a/spec/helpers/invite_members_helper_spec.rb b/spec/helpers/invite_members_helper_spec.rb
index 3d2adaa5b5d..e08ce09702f 100644
--- a/spec/helpers/invite_members_helper_spec.rb
+++ b/spec/helpers/invite_members_helper_spec.rb
@@ -14,6 +14,56 @@ RSpec.describe InviteMembersHelper do
helper.extend(Gitlab::Experimentation::ControllerConcern)
end
+ describe '#common_invite_modal_dataset' do
+ context 'when member_areas_of_focus is enabled', :experiment do
+ context 'with control experience' do
+ before do
+ stub_experiments(member_areas_of_focus: :control)
+ end
+
+ it 'has expected attributes' do
+ attributes = {
+ areas_of_focus_options: [],
+ no_selection_areas_of_focus: []
+ }
+
+ expect(helper.common_invite_modal_dataset(project)).to include(attributes)
+ end
+ end
+
+ context 'with candidate experience' do
+ before do
+ stub_experiments(member_areas_of_focus: :candidate)
+ end
+
+ it 'has expected attributes', :aggregate_failures do
+ output = helper.common_invite_modal_dataset(project)
+
+ expect(output[:no_selection_areas_of_focus]).to eq ['no_selection']
+ expect(Gitlab::Json.parse(output[:areas_of_focus_options]).first['value']).to eq 'Contribute to the codebase'
+ end
+ end
+ end
+
+ context 'when member_areas_of_focus is disabled' do
+ before do
+ stub_feature_flags(member_areas_of_focus: false)
+ end
+
+ it 'has expected attributes' do
+ attributes = {
+ id: project.id,
+ name: project.name,
+ default_access_level: Gitlab::Access::GUEST,
+ areas_of_focus_options: [],
+ no_selection_areas_of_focus: []
+ }
+
+ expect(helper.common_invite_modal_dataset(project)).to match(attributes)
+ end
+ end
+ end
+
context 'with project' do
before do
allow(helper).to receive(:current_user) { owner }
diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb
index 1dd29872324..2e8ebb2de4b 100644
--- a/spec/helpers/projects_helper_spec.rb
+++ b/spec/helpers/projects_helper_spec.rb
@@ -917,4 +917,40 @@ RSpec.describe ProjectsHelper do
subject
end
end
+
+ describe '#project_permissions_panel_data' do
+ subject { helper.project_permissions_panel_data(project) }
+
+ before do
+ allow(helper).to receive(:can?) { true }
+ allow(helper).to receive(:current_user).and_return(user)
+ end
+
+ it 'includes project_permissions_settings' do
+ settings = subject.dig(:currentSettings)
+
+ expect(settings).to include(
+ packagesEnabled: !!project.packages_enabled,
+ visibilityLevel: project.visibility_level,
+ requestAccessEnabled: !!project.request_access_enabled,
+ issuesAccessLevel: project.project_feature.issues_access_level,
+ repositoryAccessLevel: project.project_feature.repository_access_level,
+ forkingAccessLevel: project.project_feature.forking_access_level,
+ mergeRequestsAccessLevel: project.project_feature.merge_requests_access_level,
+ buildsAccessLevel: project.project_feature.builds_access_level,
+ wikiAccessLevel: project.project_feature.wiki_access_level,
+ snippetsAccessLevel: project.project_feature.snippets_access_level,
+ pagesAccessLevel: project.project_feature.pages_access_level,
+ analyticsAccessLevel: project.project_feature.analytics_access_level,
+ containerRegistryEnabled: !!project.container_registry_enabled,
+ lfsEnabled: !!project.lfs_enabled,
+ emailsDisabled: project.emails_disabled?,
+ metricsDashboardAccessLevel: project.project_feature.metrics_dashboard_access_level,
+ operationsAccessLevel: project.project_feature.operations_access_level,
+ showDefaultAwardEmojis: project.show_default_award_emojis?,
+ securityAndComplianceAccessLevel: project.security_and_compliance_access_level,
+ containerRegistryAccessLevel: project.project_feature.container_registry_access_level
+ )
+ end
+ end
end