summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb b/spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb
index 15fb6611b90..abdb468353a 100644
--- a/spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb
+++ b/spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb
@@ -43,6 +43,8 @@ end
RSpec.shared_examples 'process rubygems upload' do |user_type, status, add_member = true|
RSpec.shared_examples 'creates rubygems package files' do
it 'creates package files', :aggregate_failures do
+ expect(::Packages::Rubygems::ExtractionWorker).to receive(:perform_async).once
+
expect { subject }
.to change { project.packages.count }.by(1)
.and change { Packages::PackageFile.count }.by(1)
@@ -51,6 +53,17 @@ RSpec.shared_examples 'process rubygems upload' do |user_type, status, add_membe
package_file = project.packages.last.package_files.reload.last
expect(package_file.file_name).to eq('package.gem')
end
+
+ it 'returns bad request if package creation fails' do
+ file_service = double('file_service', execute: nil)
+
+ expect(::Packages::CreatePackageFileService).to receive(:new).and_return(file_service)
+ expect(::Packages::Rubygems::ExtractionWorker).not_to receive(:perform_async)
+
+ subject
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+ end
end
context "for user type #{user_type}" do