diff options
Diffstat (limited to 'spec/services/releases/create_service_spec.rb')
-rw-r--r-- | spec/services/releases/create_service_spec.rb | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/spec/services/releases/create_service_spec.rb b/spec/services/releases/create_service_spec.rb index 0170c3abcaf..3504f00412c 100644 --- a/spec/services/releases/create_service_spec.rb +++ b/spec/services/releases/create_service_spec.rb @@ -56,21 +56,25 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio end context 'when project is a catalog resource' do - let(:ref) { 'master' } + let(:project) { create(:project, :catalog_resource_with_components, create_tag: 'final') } let!(:ci_catalog_resource) { create(:ci_catalog_resource, project: project) } + let(:ref) { 'master' } context 'and it is valid' do - let_it_be(:project) { create(:project, :repository, description: 'our components') } - it_behaves_like 'a successful release creation' end - context 'and it is invalid' do + context 'and it is an invalid resource' do + let_it_be(:project) { create(:project, :repository) } + it 'raises an error and does not update the release' do result = service.execute expect(result[:status]).to eq(:error) - expect(result[:message]).to eq('Project must have a description') + expect(result[:http_status]).to eq(422) + expect(result[:message]).to eq( + 'Project must have a description, ' \ + 'Project must contain components. Ensure you are using the correct directory structure') end end end @@ -104,6 +108,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(403) end end @@ -139,6 +144,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio it 'raises an error and does not update the release' do result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(409) expect(project.releases.find_by(tag: tag_name).description).to eq(description) end end @@ -150,6 +156,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(400) expect(result[:message]).to eq("Milestone(s) not found: #{inexistent_milestone_tag}") end @@ -159,6 +166,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(400) expect(result[:message]).to eq("Milestone id(s) not found: #{inexistent_milestone_id}") end end @@ -244,6 +252,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(400) expect(result[:message]).to eq("Milestone(s) not found: #{inexistent_title}") end @@ -260,6 +269,7 @@ RSpec.describe Releases::CreateService, feature_category: :continuous_integratio result = service.execute expect(result[:status]).to eq(:error) + expect(result[:http_status]).to eq(400) expect(result[:message]).to eq("Milestone id(s) not found: #{non_existing_record_id}") end end |