diff options
Diffstat (limited to 'spec/models/ci/build_trace_chunks/legacy_fog_spec.rb')
-rw-r--r-- | spec/models/ci/build_trace_chunks/legacy_fog_spec.rb | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/spec/models/ci/build_trace_chunks/legacy_fog_spec.rb b/spec/models/ci/build_trace_chunks/legacy_fog_spec.rb deleted file mode 100644 index ca4b414b992..00000000000 --- a/spec/models/ci/build_trace_chunks/legacy_fog_spec.rb +++ /dev/null @@ -1,164 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Ci::BuildTraceChunks::LegacyFog do - let(:data_store) { described_class.new } - - before do - stub_artifacts_object_storage - end - - describe '#available?' do - subject { data_store.available? } - - context 'when object storage is enabled' do - it { is_expected.to be_truthy } - end - - context 'when object storage is disabled' do - before do - stub_artifacts_object_storage(enabled: false) - end - - it { is_expected.to be_falsy } - end - end - - describe '#data' do - subject { data_store.data(model) } - - context 'when data exists' do - let(:model) { create(:ci_build_trace_chunk, :fog_with_data, initial_data: 'sample data in fog') } - - it 'returns the data' do - is_expected.to eq('sample data in fog') - end - end - - context 'when data does not exist' do - let(:model) { create(:ci_build_trace_chunk, :fog_without_data) } - - it 'returns nil' do - expect(data_store.data(model)).to be_nil - end - end - end - - describe '#set_data' do - let(:new_data) { 'abc123' } - - context 'when data exists' do - let(:model) { create(:ci_build_trace_chunk, :fog_with_data, initial_data: 'sample data in fog') } - - it 'overwrites data' do - expect(data_store.data(model)).to eq('sample data in fog') - - data_store.set_data(model, new_data) - - expect(data_store.data(model)).to eq new_data - end - end - - context 'when data does not exist' do - let(:model) { create(:ci_build_trace_chunk, :fog_without_data) } - - it 'sets new data' do - expect(data_store.data(model)).to be_nil - - data_store.set_data(model, new_data) - - expect(data_store.data(model)).to eq new_data - end - end - end - - describe '#delete_data' do - subject { data_store.delete_data(model) } - - context 'when data exists' do - let(:model) { create(:ci_build_trace_chunk, :fog_with_data, initial_data: 'sample data in fog') } - - it 'deletes data' do - expect(data_store.data(model)).to eq('sample data in fog') - - subject - - expect(data_store.data(model)).to be_nil - end - end - - context 'when data does not exist' do - let(:model) { create(:ci_build_trace_chunk, :fog_without_data) } - - it 'does nothing' do - expect(data_store.data(model)).to be_nil - - subject - - expect(data_store.data(model)).to be_nil - end - end - end - - describe '#size' do - context 'when data exists' do - let(:model) { create(:ci_build_trace_chunk, :fog_with_data, initial_data: 'üabcd') } - - it 'returns data bytesize correctly' do - expect(data_store.size(model)).to eq 6 - end - end - - context 'when data does not exist' do - let(:model) { create(:ci_build_trace_chunk, :fog_without_data) } - - it 'returns zero' do - expect(data_store.size(model)).to be_zero - end - end - end - - describe '#keys' do - subject { data_store.keys(relation) } - - let(:build) { create(:ci_build) } - let(:relation) { build.trace_chunks } - - before do - create(:ci_build_trace_chunk, :fog_with_data, chunk_index: 0, build: build) - create(:ci_build_trace_chunk, :fog_with_data, chunk_index: 1, build: build) - end - - it 'returns keys' do - is_expected.to eq([[build.id, 0], [build.id, 1]]) - end - end - - describe '#delete_keys' do - subject { data_store.delete_keys(keys) } - - let(:build) { create(:ci_build) } - let(:relation) { build.trace_chunks } - let(:keys) { data_store.keys(relation) } - - before do - create(:ci_build_trace_chunk, :fog_with_data, chunk_index: 0, build: build) - create(:ci_build_trace_chunk, :fog_with_data, chunk_index: 1, build: build) - end - - it 'deletes multiple data' do - ::Fog::Storage.new(JobArtifactUploader.object_store_credentials).tap do |connection| - expect(connection.get_object('artifacts', "tmp/builds/#{build.id}/chunks/0.log")[:body]).to be_present - expect(connection.get_object('artifacts', "tmp/builds/#{build.id}/chunks/1.log")[:body]).to be_present - end - - subject - - ::Fog::Storage.new(JobArtifactUploader.object_store_credentials).tap do |connection| - expect { connection.get_object('artifacts', "tmp/builds/#{build.id}/chunks/0.log")[:body] }.to raise_error(Excon::Error::NotFound) - expect { connection.get_object('artifacts', "tmp/builds/#{build.id}/chunks/1.log")[:body] }.to raise_error(Excon::Error::NotFound) - end - end - end -end |