From 859a6fb938bb9ee2a317c46dfa4fcc1af49608f0 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 18 Feb 2021 10:34:06 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-9-stable-ee --- spec/config/object_store_settings_spec.rb | 69 +++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 18 deletions(-) (limited to 'spec/config') diff --git a/spec/config/object_store_settings_spec.rb b/spec/config/object_store_settings_spec.rb index 9e7dfa043c3..68b37197ca7 100644 --- a/spec/config/object_store_settings_spec.rb +++ b/spec/config/object_store_settings_spec.rb @@ -49,6 +49,20 @@ RSpec.describe ObjectStoreSettings do } end + shared_examples 'consolidated settings for objects accelerated by Workhorse' do + it 'consolidates active object storage settings' do + described_class::WORKHORSE_ACCELERATED_TYPES.each do |object_type| + # Use to_h to avoid https://gitlab.com/gitlab-org/gitlab/-/issues/286873 + section = subject.try(object_type).to_h + + next unless section.dig('object_store', 'enabled') + + expect(section['object_store']['connection']).to eq(connection) + expect(section['object_store']['consolidated_settings']).to be true + end + end + end + it 'sets correct default values' do subject @@ -77,9 +91,7 @@ RSpec.describe ObjectStoreSettings do expect(settings.pages['object_store']['consolidated_settings']).to be true expect(settings.external_diffs['enabled']).to be false - expect(settings.external_diffs['object_store']['enabled']).to be false - expect(settings.external_diffs['object_store']['remote_directory']).to eq('external_diffs') - expect(settings.external_diffs['object_store']['consolidated_settings']).to be true + expect(settings.external_diffs['object_store']).to be_nil end it 'raises an error when a bucket is missing' do @@ -95,29 +107,50 @@ RSpec.describe ObjectStoreSettings do expect(settings.pages['object_store']).to eq(nil) end - it 'allows pages to define its own connection' do - pages_connection = { 'provider' => 'Google', 'google_application_default' => true } - config['pages'] = { - 'enabled' => true, - 'object_store' => { + context 'GitLab Pages' do + let(:pages_connection) { { 'provider' => 'Google', 'google_application_default' => true } } + + before do + config['pages'] = { 'enabled' => true, - 'connection' => pages_connection + 'object_store' => { + 'enabled' => true, + 'connection' => pages_connection + } } - } + end - expect { subject }.not_to raise_error + it_behaves_like 'consolidated settings for objects accelerated by Workhorse' - described_class::WORKHORSE_ACCELERATED_TYPES.each do |object_type| - section = settings.try(object_type) + it 'allows pages to define its own connection' do + expect { subject }.not_to raise_error - next unless section + expect(settings.pages['object_store']['connection']).to eq(pages_connection) + expect(settings.pages['object_store']['consolidated_settings']).to be_falsey + end + end - expect(section['object_store']['connection']).to eq(connection) - expect(section['object_store']['consolidated_settings']).to be true + context 'when object storage is disabled for artifacts with no bucket' do + before do + config['artifacts'] = { + 'enabled' => true, + 'object_store' => {} + } + config['object_store']['objects']['artifacts'] = { + 'enabled' => false + } end - expect(settings.pages['object_store']['connection']).to eq(pages_connection) - expect(settings.pages['object_store']['consolidated_settings']).to be_falsey + it_behaves_like 'consolidated settings for objects accelerated by Workhorse' + + it 'does not enable consolidated settings for artifacts' do + subject + + expect(settings.artifacts['enabled']).to be true + expect(settings.artifacts['object_store']['remote_directory']).to be_nil + expect(settings.artifacts['object_store']['enabled']).to be_falsey + expect(settings.artifacts['object_store']['consolidated_settings']).to be_falsey + end end context 'with legacy config' do -- cgit v1.2.3