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/services/releases/update_service_spec.rb')
-rw-r--r--spec/services/releases/update_service_spec.rb45
1 files changed, 12 insertions, 33 deletions
diff --git a/spec/services/releases/update_service_spec.rb b/spec/services/releases/update_service_spec.rb
index 178bac3574f..944f3d8c9ad 100644
--- a/spec/services/releases/update_service_spec.rb
+++ b/spec/services/releases/update_service_spec.rb
@@ -50,60 +50,39 @@ describe Releases::UpdateService do
end
context 'when a milestone is passed in' do
+ let(:old_title) { 'v1.0' }
let(:new_title) { 'v2.0' }
- let(:milestone) { create(:milestone, project: project, title: 'v1.0') }
+ let(:milestone) { create(:milestone, project: project, title: old_title) }
let(:new_milestone) { create(:milestone, project: project, title: new_title) }
- let(:params_with_milestone) { params.merge!({ milestones: [new_title] }) }
- let(:service) { described_class.new(new_milestone.project, user, params_with_milestone) }
+ let(:params_with_milestone) { params.merge!({ milestone: new_title }) }
before do
- release.milestones << milestone
+ release.milestone = milestone
+ release.save!
- service.execute
+ described_class.new(new_milestone.project, user, params_with_milestone).execute
release.reload
end
it 'updates the related milestone accordingly' do
- expect(release.milestones.first.title).to eq(new_title)
+ expect(release.milestone.title).to eq(new_title)
end
end
context "when an 'empty' milestone is passed in" do
let(:milestone) { create(:milestone, project: project, title: 'v1.0') }
- let(:params_with_empty_milestone) { params.merge!({ milestones: [] }) }
+ let(:params_with_empty_milestone) { params.merge!({ milestone: '' }) }
before do
- release.milestones << milestone
+ release.milestone = milestone
+ release.save!
- service.params = params_with_empty_milestone
- service.execute
+ described_class.new(milestone.project, user, params_with_empty_milestone).execute
release.reload
end
it 'removes the old milestone and does not associate any new milestone' do
- expect(release.milestones).not_to be_present
- end
- end
-
- context "when multiple new milestones are passed in" do
- let(:new_title_1) { 'v2.0' }
- let(:new_title_2) { 'v2.0-rc' }
- let(:milestone) { create(:milestone, project: project, title: 'v1.0') }
- let(:params_with_milestones) { params.merge!({ milestones: [new_title_1, new_title_2] }) }
- let(:service) { described_class.new(project, user, params_with_milestones) }
-
- before do
- create(:milestone, project: project, title: new_title_1)
- create(:milestone, project: project, title: new_title_2)
- release.milestones << milestone
-
- service.execute
- release.reload
- end
-
- it 'removes the old milestone and update the release with the new ones' do
- milestone_titles = release.milestones.map(&:title)
- expect(milestone_titles).to match_array([new_title_1, new_title_2])
+ expect(release.milestone).to be_nil
end
end
end