diff options
Diffstat (limited to 'spec/support/shared_contexts/policies/project_policy_shared_context.rb')
-rw-r--r-- | spec/support/shared_contexts/policies/project_policy_shared_context.rb | 75 |
1 files changed, 44 insertions, 31 deletions
diff --git a/spec/support/shared_contexts/policies/project_policy_shared_context.rb b/spec/support/shared_contexts/policies/project_policy_shared_context.rb index 5339fa003b9..3016494ac8d 100644 --- a/spec/support/shared_contexts/policies/project_policy_shared_context.rb +++ b/spec/support/shared_contexts/policies/project_policy_shared_context.rb @@ -1,30 +1,36 @@ # frozen_string_literal: true RSpec.shared_context 'ProjectPolicy context' do + let_it_be(:anonymous) { nil } let_it_be(:guest) { create(:user) } let_it_be(:reporter) { create(:user) } let_it_be(:developer) { create(:user) } let_it_be(:maintainer) { create(:user) } let_it_be(:owner) { create(:user) } let_it_be(:admin) { create(:admin) } - let(:project) { create(:project, :public, namespace: owner.namespace) } + let_it_be(:non_member) { create(:user) } + let_it_be_with_refind(:private_project) { create(:project, :private, namespace: owner.namespace) } + let_it_be_with_refind(:internal_project) { create(:project, :internal, namespace: owner.namespace) } + let_it_be_with_refind(:public_project) { create(:project, :public, namespace: owner.namespace) } let(:base_guest_permissions) do %i[ - read_project read_board read_list read_wiki read_issue - read_project_for_iids read_issue_iid read_label - read_milestone read_snippet read_project_member read_note - create_project create_issue create_note upload_file create_merge_request_in - award_emoji + award_emoji create_issue create_merge_request_in create_note + create_project read_board read_issue read_issue_iid read_issue_link + read_label read_list read_milestone read_note read_project + read_project_for_iids read_project_member read_release read_snippet + read_wiki upload_file ] end let(:base_reporter_permissions) do %i[ - download_code fork_project create_snippet update_issue - admin_issue admin_label admin_list read_commit_status read_build - read_container_image read_pipeline read_environment read_deployment - read_merge_request download_wiki_code read_sentry_issue read_prometheus + admin_issue admin_issue_link admin_label admin_list create_snippet + download_code download_wiki_code fork_project metrics_dashboard + read_build read_commit_status read_confidential_issues + read_container_image read_deployment read_environment read_merge_request + read_metrics_dashboard_annotation read_pipeline read_prometheus + read_sentry_issue update_issue ] end @@ -34,37 +40,42 @@ RSpec.shared_context 'ProjectPolicy context' do let(:developer_permissions) do %i[ - admin_milestone admin_merge_request update_merge_request create_commit_status - update_commit_status create_build update_build create_pipeline - update_pipeline create_merge_request_from create_wiki push_code - resolve_note create_container_image update_container_image - create_environment create_deployment update_deployment create_release update_release - update_environment daily_statistics + admin_merge_request admin_milestone admin_tag create_build + create_commit_status create_container_image create_deployment + create_environment create_merge_request_from + create_metrics_dashboard_annotation create_pipeline create_release + create_wiki daily_statistics delete_metrics_dashboard_annotation + destroy_container_image push_code read_pod_logs read_terraform_state + resolve_note update_build update_commit_status update_container_image + update_deployment update_environment update_merge_request + update_metrics_dashboard_annotation update_pipeline update_release ] end let(:base_maintainer_permissions) do %i[ - push_to_delete_protected_branch update_snippet - admin_snippet admin_project_member admin_note admin_wiki admin_project - admin_commit_status admin_build admin_container_image - admin_pipeline admin_environment admin_deployment destroy_release add_cluster + add_cluster admin_build admin_commit_status admin_container_image + admin_deployment admin_environment admin_note admin_pipeline + admin_project admin_project_member admin_snippet admin_terraform_state + admin_wiki create_deploy_token destroy_deploy_token destroy_release + push_to_delete_protected_branch read_deploy_token update_snippet ] end let(:public_permissions) do %i[ - download_code fork_project read_commit_status read_pipeline - read_container_image build_download_code build_read_container_image - download_wiki_code read_release + build_download_code build_read_container_image download_code + download_wiki_code fork_project read_commit_status read_container_image + read_pipeline read_release ] end let(:base_owner_permissions) do %i[ - change_namespace change_visibility_level rename_project remove_project - archive_project remove_fork_project destroy_merge_request destroy_issue - set_issue_iid set_issue_created_at set_issue_updated_at set_note_created_at + archive_project change_namespace change_visibility_level destroy_issue + destroy_merge_request remove_fork_project remove_project rename_project + set_issue_created_at set_issue_iid set_issue_updated_at + set_note_created_at ] end @@ -79,10 +90,12 @@ RSpec.shared_context 'ProjectPolicy context' do let(:maintainer_permissions) { base_maintainer_permissions + additional_maintainer_permissions } let(:owner_permissions) { base_owner_permissions + additional_owner_permissions } - before do - project.add_guest(guest) - project.add_maintainer(maintainer) - project.add_developer(developer) - project.add_reporter(reporter) + before_all do + [private_project, internal_project, public_project].each do |project| + project.add_guest(guest) + project.add_reporter(reporter) + project.add_developer(developer) + project.add_maintainer(maintainer) + end end end |