diff options
Diffstat (limited to 'spec/lib/gitlab/pages')
-rw-r--r-- | spec/lib/gitlab/pages/settings_spec.rb | 42 | ||||
-rw-r--r-- | spec/lib/gitlab/pages/stores/local_store_spec.rb | 25 |
2 files changed, 63 insertions, 4 deletions
diff --git a/spec/lib/gitlab/pages/settings_spec.rb b/spec/lib/gitlab/pages/settings_spec.rb index f5424a98153..c89bf9ff206 100644 --- a/spec/lib/gitlab/pages/settings_spec.rb +++ b/spec/lib/gitlab/pages/settings_spec.rb @@ -3,11 +3,11 @@ require 'spec_helper' RSpec.describe Gitlab::Pages::Settings do + let(:settings) { double(path: 'the path', local_store: 'local store') } + describe '#path' do subject { described_class.new(settings).path } - let(:settings) { double(path: 'the path') } - it { is_expected.to eq('the path') } context 'when running under a web server outside of test mode' do @@ -16,9 +16,43 @@ RSpec.describe Gitlab::Pages::Settings do allow(::Gitlab::Runtime).to receive(:web_server?).and_return(true) end - it 'raises a DiskAccessDenied exception' do - expect { subject }.to raise_error(described_class::DiskAccessDenied) + it 'logs a DiskAccessDenied error' do + expect(Gitlab::ErrorTracking).to receive(:track_exception).with( + instance_of(described_class::DiskAccessDenied) + ) + + subject + end + end + + context 'when local_store settings does not exist yet' do + before do + allow(Settings.pages).to receive(:local_store).and_return(nil) end + + it { is_expected.to eq('the path') } + end + + context 'when local store exists but legacy storage is disabled' do + before do + allow(Settings.pages.local_store).to receive(:enabled).and_return(false) + end + + it 'logs a DiskAccessDenied error' do + expect(Gitlab::ErrorTracking).to receive(:track_exception).with( + instance_of(described_class::DiskAccessDenied) + ) + + subject + end + end + end + + describe '#local_store' do + subject(:local_store) { described_class.new(settings).local_store } + + it 'is an instance of Gitlab::Pages::Stores::LocalStore' do + expect(local_store).to be_a(Gitlab::Pages::Stores::LocalStore) end end end diff --git a/spec/lib/gitlab/pages/stores/local_store_spec.rb b/spec/lib/gitlab/pages/stores/local_store_spec.rb new file mode 100644 index 00000000000..adab81b2589 --- /dev/null +++ b/spec/lib/gitlab/pages/stores/local_store_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Pages::Stores::LocalStore do + describe '#enabled' do + let(:local_store) { double(enabled: true) } + + subject(:local_store_enabled) { described_class.new(local_store).enabled } + + context 'when the pages_update_legacy_storage FF is disabled' do + before do + stub_feature_flags(pages_update_legacy_storage: false) + end + + it { is_expected.to be_falsey } + end + + context 'when the pages_update_legacy_storage FF is enabled' do + it 'is equal to the original value' do + expect(local_store_enabled).to eq(local_store.enabled) + end + end + end +end |