diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
commit | 71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch) | |
tree | 6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /spec/uploaders | |
parent | a7253423e3403b8c08f8a161e5937e1488f5f407 (diff) |
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'spec/uploaders')
-rw-r--r-- | spec/uploaders/object_storage/cdn/google_cdn_spec.rb | 5 | ||||
-rw-r--r-- | spec/uploaders/object_storage/cdn_spec.rb | 18 | ||||
-rw-r--r-- | spec/uploaders/object_storage/s3_spec.rb | 39 |
3 files changed, 58 insertions, 4 deletions
diff --git a/spec/uploaders/object_storage/cdn/google_cdn_spec.rb b/spec/uploaders/object_storage/cdn/google_cdn_spec.rb index 96755b7292b..184c664f6dc 100644 --- a/spec/uploaders/object_storage/cdn/google_cdn_spec.rb +++ b/spec/uploaders/object_storage/cdn/google_cdn_spec.rb @@ -3,7 +3,10 @@ require 'spec_helper' RSpec.describe ObjectStorage::CDN::GoogleCDN, - :use_clean_rails_memory_store_caching, :use_clean_rails_redis_caching, :sidekiq_inline do + :use_clean_rails_memory_store_caching, + :use_clean_rails_redis_caching, + :sidekiq_inline, + feature_category: :build_artifacts do # the google cdn is currently only used by build artifacts include StubRequests let(:key) { SecureRandom.hex } diff --git a/spec/uploaders/object_storage/cdn_spec.rb b/spec/uploaders/object_storage/cdn_spec.rb index 2a447921a19..d6c638297fa 100644 --- a/spec/uploaders/object_storage/cdn_spec.rb +++ b/spec/uploaders/object_storage/cdn_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ObjectStorage::CDN do +RSpec.describe ObjectStorage::CDN, feature_category: :build_artifacts do let(:cdn_options) do { 'object_store' => { @@ -32,6 +32,7 @@ RSpec.describe ObjectStorage::CDN do let(:object) { build_stubbed(:user) } let(:public_ip) { '18.245.0.1' } + let(:query_params) { { foo: :bar } } let_it_be(:project) { build(:project) } @@ -46,9 +47,9 @@ RSpec.describe ObjectStorage::CDN do describe '#cdn_enabled_url' do it 'calls #cdn_signed_url' do expect(subject).not_to receive(:url) - expect(subject).to receive(:cdn_signed_url).and_call_original + expect(subject).to receive(:cdn_signed_url).with(query_params).and_call_original - result = subject.cdn_enabled_url(public_ip) + result = subject.cdn_enabled_url(public_ip, query_params) expect(result.used_cdn).to be true end @@ -76,6 +77,17 @@ RSpec.describe ObjectStorage::CDN do uploader_class.options = Gitlab.config.uploads end + describe '#cdn_enabled_url' do + it 'calls #url' do + expect(subject).not_to receive(:cdn_signed_url) + expect(subject).to receive(:url).with(query: query_params).and_call_original + + result = subject.cdn_enabled_url(public_ip, query_params) + + expect(result.used_cdn).to be false + end + end + describe '#use_cdn?' do it 'returns false' do expect(subject.use_cdn?(public_ip)).to be false diff --git a/spec/uploaders/object_storage/s3_spec.rb b/spec/uploaders/object_storage/s3_spec.rb new file mode 100644 index 00000000000..de86642c58d --- /dev/null +++ b/spec/uploaders/object_storage/s3_spec.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe ObjectStorage::S3, feature_category: :source_code_management do + describe '.signed_head_url' do + subject { described_class.signed_head_url(package_file.file) } + + let(:package_file) { create(:package_file) } + + context 'when the provider is AWS' do + before do + stub_lfs_object_storage(config: Gitlab.config.lfs.object_store.merge( + connection: { + provider: 'AWS', + aws_access_key_id: 'test', + aws_secret_access_key: 'test' + } + )) + end + + it 'generates a signed url' do + expect_next_instance_of(Fog::AWS::Storage::Files) do |instance| + expect(instance).to receive(:head_url).and_return(a_valid_url) + end + + subject + end + + it 'delegates to Fog::AWS::Storage::Files#head_url' do + expect_next_instance_of(Fog::AWS::Storage::Files) do |instance| + expect(instance).to receive(:head_url).and_return('stubbed_url') + end + + expect(subject).to eq('stubbed_url') + end + end + end +end |