summaryrefslogtreecommitdiff
path: root/spec/policies
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-17 06:09:32 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-17 06:09:32 +0000
commit9e3e71602cac2593f77282b1862fbd163e78233f (patch)
treea4800a394673df8a93a229b245db123c9f84946a /spec/policies
parenta770b4e83a3cb719c76e9d06c0a975aee5c73c5c (diff)
downloadgitlab-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.rb40
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