diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-17 06:09:32 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-17 06:09:32 +0000 |
commit | 9e3e71602cac2593f77282b1862fbd163e78233f (patch) | |
tree | a4800a394673df8a93a229b245db123c9f84946a /spec/policies | |
parent | a770b4e83a3cb719c76e9d06c0a975aee5c73c5c (diff) | |
download | gitlab-ce-9e3e71602cac2593f77282b1862fbd163e78233f.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/policies')
-rw-r--r-- | spec/policies/project_policy_spec.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb index 6f8e21bde85..0c457148b4d 100644 --- a/spec/policies/project_policy_spec.rb +++ b/spec/policies/project_policy_spec.rb @@ -901,4 +901,44 @@ RSpec.describe ProjectPolicy do it { is_expected.to be_allowed(:read_package) } end end + + describe 'read_feature_flag' do + subject { described_class.new(current_user, project) } + + context 'with maintainer' do + let(:current_user) { maintainer } + + context 'when repository is available' do + it { is_expected.to be_allowed(:read_feature_flag) } + end + + context 'when repository is disabled' do + before do + project.project_feature.update!( + merge_requests_access_level: ProjectFeature::DISABLED, + builds_access_level: ProjectFeature::DISABLED, + repository_access_level: ProjectFeature::DISABLED + ) + end + + it { is_expected.to be_disallowed(:read_feature_flag) } + end + end + + context 'with developer' do + let(:current_user) { developer } + + context 'when repository is available' do + it { is_expected.to be_allowed(:read_feature_flag) } + end + end + + context 'with reporter' do + let(:current_user) { reporter } + + context 'when repository is available' do + it { is_expected.to be_disallowed(:read_feature_flag) } + end + end + end end |