summaryrefslogtreecommitdiff
path: root/spec/requests/api/composer_packages_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/composer_packages_spec.rb')
-rw-r--r--spec/requests/api/composer_packages_spec.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/requests/api/composer_packages_spec.rb b/spec/requests/api/composer_packages_spec.rb
index f5279af0483..ef4682466d5 100644
--- a/spec/requests/api/composer_packages_spec.rb
+++ b/spec/requests/api/composer_packages_spec.rb
@@ -289,6 +289,34 @@ RSpec.describe API::ComposerPackages do
it_behaves_like 'process Composer api request', :developer, :not_found
end
end
+
+ context 'with invalid composer.json' do
+ let(:headers) { basic_auth_header(user.username, personal_access_token.token) }
+ let(:params) { { tag: 'v1.2.99' } }
+ let(:project) { create(:project, :custom_repo, files: files, group: group) }
+
+ before do
+ project.repository.add_tag(user, 'v1.2.99', 'master')
+ end
+
+ context 'with a missing composer.json file' do
+ let(:files) { { 'some_other_file' => '' } }
+
+ it_behaves_like 'process Composer api request', :developer, :unprocessable_entity
+ end
+
+ context 'with an empty composer.json file' do
+ let(:files) { { 'composer.json' => '' } }
+
+ it_behaves_like 'process Composer api request', :developer, :unprocessable_entity
+ end
+
+ context 'with a malformed composer.json file' do
+ let(:files) { { 'composer.json' => 'not_valid_JSON' } }
+
+ it_behaves_like 'process Composer api request', :developer, :unprocessable_entity
+ end
+ end
end
describe 'GET /api/v4/projects/:id/packages/composer/archives/*package_name?sha=:sha' do