Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/projects_spec.rb')
-rw-r--r--spec/requests/api/projects_spec.rb44
1 files changed, 33 insertions, 11 deletions
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 3831e8e1dfe..6e8168c0ee1 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.shared_examples 'languages and percentages JSON response' do
+RSpec.shared_examples 'languages and percentages JSON response', feature_category: :projects do
let(:expected_languages) { project.repository.languages.to_h { |language| language.values_at(:label, :value) } }
before do
@@ -231,14 +231,16 @@ RSpec.describe API::Projects do
include_examples 'includes container_registry_access_level'
end
- it 'includes releases_access_level', :aggregate_failures do
- project.project_feature.update!(releases_access_level: ProjectFeature::DISABLED)
-
+ it 'includes various project feature fields', :aggregate_failures do
get api('/projects', user)
project_response = json_response.find { |p| p['id'] == project.id }
expect(response).to have_gitlab_http_status(:ok)
- expect(project_response['releases_access_level']).to eq('disabled')
+ expect(project_response['releases_access_level']).to eq('enabled')
+ expect(project_response['environments_access_level']).to eq('enabled')
+ expect(project_response['feature_flags_access_level']).to eq('enabled')
+ expect(project_response['infrastructure_access_level']).to eq('enabled')
+ expect(project_response['monitor_access_level']).to eq('enabled')
end
context 'when some projects are in a group' do
@@ -1192,6 +1194,10 @@ RSpec.describe API::Projects do
attrs[:container_registry_access_level] = 'private'
attrs[:security_and_compliance_access_level] = 'private'
attrs[:releases_access_level] = 'disabled'
+ attrs[:environments_access_level] = 'disabled'
+ attrs[:feature_flags_access_level] = 'disabled'
+ attrs[:infrastructure_access_level] = 'disabled'
+ attrs[:monitor_access_level] = 'disabled'
end
post api('/projects', user), params: project
@@ -1201,7 +1207,8 @@ RSpec.describe API::Projects do
project.each_pair do |k, v|
next if %i[
has_external_issue_tracker has_external_wiki issues_enabled merge_requests_enabled wiki_enabled storage_version
- container_registry_access_level releases_access_level
+ container_registry_access_level releases_access_level environments_access_level feature_flags_access_level
+ infrastructure_access_level monitor_access_level
].include?(k)
expect(json_response[k.to_s]).to eq(v)
@@ -1217,6 +1224,10 @@ RSpec.describe API::Projects do
expect(project.project_feature.container_registry_access_level).to eq(ProjectFeature::PRIVATE)
expect(project.project_feature.security_and_compliance_access_level).to eq(ProjectFeature::PRIVATE)
expect(project.project_feature.releases_access_level).to eq(ProjectFeature::DISABLED)
+ expect(project.project_feature.environments_access_level).to eq(ProjectFeature::DISABLED)
+ expect(project.project_feature.feature_flags_access_level).to eq(ProjectFeature::DISABLED)
+ expect(project.project_feature.infrastructure_access_level).to eq(ProjectFeature::DISABLED)
+ expect(project.project_feature.monitor_access_level).to eq(ProjectFeature::DISABLED)
end
it 'assigns container_registry_enabled to project', :aggregate_failures do
@@ -2356,6 +2367,10 @@ RSpec.describe API::Projects do
expect(json_response['operations_access_level']).to be_present
expect(json_response['security_and_compliance_access_level']).to be_present
expect(json_response['releases_access_level']).to be_present
+ expect(json_response['environments_access_level']).to be_present
+ expect(json_response['feature_flags_access_level']).to be_present
+ expect(json_response['infrastructure_access_level']).to be_present
+ expect(json_response['monitor_access_level']).to be_present
end
it 'exposes all necessary attributes' do
@@ -2426,6 +2441,10 @@ RSpec.describe API::Projects do
expect(json_response['operations_access_level']).to be_present
expect(json_response['security_and_compliance_access_level']).to be_present
expect(json_response['releases_access_level']).to be_present
+ expect(json_response['environments_access_level']).to be_present
+ expect(json_response['feature_flags_access_level']).to be_present
+ expect(json_response['infrastructure_access_level']).to be_present
+ expect(json_response['monitor_access_level']).to be_present
expect(json_response).to have_key('emails_disabled')
expect(json_response['resolve_outdated_diff_discussions']).to eq(project.resolve_outdated_diff_discussions)
expect(json_response['remove_source_branch_after_merge']).to be_truthy
@@ -3410,12 +3429,14 @@ RSpec.describe API::Projects do
expect(Project.find_by(path: project[:path]).analytics_access_level).to eq(ProjectFeature::PRIVATE)
end
- it 'sets releases_access_level', :aggregate_failures do
- put api("/projects/#{project.id}", user), params: { releases_access_level: 'private' }
+ %i(releases_access_level environments_access_level feature_flags_access_level infrastructure_access_level monitor_access_level).each do |field|
+ it "sets #{field}", :aggregate_failures do
+ put api("/projects/#{project.id}", user), params: { field => 'private' }
- expect(response).to have_gitlab_http_status(:ok)
- expect(json_response['releases_access_level']).to eq('private')
- expect(Project.find_by(path: project[:path]).releases_access_level).to eq(ProjectFeature::PRIVATE)
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response[field.to_s]).to eq('private')
+ expect(Project.find_by(path: project[:path]).public_send(field)).to eq(ProjectFeature::PRIVATE)
+ end
end
it 'returns 400 when nothing sent' do
@@ -4687,6 +4708,7 @@ RSpec.describe API::Projects do
end
end
end
+
describe 'PUT /projects/:id/transfer' do
context 'when authenticated as owner' do
let(:group) { create :group }