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/settings_spec.rb')
-rw-r--r--spec/requests/api/settings_spec.rb105
1 files changed, 94 insertions, 11 deletions
diff --git a/spec/requests/api/settings_spec.rb b/spec/requests/api/settings_spec.rb
index 79e96d7ea3e..dfaba969153 100644
--- a/spec/requests/api/settings_spec.rb
+++ b/spec/requests/api/settings_spec.rb
@@ -80,6 +80,7 @@ RSpec.describe API::Settings, 'Settings', :do_not_mock_admin_mode_setting, featu
expect(json_response['valid_runner_registrars']).to match_array(%w(project group))
expect(json_response['ci_max_includes']).to eq(150)
expect(json_response['allow_account_deletion']).to eq(true)
+ expect(json_response['gitlab_shell_operation_limit']).to eq(600)
end
end
@@ -190,13 +191,9 @@ RSpec.describe API::Settings, 'Settings', :do_not_mock_admin_mode_setting, featu
default_syntax_highlighting_theme: 2,
projects_api_rate_limit_unauthenticated: 100,
silent_mode_enabled: true,
- slack_app_enabled: true,
- slack_app_id: 'SLACK_APP_ID',
- slack_app_secret: 'SLACK_APP_SECRET',
- slack_app_signing_secret: 'SLACK_APP_SIGNING_SECRET',
- slack_app_verification_token: 'SLACK_APP_VERIFICATION_TOKEN',
valid_runner_registrars: ['group'],
- allow_account_deletion: false
+ allow_account_deletion: false,
+ gitlab_shell_operation_limit: 500
}
expect(response).to have_gitlab_http_status(:ok)
@@ -270,16 +267,23 @@ RSpec.describe API::Settings, 'Settings', :do_not_mock_admin_mode_setting, featu
expect(json_response['default_syntax_highlighting_theme']).to eq(2)
expect(json_response['projects_api_rate_limit_unauthenticated']).to be(100)
expect(json_response['silent_mode_enabled']).to be(true)
- expect(json_response['slack_app_enabled']).to be(true)
- expect(json_response['slack_app_id']).to eq('SLACK_APP_ID')
- expect(json_response['slack_app_secret']).to eq('SLACK_APP_SECRET')
- expect(json_response['slack_app_signing_secret']).to eq('SLACK_APP_SIGNING_SECRET')
- expect(json_response['slack_app_verification_token']).to eq('SLACK_APP_VERIFICATION_TOKEN')
expect(json_response['valid_runner_registrars']).to eq(['group'])
expect(json_response['allow_account_deletion']).to be(false)
+ expect(json_response['gitlab_shell_operation_limit']).to be(500)
end
end
+ it "updates default_branch_protection_defaults from the default_branch_protection param" do
+ expected_update = ::Gitlab::Access::BranchProtection.protected_against_developer_pushes.stringify_keys
+
+ put api("/application/settings", admin),
+ params: { default_branch_protection: ::Gitlab::Access::PROTECTION_DEV_CAN_MERGE }
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response['default_branch_protection']).to eq(Gitlab::Access::PROTECTION_DEV_CAN_MERGE)
+ expect(ApplicationSetting.first.default_branch_protection_defaults).to eq(expected_update)
+ end
+
it "supports legacy performance_bar_allowed_group_id" do
put api("/application/settings", admin),
params: { performance_bar_allowed_group_id: group.full_path }
@@ -550,6 +554,85 @@ RSpec.describe API::Settings, 'Settings', :do_not_mock_admin_mode_setting, featu
end
end
+ context 'GitLab for Slack app settings' do
+ let(:settings) do
+ {
+ slack_app_enabled: slack_app_enabled,
+ slack_app_id: slack_app_id,
+ slack_app_secret: slack_app_secret,
+ slack_app_signing_secret: slack_app_signing_secret,
+ slack_app_verification_token: slack_app_verification_token
+ }
+ end
+
+ context 'when GitLab for Slack app is enabled' do
+ let(:slack_app_enabled) { true }
+
+ context 'when other params are blank' do
+ let(:slack_app_id) { nil }
+ let(:slack_app_secret) { nil }
+ let(:slack_app_signing_secret) { nil }
+ let(:slack_app_verification_token) { nil }
+
+ it 'does not update the settings' do
+ put api("/application/settings", admin), params: settings
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+
+ expect(json_response['slack_app_enabled']).to be(nil)
+ expect(json_response['slack_app_id']).to be(nil)
+ expect(json_response['slack_app_secret']).to be(nil)
+ expect(json_response['slack_app_signing_secret']).to be(nil)
+ expect(json_response['slack_app_verification_token']).to be(nil)
+
+ message = json_response['message']
+
+ expect(message['slack_app_id']).to include("can't be blank")
+ expect(message['slack_app_secret']).to include("can't be blank")
+ expect(message['slack_app_signing_secret']).to include("can't be blank")
+ expect(message['slack_app_verification_token']).to include("can't be blank")
+ end
+ end
+
+ context 'when other params are present' do
+ let(:slack_app_id) { 'ID' }
+ let(:slack_app_secret) { 'SECRET' }
+ let(:slack_app_signing_secret) { 'SIGNING_SECRET' }
+ let(:slack_app_verification_token) { 'VERIFICATION_TOKEN' }
+
+ it 'updates the settings' do
+ put api("/application/settings", admin), params: settings
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response['slack_app_enabled']).to be(true)
+ expect(json_response['slack_app_id']).to eq('ID')
+ expect(json_response['slack_app_secret']).to eq('SECRET')
+ expect(json_response['slack_app_signing_secret']).to eq('SIGNING_SECRET')
+ expect(json_response['slack_app_verification_token']).to eq('VERIFICATION_TOKEN')
+ end
+ end
+ end
+
+ context 'when GitLab for Slack app is not enabled' do
+ let(:slack_app_enabled) { false }
+ let(:slack_app_id) { nil }
+ let(:slack_app_secret) { nil }
+ let(:slack_app_signing_secret) { nil }
+ let(:slack_app_verification_token) { nil }
+
+ it 'allows blank attributes' do
+ put api("/application/settings", admin), params: settings
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response['slack_app_enabled']).to be(false)
+ expect(json_response['slack_app_id']).to be(nil)
+ expect(json_response['slack_app_secret']).to be(nil)
+ expect(json_response['slack_app_signing_secret']).to be(nil)
+ expect(json_response['slack_app_verification_token']).to be(nil)
+ end
+ end
+ end
+
context "missing plantuml_url value when plantuml_enabled is true" do
it "returns a blank parameter error message" do
put api("/application/settings", admin), params: { plantuml_enabled: true }