diff options
Diffstat (limited to 'spec/services/packages')
8 files changed, 53 insertions, 21 deletions
diff --git a/spec/services/packages/composer/create_package_service_spec.rb b/spec/services/packages/composer/create_package_service_spec.rb index a1fe9a1b918..d10356cfda7 100644 --- a/spec/services/packages/composer/create_package_service_spec.rb +++ b/spec/services/packages/composer/create_package_service_spec.rb @@ -41,6 +41,8 @@ RSpec.describe Packages::Composer::CreatePackageService do it_behaves_like 'assigns the package creator' do let(:package) { created_package } end + + it_behaves_like 'assigns build to package' end context 'with a tag' do @@ -62,6 +64,8 @@ RSpec.describe Packages::Composer::CreatePackageService do it_behaves_like 'assigns the package creator' do let(:package) { created_package } end + + it_behaves_like 'assigns build to package' end end diff --git a/spec/services/packages/conan/create_package_file_service_spec.rb b/spec/services/packages/conan/create_package_file_service_spec.rb index bd6a91c883a..e655b8d1f9e 100644 --- a/spec/services/packages/conan/create_package_file_service_spec.rb +++ b/spec/services/packages/conan/create_package_file_service_spec.rb @@ -5,11 +5,12 @@ RSpec.describe Packages::Conan::CreatePackageFileService do include WorkhorseHelpers let_it_be(:package) { create(:conan_package) } + let_it_be(:user) { create(:user) } describe '#execute' do let(:file_name) { 'foo.tgz' } - subject { described_class.new(package, file, params) } + subject { described_class.new(package, file, params).execute } shared_examples 'a valid package_file' do let(:params) do @@ -27,7 +28,7 @@ RSpec.describe Packages::Conan::CreatePackageFileService do end it 'creates a new package file' do - package_file = subject.execute + package_file = subject expect(package_file).to be_valid expect(package_file.file_name).to eq(file_name) @@ -40,6 +41,8 @@ RSpec.describe Packages::Conan::CreatePackageFileService do expect(package_file.conan_file_metadatum.conan_file_type).to eq('package_file') expect(package_file.file.read).to eq('content') end + + it_behaves_like 'assigns build to package file' end shared_examples 'a valid recipe_file' do @@ -56,7 +59,7 @@ RSpec.describe Packages::Conan::CreatePackageFileService do end it 'creates a new recipe file' do - package_file = subject.execute + package_file = subject expect(package_file).to be_valid expect(package_file.file_name).to eq(file_name) @@ -69,6 +72,8 @@ RSpec.describe Packages::Conan::CreatePackageFileService do expect(package_file.conan_file_metadatum.conan_file_type).to eq('recipe_file') expect(package_file.file.read).to eq('content') end + + it_behaves_like 'assigns build to package file' end context 'with temp file' do @@ -123,7 +128,7 @@ RSpec.describe Packages::Conan::CreatePackageFileService do end it 'raises an error' do - expect { subject.execute }.to raise_error(ActiveRecord::RecordInvalid) + expect { subject }.to raise_error(ActiveRecord::RecordInvalid) end end end diff --git a/spec/services/packages/conan/create_package_service_spec.rb b/spec/services/packages/conan/create_package_service_spec.rb index b217e570aba..ca783475503 100644 --- a/spec/services/packages/conan/create_package_service_spec.rb +++ b/spec/services/packages/conan/create_package_service_spec.rb @@ -30,6 +30,7 @@ RSpec.describe Packages::Conan::CreatePackageService do end it_behaves_like 'assigns the package creator' + it_behaves_like 'assigns build to package' end context 'invalid params' do diff --git a/spec/services/packages/create_event_service_spec.rb b/spec/services/packages/create_event_service_spec.rb index 4db7687bb24..f581d704087 100644 --- a/spec/services/packages/create_event_service_spec.rb +++ b/spec/services/packages/create_event_service_spec.rb @@ -70,12 +70,34 @@ RSpec.describe Packages::CreateEventService do end it 'tracks the event' do + expect(::Gitlab::UsageDataCounters::GuestPackageEventCounter).not_to receive(:count) expect(::Gitlab::UsageDataCounters::HLLRedisCounter).to receive(:track_event).with(user.id, Packages::Event.allowed_event_name(expected_scope, event_name, originator_type)) subject end end + shared_examples 'redis package guest event creation' do |originator_type, expected_scope| + context 'with feature flag disabled' do + before do + stub_feature_flags(collect_package_events_redis: false) + end + + it 'does not track the event' do + expect(::Gitlab::UsageDataCounters::GuestPackageEventCounter).not_to receive(:count) + + subject + end + end + + it 'tracks the event' do + expect(::Gitlab::UsageDataCounters::HLLRedisCounter).not_to receive(:track_event) + expect(::Gitlab::UsageDataCounters::GuestPackageEventCounter).to receive(:count).with(Packages::Event.allowed_event_name(expected_scope, event_name, originator_type)) + + subject + end + end + context 'with a user' do let(:user) { create(:user) } @@ -94,6 +116,7 @@ RSpec.describe Packages::CreateEventService do let(:user) { nil } it_behaves_like 'db package event creation', 'guest', 'container' + it_behaves_like 'redis package guest event creation', 'guest', 'container' end context 'with a package as scope' do @@ -103,6 +126,7 @@ RSpec.describe Packages::CreateEventService do let(:user) { nil } it_behaves_like 'db package event creation', 'guest', 'npm' + it_behaves_like 'redis package guest event creation', 'guest', 'npm' end context 'with user' do diff --git a/spec/services/packages/create_package_file_service_spec.rb b/spec/services/packages/create_package_file_service_spec.rb index 12fd1039d30..e4b4b15ebf9 100644 --- a/spec/services/packages/create_package_file_service_spec.rb +++ b/spec/services/packages/create_package_file_service_spec.rb @@ -4,10 +4,11 @@ require 'spec_helper' RSpec.describe Packages::CreatePackageFileService do let_it_be(:package) { create(:maven_package) } let_it_be(:user) { create(:user) } - - subject { described_class.new(package, params) } + let(:service) { described_class.new(package, params) } describe '#execute' do + subject { service.execute } + context 'with valid params' do let(:params) do { @@ -17,11 +18,13 @@ RSpec.describe Packages::CreatePackageFileService do end it 'creates a new package file' do - package_file = subject.execute + package_file = subject expect(package_file).to be_valid expect(package_file.file_name).to eq('foo.jar') end + + it_behaves_like 'assigns build to package file' end context 'file is missing' do @@ -32,17 +35,7 @@ RSpec.describe Packages::CreatePackageFileService do end it 'raises an error' do - expect { subject.execute }.to raise_error(ActiveRecord::RecordInvalid) - end - end - - context 'with a build' do - let_it_be(:pipeline) { create(:ci_pipeline, user: user) } - let(:build) { double('build', pipeline: pipeline) } - let(:params) { { file: Tempfile.new, file_name: 'foo.jar', build: build } } - - it 'creates a build_info' do - expect { subject.execute }.to change { Packages::PackageFileBuildInfo.count }.by(1) + expect { subject }.to raise_error(ActiveRecord::RecordInvalid) end end end diff --git a/spec/services/packages/generic/create_package_file_service_spec.rb b/spec/services/packages/generic/create_package_file_service_spec.rb index 907483e3d7f..816e728c342 100644 --- a/spec/services/packages/generic/create_package_file_service_spec.rb +++ b/spec/services/packages/generic/create_package_file_service_spec.rb @@ -23,6 +23,8 @@ RSpec.describe Packages::Generic::CreatePackageFileService do } end + subject { described_class.new(project, user, params).execute } + before do FileUtils.touch(temp_file) end @@ -41,9 +43,7 @@ RSpec.describe Packages::Generic::CreatePackageFileService do expect(::Packages::Generic::FindOrCreatePackageService).to receive(:new).with(project, user, package_params).and_return(package_service) expect(package_service).to receive(:execute).and_return(package) - service = described_class.new(project, user, params) - - expect { service.execute }.to change { package.package_files.count }.by(1) + expect { subject }.to change { package.package_files.count }.by(1) .and change { Packages::PackageFileBuildInfo.count }.by(1) package_file = package.package_files.last @@ -54,5 +54,7 @@ RSpec.describe Packages::Generic::CreatePackageFileService do expect(package_file.file_sha256).to eq(sha256) end end + + it_behaves_like 'assigns build to package file' end end diff --git a/spec/services/packages/nuget/create_package_service_spec.rb b/spec/services/packages/nuget/create_package_service_spec.rb index e51bc03f311..5289ad40d61 100644 --- a/spec/services/packages/nuget/create_package_service_spec.rb +++ b/spec/services/packages/nuget/create_package_service_spec.rb @@ -31,5 +31,6 @@ RSpec.describe Packages::Nuget::CreatePackageService do end it_behaves_like 'assigns the package creator' + it_behaves_like 'assigns build to package' end end diff --git a/spec/services/packages/pypi/create_package_service_spec.rb b/spec/services/packages/pypi/create_package_service_spec.rb index c985c1e54ea..28a727c4a09 100644 --- a/spec/services/packages/pypi/create_package_service_spec.rb +++ b/spec/services/packages/pypi/create_package_service_spec.rb @@ -51,6 +51,8 @@ RSpec.describe Packages::Pypi::CreatePackageService do let(:package) { created_package } end + it_behaves_like 'assigns build to package' + context 'with an existing package' do before do described_class.new(project, user, params).execute |