diff options
Diffstat (limited to 'spec/services/releases/create_service_spec.rb')
-rw-r--r-- | spec/services/releases/create_service_spec.rb | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/spec/services/releases/create_service_spec.rb b/spec/services/releases/create_service_spec.rb index b9294182883..7287825a0be 100644 --- a/spec/services/releases/create_service_spec.rb +++ b/spec/services/releases/create_service_spec.rb @@ -167,28 +167,47 @@ RSpec.describe Releases::CreateService do end end - context 'when no milestone is passed in' do - it 'creates a release without a milestone tied to it' do - expect(params.key?(:milestones)).to be_falsey + context 'no milestone association behavior' do + let(:title_1) { 'v1.0' } + let(:title_2) { 'v1.0-rc' } + let!(:milestone_1) { create(:milestone, :active, project: project, title: title_1) } + let!(:milestone_2) { create(:milestone, :active, project: project, title: title_2) } - service.execute - release = project.releases.last + context 'when no milestones parameter is passed' do + it 'creates a release without a milestone tied to it' do + expect(service.param_for_milestone_titles_provided?).to be_falsey - expect(release.milestones).to be_empty + service.execute + release = project.releases.last + + expect(release.milestones).to be_empty + end + + it 'does not create any new MilestoneRelease object' do + expect { service.execute }.not_to change { MilestoneRelease.count } + end end - it 'does not create any new MilestoneRelease object' do - expect { service.execute }.not_to change { MilestoneRelease.count } + context 'when an empty array is passed as the milestones parameter' do + it 'creates a release without a milestone tied to it' do + service = described_class.new(project, user, params.merge!({ milestones: [] })) + service.execute + release = project.releases.last + + expect(release.milestones).to be_empty + end end - end - context 'when an empty value is passed as a milestone' do - it 'creates a release without a milestone tied to it' do - service = described_class.new(project, user, params.merge!({ milestones: [] })) - service.execute - release = project.releases.last + context 'when nil is passed as the milestones parameter' do + it 'creates a release without a milestone tied to it' do + expect(service.param_for_milestone_titles_provided?).to be_falsey - expect(release.milestones).to be_empty + service = described_class.new(project, user, params.merge!({ milestones: nil })) + service.execute + release = project.releases.last + + expect(release.milestones).to be_empty + end end end end @@ -217,7 +236,7 @@ RSpec.describe Releases::CreateService do let(:released_at) { 3.weeks.ago } it 'does not execute CreateEvidenceWorker' do - expect { subject }.not_to change(CreateEvidenceWorker.jobs, :size) + expect { subject }.not_to change(Releases::CreateEvidenceWorker.jobs, :size) end it 'does not create an Evidence object', :sidekiq_inline do @@ -316,7 +335,7 @@ RSpec.describe Releases::CreateService do end it 'queues CreateEvidenceWorker' do - expect { subject }.to change(CreateEvidenceWorker.jobs, :size).by(1) + expect { subject }.to change(Releases::CreateEvidenceWorker.jobs, :size).by(1) end it 'creates Evidence', :sidekiq_inline do @@ -341,18 +360,12 @@ RSpec.describe Releases::CreateService do context 'upcoming release' do let(:released_at) { 1.day.from_now } - it 'queues CreateEvidenceWorker' do - expect { subject }.to change(CreateEvidenceWorker.jobs, :size).by(1) - end - - it 'queues CreateEvidenceWorker at the released_at timestamp' do - subject - - expect(CreateEvidenceWorker.jobs.last['at'].to_i).to eq(released_at.to_i) + it 'does not execute CreateEvidenceWorker' do + expect { subject }.not_to change(Releases::CreateEvidenceWorker.jobs, :size) end - it 'creates Evidence', :sidekiq_inline do - expect { subject }.to change(Releases::Evidence, :count).by(1) + it 'does not create an Evidence object', :sidekiq_inline do + expect { subject }.not_to change(Releases::Evidence, :count) end it 'is not a historical release' do @@ -366,8 +379,6 @@ RSpec.describe Releases::CreateService do expect(last_release.upcoming_release?).to be_truthy end - - include_examples 'uses the right pipeline for evidence' end end end |