diff options
author | Alessio Caiazza <acaiazza@gitlab.com> | 2018-12-21 19:40:14 +0300 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-12-31 08:34:15 +0300 |
commit | 6a2decf5454922441606fce1560389acbbd9eff1 (patch) | |
tree | 1434716df04a5a8623943c85bd5b074b53320cee /spec/services | |
parent | a7aaad96f3cca5be2886bf3e18c81a7b06e5129f (diff) |
Refactor Release services
CreateReleaseService and UpdateReleaseService now takes all the release
attributes as constructor parameters. This will simplify attribute
expansion
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/create_release_service_spec.rb | 23 | ||||
-rw-r--r-- | spec/services/update_release_service_spec.rb | 8 |
2 files changed, 20 insertions, 11 deletions
diff --git a/spec/services/create_release_service_spec.rb b/spec/services/create_release_service_spec.rb index d7ec6d4815a..1dd74a1bcdb 100644 --- a/spec/services/create_release_service_spec.rb +++ b/spec/services/create_release_service_spec.rb @@ -6,12 +6,17 @@ describe CreateReleaseService do let(:tag_name) { project.repository.tag_names.first } let(:name) { 'Bionic Beaver'} let(:description) { 'Awesome release!' } - let(:service) { described_class.new(project, user) } + let(:params) { { tag: tag_name, name: name, description: description } } + let(:service) { described_class.new(project, user, params) } let(:ref) { nil } + before do + project.add_maintainer(user) + end + shared_examples 'a successful release creation' do it 'creates a new release' do - result = service.execute(tag_name, description, name: name, ref: ref) + result = service.execute(ref) expect(result[:status]).to eq(:success) release = project.releases.find_by(tag: tag_name) expect(release).not_to be_nil @@ -24,14 +29,16 @@ describe CreateReleaseService do it_behaves_like 'a successful release creation' it 'raises an error if the tag does not exist' do - result = service.execute("foobar", description) + service.params[:tag] = 'foobar' + + result = service.execute expect(result[:status]).to eq(:error) end it 'keeps track of the commit sha' do tag = project.repository.find_tag(tag_name) sha = tag.dereferenced_target.sha - result = service.execute(tag_name, description, name: name) + result = service.execute expect(result[:status]).to eq(:success) expect(project.releases.find_by(tag: tag_name).sha).to eq(sha) @@ -46,7 +53,7 @@ describe CreateReleaseService do it 'creates a tag if the tag does not exist' do expect(project.repository.ref_exists?("refs/tags/#{tag_name}")).to be_falsey - result = service.execute(tag_name, description, name: name, ref: ref) + result = service.execute(ref) expect(result[:status]).to eq(:success) expect(project.repository.ref_exists?("refs/tags/#{tag_name}")).to be_truthy @@ -57,11 +64,13 @@ describe CreateReleaseService do context 'there already exists a release on a tag' do before do - service.execute(tag_name, description) + service.execute end it 'raises an error and does not update the release' do - result = service.execute(tag_name, 'The best release!') + service.params[:description] = 'The best release!' + + result = service.execute expect(result[:status]).to eq(:error) expect(project.releases.find_by(tag: tag_name).description).to eq(description) end diff --git a/spec/services/update_release_service_spec.rb b/spec/services/update_release_service_spec.rb index a24dcabfc2e..4378d5d072a 100644 --- a/spec/services/update_release_service_spec.rb +++ b/spec/services/update_release_service_spec.rb @@ -7,12 +7,12 @@ describe UpdateReleaseService do let(:description) { 'Awesome release!' } let(:new_name) { 'A new name' } let(:new_description) { 'The best release!' } - let(:params) { { name: new_name, description: new_description } } - let(:service) { described_class.new(project, user, tag_name, params) } - let(:create_service) { CreateReleaseService.new(project, user) } + let(:params) { { name: new_name, description: new_description, tag: tag_name } } + let(:service) { described_class.new(project, user, params) } + let(:create_service) { CreateReleaseService.new(project, user, tag: tag_name, description: description) } before do - create_service.execute(tag_name, description) + create_service.execute end shared_examples 'a failed update' do |