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/initializers/pages_storage_check_spec.rb')
-rw-r--r--spec/initializers/pages_storage_check_spec.rb94
1 files changed, 94 insertions, 0 deletions
diff --git a/spec/initializers/pages_storage_check_spec.rb b/spec/initializers/pages_storage_check_spec.rb
new file mode 100644
index 00000000000..a76002dbdcf
--- /dev/null
+++ b/spec/initializers/pages_storage_check_spec.rb
@@ -0,0 +1,94 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'pages storage check' do
+ let(:main_error_message) { "Please enable at least one of the two Pages storage strategy (local_store or object_store) in your config/gitlab.yml." }
+
+ subject(:initializer) { load Rails.root.join('config/initializers/pages_storage_check.rb') }
+
+ context 'when local store does not exist yet' do
+ before do
+ Settings.pages['local_store'] = nil
+ end
+
+ it { is_expected.to be_truthy }
+ end
+
+ context 'when pages is not enabled' do
+ before do
+ Settings.pages['enabled'] = false
+ end
+
+ it { is_expected.to be_truthy }
+ end
+
+ context 'when pages is enabled' do
+ before do
+ Settings.pages['enabled'] = true
+ Settings.pages['local_store'] = Settingslogic.new({})
+ end
+
+ context 'when pages object storage is not enabled' do
+ before do
+ Settings.pages['object_store']['enabled'] = false
+ end
+
+ context 'when pages local storage is not enabled' do
+ it 'raises an exception' do
+ Settings.pages['local_store']['enabled'] = false
+
+ expect { subject }.to raise_error(main_error_message)
+ end
+ end
+
+ context 'when pages local storage is enabled' do
+ it 'is true' do
+ Settings.pages['local_store']['enabled'] = true
+
+ expect(subject).to be_truthy
+ end
+ end
+ end
+
+ context 'when pages object storage is enabled' do
+ before do
+ Settings.pages['object_store']['enabled'] = true
+ end
+
+ context 'when pages local storage is not enabled' do
+ it 'is true' do
+ Settings.pages['local_store']['enabled'] = false
+
+ expect(subject).to be_truthy
+ end
+ end
+
+ context 'when pages local storage is enabled' do
+ it 'is true' do
+ Settings.pages['local_store']['enabled'] = true
+
+ expect(subject).to be_truthy
+ end
+ end
+ end
+
+ context 'when using integers instead of booleans' do
+ it 'is true' do
+ Settings.pages['local_store']['enabled'] = 1
+ Settings.pages['object_store']['enabled'] = 0
+
+ expect(subject).to be_truthy
+ end
+ end
+
+ context 'when both enabled attributes are not set' do
+ it 'raises an exception' do
+ Settings.pages['local_store']['enabled'] = nil
+ Settings.pages['object_store']['enabled'] = nil
+
+ expect { subject }.to raise_error(main_error_message)
+ end
+ end
+ end
+end