Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/generic_packages_spec.rb')
-rw-r--r--spec/requests/api/generic_packages_spec.rb33
1 files changed, 31 insertions, 2 deletions
diff --git a/spec/requests/api/generic_packages_spec.rb b/spec/requests/api/generic_packages_spec.rb
index 16d56b6cfbe..a5e40eec919 100644
--- a/spec/requests/api/generic_packages_spec.rb
+++ b/spec/requests/api/generic_packages_spec.rb
@@ -16,6 +16,7 @@ RSpec.describe API::GenericPackages do
let_it_be(:project_deploy_token_ro) { create(:project_deploy_token, deploy_token: deploy_token_ro, project: project) }
let_it_be(:deploy_token_wo) { create(:deploy_token, read_package_registry: false, write_package_registry: true) }
let_it_be(:project_deploy_token_wo) { create(:project_deploy_token, deploy_token: deploy_token_wo, project: project) }
+
let(:user) { personal_access_token.user }
let(:ci_build) { create(:ci_build, :running, user: user) }
@@ -326,6 +327,34 @@ RSpec.describe API::GenericPackages do
end
end
end
+
+ context 'different versions' do
+ where(:version, :expected_status) do
+ '1.3.350-20201230123456' | :created
+ '1.2.3' | :created
+ '1.2.3g' | :created
+ '1.2' | :created
+ '1.2.bananas' | :created
+ 'v1.2.4-build' | :created
+ 'd50d836eb3de6177ce6c7a5482f27f9c2c84b672' | :created
+ '..1.2.3' | :bad_request
+ '1.2.3-4/../../' | :bad_request
+ '%2e%2e%2f1.2.3' | :bad_request
+ end
+
+ with_them do
+ let(:expected_package_diff_count) { expected_status == :created ? 1 : 0 }
+ let(:headers) { workhorse_headers.merge(auth_header) }
+
+ subject { upload_file(params, headers, package_version: version) }
+
+ it "returns the #{params[:expected_status]}", :aggregate_failures do
+ expect { subject }.to change { project.packages.generic.count }.by(expected_package_diff_count)
+
+ expect(response).to have_gitlab_http_status(expected_status)
+ end
+ end
+ end
end
end
@@ -418,8 +447,8 @@ RSpec.describe API::GenericPackages do
end
end
- def upload_file(params, request_headers, send_rewritten_field: true, package_name: 'mypackage', file_name: 'myfile.tar.gz')
- url = "/projects/#{project.id}/packages/generic/#{package_name}/0.0.1/#{file_name}"
+ def upload_file(params, request_headers, send_rewritten_field: true, package_name: 'mypackage', package_version: '0.0.1', file_name: 'myfile.tar.gz')
+ url = "/projects/#{project.id}/packages/generic/#{package_name}/#{package_version}/#{file_name}"
workhorse_finalize(
api(url),