diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-02 18:08:56 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-02 18:08:56 +0300 |
commit | 6f998d352988f93f875db862353e814e95db1fe3 (patch) | |
tree | 3596c4b8cbc4d426c3aaf571ea5ba1a57ffe031e /spec/helpers | |
parent | 3eec6c2511af2b10cd25be64dcd84c4a35a7bcdb (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/helpers')
-rw-r--r-- | spec/helpers/invite_members_helper_spec.rb | 50 | ||||
-rw-r--r-- | spec/helpers/projects_helper_spec.rb | 36 |
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 |