diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-19 21:09:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-19 21:09:21 +0300 |
commit | f602da84d10c36889714e46040f26cdfef5dce60 (patch) | |
tree | 6835a37866865775596881c5e3a35115f0ac8a49 /spec/policies | |
parent | 9c8e8b5ffc6e11d827fa42f2dce5f90c4dc19493 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/policies')
-rw-r--r-- | spec/policies/project_policy_spec.rb | 133 |
1 files changed, 116 insertions, 17 deletions
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb index de36b755e88..c041c72a0be 100644 --- a/spec/policies/project_policy_spec.rb +++ b/spec/policies/project_policy_spec.rb @@ -1480,43 +1480,142 @@ RSpec.describe ProjectPolicy do end describe 'view_package_registry_project_settings' do - context 'with registry enabled' do + context 'with packages disabled and' do before do - stub_config(registry: { enabled: true }) + stub_config(packages: { enabled: false }) end - context 'with an admin user' do - let(:current_user) { admin } + context 'with registry enabled' do + before do + stub_config(registry: { enabled: true }) + end - context 'when admin mode enabled', :enable_admin_mode do - it { is_expected.to be_allowed(:view_package_registry_project_settings) } + context 'with an admin user' do + let(:current_user) { admin } + + context 'when admin mode enabled', :enable_admin_mode do + it { is_expected.to be_allowed(:view_package_registry_project_settings) } + end + + context 'when admin mode disabled' do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end end - context 'when admin mode disabled' do - it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + %i[owner maintainer].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_allowed(:view_package_registry_project_settings) } + end + end + + %i[developer reporter guest non_member anonymous].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end end end - %i[owner maintainer].each do |role| - context "with #{role}" do - let(:current_user) { public_send(role) } + context 'with registry disabled' do + before do + stub_config(registry: { enabled: false }) + end + + context 'with admin user' do + let(:current_user) { admin } + + context 'when admin mode enabled', :enable_admin_mode do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + + context 'when admin mode disabled' do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + end - it { is_expected.to be_allowed(:view_package_registry_project_settings) } + %i[owner maintainer developer reporter guest non_member anonymous].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end end end + end - %i[developer reporter guest non_member anonymous].each do |role| - context "with #{role}" do - let(:current_user) { public_send(role) } + context 'with registry disabled and' do + before do + stub_config(registry: { enabled: false }) + end - it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + context 'with packages enabled' do + before do + stub_config(packages: { enabled: true }) + end + + context 'with an admin user' do + let(:current_user) { admin } + + context 'when admin mode enabled', :enable_admin_mode do + it { is_expected.to be_allowed(:view_package_registry_project_settings) } + end + + context 'when admin mode disabled' do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + end + + %i[owner maintainer].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_allowed(:view_package_registry_project_settings) } + end + end + + %i[developer reporter guest non_member anonymous].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + end + end + + context 'with packages disabled' do + before do + stub_config(packages: { enabled: false }) + end + + context 'with admin user' do + let(:current_user) { admin } + + context 'when admin mode enabled', :enable_admin_mode do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + + context 'when admin mode disabled' do + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end + end + + %i[owner maintainer developer reporter guest non_member anonymous].each do |role| + context "with #{role}" do + let(:current_user) { public_send(role) } + + it { is_expected.to be_disallowed(:view_package_registry_project_settings) } + end end end end - context 'with registry disabled' do + context 'with registry & packages both disabled' do before do stub_config(registry: { enabled: false }) + stub_config(packages: { enabled: false }) end context 'with admin user' do |